From c170b01eae9958bc6d0892e8227d2726f60362b7 Mon Sep 17 00:00:00 2001 From: Mark Sapiro Date: Sun, 4 Jan 2015 19:03:40 -0800 Subject: Add some explanitory comments for why we defer some Munge From changes to WrapMessage. Correct a misplaced item in NEWS. --- Mailman/Handlers/CookHeaders.py | 5 +++++ Mailman/Handlers/WrapMessage.py | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'Mailman') 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'): -- cgit v1.2.3