diff options
Diffstat (limited to 'Mailman')
-rwxr-xr-x | Mailman/Defaults.py.in | 4 | ||||
-rw-r--r-- | Mailman/Handlers/CleanseDKIM.py | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/Mailman/Defaults.py.in b/Mailman/Defaults.py.in index 3569cc07..4ae5633f 100755 --- a/Mailman/Defaults.py.in +++ b/Mailman/Defaults.py.in @@ -616,8 +616,10 @@ NNTP_REWRITE_DUPLICATE_HEADERS = [ # broken and even if the outgoing message is resigned. However, some sites # may wish to remove these headers. Possible values and meanings are: # No, 0, False -> do not remove headers. -# Yes, 1, True -> remove headers only if the list's from_is_list setting is 1. +# Yes, 1, True -> remove headers only if we are munging the from header due +# to from_is_list or dmarc_moderation_action. # 2 -> always remove headers. +# 3 -> always remove, rename and preserve original DKIM headers. REMOVE_DKIM_HEADERS = No # All `normal' messages which are delivered to the entire list membership go diff --git a/Mailman/Handlers/CleanseDKIM.py b/Mailman/Handlers/CleanseDKIM.py index 2cfb07af..3e70313b 100644 --- a/Mailman/Handlers/CleanseDKIM.py +++ b/Mailman/Handlers/CleanseDKIM.py @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2015 by the Free Software Foundation, Inc. +# Copyright (C) 2006-2016 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 @@ -43,6 +43,13 @@ def process(mlist, msg, msgdata): ) ): return + if (mm_cfg.REMOVE_DKIM_HEADERS == 3): + for value in msg.get_all('domainkey-signature', []): + msg['X-Mailman-Original-DomainKey-Signature'] = value + for value in msg.get_all('dkim-signature', []): + msg['X-Mailman-Original-DKIM-Signature'] = value + for value in msg.get_all('authentication-results', []): + msg['X-Mailman-Original-Authentication-Results'] = value del msg['domainkey-signature'] del msg['dkim-signature'] del msg['authentication-results'] |