[Mailman-Users] Hide sender but keep reply-to sender address?

Mark Sapiro mark at msapiro.net
Mon Mar 11 20:35:21 CET 2013

Andrei wrote:

>OK, thanks. Does anybody has a custom handler like that and is willing
>to share? I have no idea how to do this.

Something like this
from email.Utils import formataddr, getaddresses, parseaddr

def process(mlist, msg, msgdata):
    orig_from = parseaddr(msg.get('from'))
    orig_rt = msg.get_all('reply-to')
    del msg['from']
    msg['From'] = formataddr((mlist.description, mlist.GetListEmail()))
    del msg['reply-to']
    if orig_rt:
        rt_list = getaddresses(orig_rt)
        rt_addr = [x[1] for x in rt_list]
        if orig_from[1] not in rt_addr:
            rt_list += [orig_from]
        rt_list = [orig_from]
    msg['Reply-To'] = ', '.join([formataddr(x) for x in rt_list])

should do it. This will add the From: address to any existing Reply-To:
if it isn't already there or create a Reply-To: if there wasn't one.
It can go pretty much anywhere in the pipeline before ToDigest, but
immediately before is good.

The list's anonymous_list and first_strip_reply_to must be No, and
reply_goes_to_list must be Poster.

Mark Sapiro <mark at msapiro.net>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan

More information about the Mailman-Users mailing list