On 01/03/2017 01:27 PM, Adam Goldberg wrote:
Thanks for the quick response. From what I can see in Defaults.py in my installation of Mailman, one could 'break' Mailman the same way Kavi's ezmlm installation is broken by merely setting USE_ENVELOPE_SENDER=yes.
Actually no, for two reasons.
USE_ENVELOPE_SENDER is a misnomer in the first place. It is used by the Mailman.Message.get_sender() method which returns a single address as the sender of the message. It returns the first address found by looking in order at
From: Sender: envelope sender
if USE_ENVELOPE_SENDER is false and
Sender: From: envelope sender
if USE_ENVELOPE_SENDER is true, so in most cases there won't be a Sender: header and the From: value will be returned. Only if there is a Sender: header does USE_ENVELOPE_SENDER make a difference and even then the result is the Sender: header value, not the envelope sender.
The other reason is the get_sender() method is not used to determine list membership for posts[1]. That uses the get_senders() method (note senders, not sender) which returns all the addresses from the headers defined by SENDER_HEADERS.
If you wanted to force Mailman to use the envelope sender only for membership tests you would put
SENDER_HEADERS = [None]
in mm_cfg.py.
[1] The address returned by get_sender() is used for things like displaying in the admindb UI the sender of a held post and various other purposes, but not for membership tests on incoming posts.
(And continuing the OT discussion, in a ezmlm/qmail environment, qmail passes the envelope sender address via $SENDER to ezmlm, and ezmlm uses this to check list membership. I don't see a way in qmail/ezmlm to emulate USE_ENVELOPE_SENDER = No. Three cheers for Mailman!)
MTAs (qmail) for the most part only deal with things defined in SMTP such as the envelope sender and recipients. With few exceptions, the message which contains the headers is just a blob of data. Thus if you're relying on the MTA to tell you who sent the message, you're going to see the envelope sender. Mailman actually parses the message and looks at the headers to determine the sender(s).
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan