Extension:BounceHandler

The BounceHandler extension allows wiki's to handle bounce emails efficiently, by:


 * Generate a VERP 'Return-Path' on UserMailer::send email invokes.


 * Bounces can be directly fed to the  API from the MTA using a curl POST request


 * For more details on VERP: VERP

Using composer installed Plancake php mail parser library to extract the email headers:

 * You can install the [https://github.com/plancake/official-library-php-email-parser Plancake mail parse library] for efficient working of the BounceHandler extension. This can make sure that you strip the correct headers from the bounce email, effectievely. You can install it by running this in

Alternatively, the extension has got its own set of regex functions to extract the e-mail headers, but not recommended for extensive use

Configuration
The extension requires the Mail Transfer Agent (MTA) installed in your mail server to HTTP POST the incoming bounce email to the extension API named as. This can be done by adding the corresponding configurations to your MTA configuration.

Adding bouncehandler router and transport to your exim configuration
You can redirect all your bounce emails to the bouncehandler API directly to do the processing. You can edit your Exim configurations to route all bounce emails to a bounce-handler-router and do HTTP POST to the extension API, which is the recommended method.

Add this to your

Under the variable declaration section:

under router configuration:

under transports, we need to write the configuration that would HTTP POST to our bouncehandler API

You can find more details in [http://tttwrites.wordpress.com/2014/07/11/post-ing-bounce-email-to-a-mediawiki-api-directly-from-exim/ here].

VERP address
The extension creates a unique VERP address as the Return Path header to every single email send from the wiki installation. The generated VERP address is of the form wiki-testwiki-2a-nanrfx-Tn14EQZWaotS2XNn@verpwebhost.wmflabs.org

The general template of the generated VERP address is: $prefix-$wikiName-base36( $userID )-base36( $timestamp )-base64( hash( $algorithm, $key, $prefix ) )@$email_domain