diff options
Diffstat (limited to 'Mailman')
-rwxr-xr-x | Mailman/Handlers/CookHeaders.py | 5 | ||||
-rw-r--r-- | Mailman/Handlers/WrapMessage.py | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/Mailman/Handlers/CookHeaders.py b/Mailman/Handlers/CookHeaders.py index 0139f3c3..30e05655 100755 --- a/Mailman/Handlers/CookHeaders.py +++ b/Mailman/Handlers/CookHeaders.py @@ -72,6 +72,11 @@ def change_header(name, value, mlist, msg, msgdata, delete=True, repl=True): (msgdata.get('from_is_list') == 0 and mlist.from_is_list == 2)) and not msgdata.get('_fasttrack') ) or name.lower() in ('from', 'reply-to', 'cc'): + # The or name.lower() in ... above is because when we are munging + # the From:, we want to defer the resultant changes to From:, + # Reply-To:, and/or Cc: until after the message passes through + # ToDigest, ToArchive and ToUsenet. Thus, we put them in + # msgdata[add_header] here and apply them in WrapMessage. msgdata.setdefault('add_header', {})[name] = value elif repl or not msg.has_key(name): if delete: diff --git a/Mailman/Handlers/WrapMessage.py b/Mailman/Handlers/WrapMessage.py index fba6bc2a..0e47e1e4 100644 --- a/Mailman/Handlers/WrapMessage.py +++ b/Mailman/Handlers/WrapMessage.py @@ -18,7 +18,7 @@ """Wrap the message in an outer message/rfc822 part and transfer/add some headers from the original. -Also, in the case of Munge From, replace the From: and Reply-To: in the +Also, in the case of Munge From, replace the From:, Reply-To: and Cc: in the original message. """ @@ -40,7 +40,8 @@ def process(mlist, msg, msgdata): # is wrap this message or from_is_list applies and is wrap. if not (msgdata.get('from_is_list') == 2 or (mlist.from_is_list == 2 and msgdata.get('from_is_list') == 0)): - # Now see if we need to add a From: and/or Reply-To: without wrapping. + # Now see if we need to add a From:, Reply-To: or Cc: without wrapping. + # See comments in CookHeaders.change_header for why we do this here. a_h = msgdata.get('add_header') if a_h: if a_h.get('From'): |