[Mailman-Developers] effects of not rewriting the Sender header

James Ralston qralston+ml.mailman-developers at andrew.cmu.edu
Wed Jul 12 17:54:56 CEST 2006


As a follow-up to the Sender header discussion back on 2006-04/05...

On 2006-06-17, we disabled Sender header rewriting at our site, using
the attached patch.

Since then, we've received no complaints whatsoever from our users
about bounces not being caught, and the complaints about recipients
using Outlook seeing "bounce" addresses have ceased.

Based on our experiences, I'd strongly recommend that this patch be
applied to the official Mailman distribution.

Regards,
James
-------------- next part --------------
--- mailman-2.1.5.1/Mailman/Handlers/SMTPDirect.py.sender-header	2004-01-22 18:02:07.000000000 -0500
+++ mailman-2.1.5.1/Mailman/Handlers/SMTPDirect.py	2006-06-16 18:39:35.000000000 -0400
@@ -340,17 +340,23 @@
 
 
 def bulkdeliver(mlist, msg, msgdata, envsender, failures, conn):
-    # Do some final cleanup of the message header.  Start by blowing away
-    # any the Sender: and Errors-To: headers so remote MTAs won't be
-    # tempted to delivery bounces there instead of our envelope sender
-    #
-    # BAW An interpretation of RFCs 2822 and 2076 could argue for not touching
-    # 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']
+    # Do some final cleanup of the message header.  Start by blowing away any
+    # Errors-To: headers so remote MTAs won't be tempted to delivery bounces
+    # there instead of our envelope sender.
+    # 
+    # Previously, we also blew away any Sender: headers, and added a new
+    # Sender: header with our envelope sender.  However, this behavior seems to
+    # cause more problems than it solves, because various MUAs will include the
+    # Sender address in a reply-to-all, which is not only confusing to
+    # subscribers, but can actually disable/unsubscribe them from lists,
+    # depending on how often they accidentally reply to it.
+    # 
+    # The drawback of not touching the Sender: header is that some MTAs might
+    # still send bounces to it, so by not trapping it, we can miss bounces.
+    # (Or worse, MTAs might send bounces to the From: address if they can't
+    # find a Sender: header.)  But at least for now, we're going to take our
+    # chances with leaving the Sender: header alone.
     del msg['errors-to']
-    msg['Sender'] = envsender
     msg['Errors-To'] = envsender
     # Get the plain, flattened text of the message, sans unixfrom
     msgtext = msg.as_string()


More information about the Mailman-Developers mailing list