diff options
Diffstat (limited to 'Mailman/Handlers')
-rwxr-xr-x | Mailman/Handlers/CalcRecips.py | 6 | ||||
-rwxr-xr-x | Mailman/Handlers/CookHeaders.py | 5 | ||||
-rw-r--r-- | Mailman/Handlers/SpamDetect.py | 21 |
3 files changed, 25 insertions, 7 deletions
diff --git a/Mailman/Handlers/CalcRecips.py b/Mailman/Handlers/CalcRecips.py index 0680bfb1..069c88a8 100755 --- a/Mailman/Handlers/CalcRecips.py +++ b/Mailman/Handlers/CalcRecips.py @@ -184,6 +184,12 @@ def do_exclude(mlist, msg, msgdata, recips): for sender in msg.get_senders(): if slist.isMember(sender): break + for sender in Utils.check_eq_domains(sender, + slist.equivalent_domains): + if slist.isMember(sender): + break + if slist.isMember(sender): + break else: continue srecips = set([slist.getMemberCPAddress(m) diff --git a/Mailman/Handlers/CookHeaders.py b/Mailman/Handlers/CookHeaders.py index acb79166..4e005dc5 100755 --- a/Mailman/Handlers/CookHeaders.py +++ b/Mailman/Handlers/CookHeaders.py @@ -425,6 +425,11 @@ def prefix_subject(mlist, msg, msgdata): except UnicodeError: pass # Get the header as a Header instance, with proper unicode conversion + # Because of rfc2047 encoding, spaces between encoded words can be + # insignificant, so we need to append a space to prefix but only when + # we have Re:. + if recolon: + prefix += ' ' if old_style: h = uheader(mlist, recolon, 'Subject', continuation_ws=ws) h.append(prefix) diff --git a/Mailman/Handlers/SpamDetect.py b/Mailman/Handlers/SpamDetect.py index 509e1e6e..c7b8d9e7 100644 --- a/Mailman/Handlers/SpamDetect.py +++ b/Mailman/Handlers/SpamDetect.py @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2015 by the Free Software Foundation, Inc. +# Copyright (C) 1998-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 @@ -123,10 +123,19 @@ error, contact the mailing list owner at %(listowner)s.""")) elif mlist.dmarc_moderation_action == 4: raise Errors.DiscardMessage - if mlist.member_verbosity_threshold > 0 and Utils.IsVerboseMember(mlist, addr): - mlist.setMemberOption(addr, mm_cfg.Moderate, 1) - syslog('vette', '%s: Automatically Moderated %s for verbose postings.', - mlist.real_name, addr) + # Get member address if any. + for sender in msg.get_senders(): + if mlist.isMember(sender): + break + else: + sender = msg.get_sender() + if (mlist.member_verbosity_threshold > 0 and + Utils.IsVerboseMember(mlist, sender) + ): + mlist.setMemberOption(sender, mm_cfg.Moderate, 1) + syslog('vette', + '%s: Automatically Moderated %s for verbose postings.', + mlist.real_name, sender) if msgdata.get('approved'): return @@ -175,5 +184,3 @@ error, contact the mailing list owner at %(listowner)s.""")) hold_for_approval(mlist, msg, msgdata, HeaderMatchHold) if action == mm_cfg.ACCEPT: return - - |