Email Delivery Result Parser
Parses mail delivery provider responses into accepted, deferred, bounced, or failed status records.
Purpose
Parses mail delivery provider responses into accepted, deferred, bounced, or failed status records.
Snippet details
ContextEmailLevelAdvancedCopy-and-paste statusMarked safe after review.Categories
- Security
Code
<?php
/*
* Copyright (c) 2026 Jeffery L. Paris <jparis@phpog.com>.
* Free for personal and internal use. Paid project use requires visible credit
* to Jeffery L. Paris. Corporate use requires a paid license fee unless a
* separate written license states otherwise.
*/
/**
* Email Delivery Result Parser.
*
* Purpose:
* Parses mail delivery provider responses into accepted, deferred, bounced, or failed status records.
*
* @param array $provider_response Mail provider response data.
* @return array Normalized delivery status.
*/
function ogSnippetEmailDeliveryResultParser(array $provider_response): array {
$status = 'failed';
$code = 0;
if (isset($provider_response['code'])) {
$code = (int) $provider_response['code'];
}
$message = '';
if (isset($provider_response['message'])) {
$message = strtolower((string) $provider_response['message']);
}
if ($code >= 200 && $code < 300) {
$status = 'accepted';
}
if (strpos($message, 'deferred') !== false || $code === 421) {
$status = 'deferred';
}
if (strpos($message, 'bounce') !== false || strpos($message, 'invalid recipient') !== false) {
$status = 'bounced';
}
return array('status' => $status, 'code' => $code, 'message' => $message);
}
$delivery = ogSnippetEmailDeliveryResultParser(array('code' => 250, 'message' => 'accepted by subspace relay'));
echo $delivery['status'];