Page MenuHomePhabricator

Architecture review for BounceHandler extension
Closed, ResolvedPublic

Description

Sub part of Bug: https://bugzilla.wikimedia.org/show_bug.cgi?id=69019

Extension Wikipage: https://www.mediawiki.org/wiki/Extension:BounceHandler

Quoting: https://bugzilla.wikimedia.org/show_bug.cgi?id=69019#c0

The BounceHandler extension generates a unique VERP address on every sent email, and has the bouncehandler API that can handle incoming email bounces once the bounce is HTTP POSTed to it via curl from exim. The extension was built as part of the VERP project to properly handle email bounces.

Pipe incoming bounces to the bouncehandler API:-
You need to add the following to your incoming mails to *@wikimedia.com receving PIPE transport:
command = /usr/bin/curl "action=bouncehandler" --data-urlencode "email@-" http://$IP/api.php

The genrated VERP address is of the form
$wikiId-base36( $UserID )-base36( $Timestamp )-hash( $algorithm,$key, $prefix )@$email_domain

where
$wikiId - The wiki database name, to support multiple wikis
$userID - The user_id from table 'user' - to uniquely identify a recipient.
$Timestamp - The unix timestamp.
$prefix = $wikiId. '-'. base_convert( $uid, 10, 36). '-'. base_convert( $timeNow, 10, 36);

It use the Plancake mail parser external library to extract the headers as an addition to the optional inbuilt regex functions.

Gerrit: https://github.com/wikimedia/mediawiki-extensions-BounceHandler


Version: wmf-deployment
Severity: normal
See Also:
https://bugzilla.wikimedia.org/show_bug.cgi?id=69100

Details

Reference
bz69101

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 3:34 AM
bzimport set Reference to bz69101.
bzimport added a subscriber: Unknown Object (MLST).
01tonythomas claimed this task.

The extension completed all reviews, and got finally installed 'everywhere' after https://gerrit.wikimedia.org/r/198220