[Mailman-Developers] Extracting some Mailman code

Lindsay Haisley fmouse at fmp.com
Thu Oct 12 15:37:55 EDT 2017


Hey folks, This is a request for a pointer to some code rather than an
offering for Mailman, but I hope my cred with the Mailman developers
will fetch me a bit of help. I can read code and find this out myself,
but one of the Mailman devs can probably give me some pointers that
will save me a lot of time, time being the only human resource which is
truly limited!

I'm running Courier-MTA, an excellent MTA around which I've built FMP's
small ESP services. Courier has the ability to do a simple email
redirect using an alias address in a flat file, in a special directory,
containing only the email address to which email should be redirected.
Courier also has the ability to interpret lines in this file starting
with "|" as programs to which the body of an email can be submitted via
stdin and any required processing done therein. I'm the author of
courier-to-mailman.py in the contrib collection in Mailman 2's current
standard code which works this way.

I'm seeing increasing problems with DMARC rejection of emails sent
through this simple redirection mechanism, for obvious reasons, and I'm
thinking that I might borrow code from Mailman to re-write the From
address just as Mailman does when handling a list with from_is_list set
to "Munge From", and then pipe emails for selected ESP clients through
this filter. Said filter must:

* detect whether or not the sending domain publishes a DMARC "p=reject"
or "p=quarantine" record

* If so, parse out the From address in the email and rewrite it in the
general form Mailman uses with "on behalf of ..." giving the origianl
sender and specifying the mail server's DN in the sender address.

... after which the email will be sent on to the recipients _real_
address. The management of the message body, the piping and such is
handled quite well by Courier.

I assume that this would mitigate the DMARC issue for redirections
through our mail server, just as it does for Mailman.

So, if someone could give me a few pointers to the relevant code in
Mailman 2, and any suggestions which might save me some time, I can
take it from there. I'm python-literate and have hacked our copy of
Mailman here in the past - perhaps more than is wise since every time I
upgrade I need to apply a number of patches to bring my mods along with
the upgrade :)

Thanks for any help you can give me. If it's too much bother, tell me
so and I'll put on my hacker's hat and go read code :)

Ciao,

-- 
Lindsay Haisley       | "Behold! Our way lies through a
FMP Computer Services |    dark wood whence in which
512-259-1190          |      weirdness may wallow!”
http://www.fmp.com    |           --Beauregard



More information about the Mailman-Developers mailing list