diff options
-rw-r--r-- | Mailman/Handlers/SMTPDirect.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Mailman/Handlers/SMTPDirect.py b/Mailman/Handlers/SMTPDirect.py index 44209ebb..d631c80c 100644 --- a/Mailman/Handlers/SMTPDirect.py +++ b/Mailman/Handlers/SMTPDirect.py @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2004 by the Free Software Foundation, Inc. +# Copyright (C) 1998-2005 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -135,6 +135,12 @@ def process(mlist, msg, msgdata): t0 = time.time() # Open the initial connection origrecips = msgdata['recips'] + # MAS: get the message sender now for logging. If we're using 'sender' + # and not 'from', bulkdeliver changes it for bounce processing. + # If we're VERPing, it doesn't matter because bulkdeliver is working + # on a copy, but otherwise msg gets changed. If the list is anonymous, + # the original sender is long gone, but Cleanse.py has logged it. + origsender = msg.get_sender() # `undelivered' is a copy of chunks that we pop from to do deliveries. # This seems like a good tradeoff between robustness and resource # utilization. If delivery really fails (i.e. qfiles/shunt type @@ -169,7 +175,7 @@ def process(mlist, msg, msgdata): '#recips' : len(recips), '#refused': len(refused), 'listname': mlist.internal_name(), - 'sender' : msg.get_sender(), + 'sender' : origsender, }) # We have to use the copy() method because extended call syntax requires a # concrete dictionary object; it does not allow a generic mapping. It's |