djmerelo / php-bounce-handler
This package is abandoned and no longer maintained.
The author suggests using the voku/bounce-mail-handler package instead.
This package is a fork from the Filsh/PHP-Bounce-Handler
1.0.0
2016-07-21 08:56 UTC
This package is not auto-updated.
Last update: 2017-06-16 10:09:31 UTC
README
<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>