diff options
| author | bwarsaw | 2001-11-21 22:57:27 +0000 |
|---|---|---|
| committer | bwarsaw | 2001-11-21 22:57:27 +0000 |
| commit | 4710d096a450ea9cc52177db17b0c983136c1ef0 (patch) | |
| tree | 7408d6c3213f6e8b193d43a4134e524699e45e6e | |
| parent | a8dc116d094ba5406d3456a05cb5c022d5b45ec7 (diff) | |
| download | mailman-4710d096a450ea9cc52177db17b0c983136c1ef0.tar.gz mailman-4710d096a450ea9cc52177db17b0c983136c1ef0.tar.zst mailman-4710d096a450ea9cc52177db17b0c983136c1ef0.zip | |
| -rw-r--r-- | Mailman/Handlers/SMTPDirect.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Mailman/Handlers/SMTPDirect.py b/Mailman/Handlers/SMTPDirect.py index 4e360f131..90996c5ba 100644 --- a/Mailman/Handlers/SMTPDirect.py +++ b/Mailman/Handlers/SMTPDirect.py @@ -52,8 +52,6 @@ def process(mlist, msg, msgdata): if not recips: # Nobody to deliver to! return - # Get the flat, plain text of the message - msgtext = msg.as_string(unixfrom=0) # Calculate the envelope sender. When VERPing, envsender is a 2-tuple # containing the list's bounces address and the list's host_name. envsender = None @@ -69,6 +67,16 @@ def process(mlist, msg, msgdata): # We're VERPing. Pre-calculate what we can. bmailbox, bdomain = Utils.ParseEmail(mlist.getListAddress('bounces')) envsender = (bmailbox, DOT.join(bdomain)) + # Also, blow away the Sender: and Errors: to headers so remote MTAs + # won't be tempted to deliver bounces there instead of our VERP'd + # envelope sender. It would be better to stick in our VERP return + # address, but that would have to get done in deliver() below, and by + # then we've already flattened the message. BAW: maybe we shouldn't + # do that here?) + del msg['sender'] + del msg['errors-to'] + # Get the flat, plain text of the message + msgtext = msg.as_string(unixfrom=0) # Time to split up the recipient list. If we're VERPing then each chunk # will have exactly one recipient, and we'll hand craft an envelope sender # for each one separately. If we're not VERPing, then we'll chunkify @@ -243,6 +251,10 @@ def threaded_deliver(envsender, msgtext, chunks, failures): def deliver(envsender, msgtext, recips, failures, conn): # If we're VERPIng, we have to calculate the envelope sender for each # recipient. Note that the list of recipients must be of length 1. + # + # BAW: ezmlm includes the message number in the envelope, used when + # sending a notification to the user telling her how many messages they + # missed due to bouncing. Neat idea. if isinstance(envsender, TupleType) and len(recips) == 1: mailbox, domain = Utils.ParseEmail(recips[0]) d = {'bounces': envsender[0], |
