To reopen an old discussion:
I would like to request that a feature be added in the next version of
Mailman to allow a list administrator to disable rewriting of the
"Sender:" header, or (better) for this behavior to be eliminated from
Mailman altogether.
Rationale:
- Outlook treats the Sender field as a person sending on behalf of
another. This seems to me to be a reasonable interpretation of the
Sender field, per RFC 2822 3.6.2. When a "bounces" address is included
in the sender field, Outlook displays something along the lines of "From
listname-bounces+jim=reader.domain.com(a)mailman.server.com On behalf of
fred(a)poster.domain.com". (See Mailman FAQ entry 2.3). This is undesirable.
- Thunderbird also displays the sender field, which presents similar
confusion.
- Useful information (the original content of the Sender: header) is
lost by doing this.
- Bounces go to the envelope sender or Return-Path: header, not the
Sender: header, so this is not necessary for proper bounce handling.
- Again from RFC 2822 3.6.2, the Sender: header should contain the
address of the agent responsible for transmitting the message, meaning
that a person who sends mail to the address in that header should expect
to reach said agent, not suggest to Mailman that a message bounced.
- Information regarding interacting with the list is provided by the
List-* headers; including it in the Sender: field is unnecessary.
Removing this (IMO) unwanted functionality is trivial:
diff -ru mailman-2.1.5.orig/Mailman/Handlers/SMTPDirect.py
mailman-2.1.5/Mailman
/Handlers/SMTPDirect.py
--- mailman-2.1.5.orig/Mailman/Handlers/SMTPDirect.py 2004-01-22
17:02:07.0000
00000 -0600
+++ mailman-2.1.5/Mailman/Handlers/SMTPDirect.py 2006-04-26
13:48:45.0000
00000 -0500
@@ -348,9 +348,9 @@
# the Sender header at all. Brad Knowles points out that MTAs tend to
# wipe existing Return-Path headers, and old MTAs may still honor
# Errors-To while new ones will at worst ignore the header.
- del msg['sender']
+ # del msg['sender']
del msg['errors-to']
- msg['Sender'] = envsender
+ # msg['Sender'] = envsender
msg['Errors-To'] = envsender
# Get the plain, flattened text of the message, sans unixfrom
msgtext = msg.as_string()