Email bounce handling for SilverStripe CMS, implemented through callbacks in MTAs
This is an archived project and is no longer supported or updated by SilverStripe. Please do not file issues or pull-requests against this repo. If you wish to continue to develop this code yourself, we recommend you fork it or contact the maintainers directly (check latest commits for email addresses).
Email bounce handling for SilverStripe CMS, implemented through callbacks in the mail server for incoming mail.
Caution: This functionality has been migrated from SilverStripe core in 2012, but hasn't been actively used or maintained in a while. It should be regarded as a starting point rather than a complete solution. In general, we recommend using third party email SaaS solutions if you care about bounce tracking and management.
If the newsletter module
is installed, the bounce tracking can also identify the
record and newsletter which this email related to, and track the data more specifically.
First of all, define a unique
in order to secure the tracking against unverified use.
Change the value in
_config.php, or define your own one earlier on.
You need to let your mailserver know where to forward bounced emails to. In the Exim mailserver, this is called the "pipe transport". The configuration setting will look roughly like the following example:
| php -q /your/path/framework/cli-script.php /Email_BounceHandler
Please ensure that the
Reply-To: address in the emails you
send matches the one address being configured in the mailserver.
You can send an email through SilverStripe as usual, no special flags are needed.
:::php $email = new Email(); $email ->setTo('email@example.com') ->setFrom('firstname.lastname@example.org') ->setSubject('Test Email') ->send();
Bounces will be recorded as new
Email_BounceRecord database entries,
as well as tracked in the
Alternatively, you can define a
BOUNCE_EMAIL constant to set up
a global bounce address for all emails sent through SilverStripe's