forked from cfortune/PHP-Bounce-Handler
-
Notifications
You must be signed in to change notification settings - Fork 4
This class can be used to parse bounced message reports. It parses e-mail messages with multipart report content type formatted according to RFC 1892 and 1894 documents. If the bounce is not well formed, it also tries to extract some useful information. Exim is supported, partially. Please send bounce messages from your busted MTA, I'll extend t…
rbairwell/PHP-Bounce-Handler
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
<p>Quick and dirty bounce handler</p> <p><strong>Usage</strong></p> <blockquote><code> require_once('bounce_driver.class.php'); $bouncehandler=new Bouncehandler(); $multiArray=$bouncehandler->get_the_facts(\$strEmail) </code></blockquote> <p>( $multiArray=$bouncehandler->get_the_facts(\$strEmail) can be replaced by $multiArray = $bouncehandler->parse_email($strEmail) )</p> <p>Returns a multi-dimensional associative array of bounced recipient addresses and their SMTP status codes (if available) - see <code>print_r(\$multiArray);</code></p> <p>Will return recipient's email address, the RFC1893 error code, and the action. Action can be one of the following:<dl> <dt>transient</dt><dd>Temporary problem</dd> <dt>failed</dt><dd>Permanent problem</dd> <dt>autoresponse</dt><dd>Vacation auto-response/auto-responder<dd> <dt>""</dt><dd>Empty string - not classified</dd> </dl></p> You could dereference the \$multiArray in a 'for loop', for example...</P> <pre> foreach($multiArray as $the){ switch($the['action']){ case 'failed': //do something kill_him($the['recipient']); break; case 'transient': //do something else $num_attempts = delivery_attempts($the['recipient']); if($num_attempts > 10){ kill_him($the['recipient']); } else{ insert_into_queue($the['recipient'], ($num_attempts+1)); } break; case 'autoresponse': //do something different postpone($the['recipient'], '7 days'); break; default: //don't do anything break; } } </pre> Or, if it is an FBL, you could use the class variables to access the data (Unlike Multipart-reports, FBL's report only one bounce) You could also use them if the output array has only one index: <pre> if($bouncehandler->type == 'fbl' or count($bouncehandler->output) == 1) { echo $bouncehandler->action; echo $bouncehandler->status; echo $bouncehandler->recipient; echo $bouncehandler->feedback_type; } </pre> These class variables are safe for all bounce types: <ul> <li>$bouncehandler->type</li> <li>$bouncehandler->subject</li> <li>$bouncehandler->web_beacon_1</li> <li>$bouncehandler->web_beacon_2</li> <li>$bouncehandler->x_header_beacon_1</li> <li>$bouncehandler->x_header_beacon_2</li> </ul> <p>That's all you need to know, but if you want to get more complicated you can. Most methods are public. See source code.</p>
About
This class can be used to parse bounced message reports. It parses e-mail messages with multipart report content type formatted according to RFC 1892 and 1894 documents. If the bounce is not well formed, it also tries to extract some useful information. Exim is supported, partially. Please send bounce messages from your busted MTA, I'll extend t…
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- PHP 100.0%