Email Bounce Detector
Project Home • Blog • Forums • Known Issues • Contact Project
The real value of this project is a fairly complete list of bounce snippets found in returned email. Using this list, we can analyze the reason why an email bounced. Is the cause:
OK: received a delivery notification/status
Temporary: could not be delivered but will be retried
Permanent: the delivery failure was fatal
Blocked: denied by a spam filter or firewall
Challenge-Response: human response required
Autoresponder: vacation and OOO messages
The result code of this component will let you take action such as notifying the original sender, retrying the delivery or unsubscribing the recipient from a list.
This code has been used in production for ~4 years and is quite stable. New bounce signatures appear all the time though, so consider posting new ones that are not found (result code = -1) to the forums for future inclusion.
Usage is very simple, instantiate the component (I use Coldspring, but you could make it standalone quite easily) and then pass the only method, getFailure(), the body of the email you're parsing like so:
resultCode = bouncedetector.getFailure(emailBody)
The resultCode will be:
-1 = did not find a signature for this body
0 = ok
1 = temporary
2 = fatal
3 = spam/firewall/etc
4 = challenge-response
5 = vacation/out of office
Act according to your business rules based on the result.
Fixed bugs #1 and #2 reported by Rob Brooks-Bilson. Thanks!
Ability to use CFCs.
My code uses a Coldspring configuration but the demo includes an example of using it as a raw CFC independent of Coldspring too.
To enter issues for this (or any other) project, you must be logged in.
You may access this project's Subversion repository with your client here: http://svn.riaforge.org/bouncedetector.
To view files and changelists associated with this repository, go here: http://bouncedetector.riaforge.org/index.cfm?event=page.svnbrowse.
You may download the latest set of files from Subversion as a zip file.
Anonymous users have read access to the repository while the administrator has write access.
This project is sharing its code via Subversion. Subversion is an open source source control method. You may find more information about Subversion here: http://subversion.tigris.org/
Adobe and the Adobe product names are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.