Merge authors:
  Jim Popovitch (jimpop)
Related merge proposals:
  
https://code.launchpad.net/~jimpop/mailman/dmarc-moderation-addresses/+merge/359963
  proposed by: Jim Popovitch (jimpop)
------------------------------------------------------------
revno: 1804 [merge]
committer: Mark Sapiro <m...@msapiro.net>
branch nick: 2.1
timestamp: Sat 2018-12-15 10:07:41 -0800
message:
  Implement dmarc_moderation_addresses feature.
modified:
  Mailman/Gui/Privacy.py
  Mailman/Handlers/SpamDetect.py
  Mailman/MailList.py
  Mailman/Version.py
  Mailman/versions.py
  NEWS


--
lp:mailman/2.1
https://code.launchpad.net/~mailman-coders/mailman/2.1

Your team Mailman Checkins is subscribed to branch lp:mailman/2.1.
To unsubscribe from this branch go to 
https://code.launchpad.net/~mailman-coders/mailman/2.1/+edit-subscription
=== modified file 'Mailman/Gui/Privacy.py'
--- Mailman/Gui/Privacy.py	2018-07-15 03:18:00 +0000
+++ Mailman/Gui/Privacy.py	2018-12-15 18:07:41 +0000
@@ -356,6 +356,21 @@
              be sent to anyone who posts to this list from a domain
              with a DMARC Reject%(quarantine)s Policy.""")),
              
+            ('dmarc_moderation_addresses', mm_cfg.EmailListEx, (10, WIDTH), 1,
+             _("""List of addresses (or regexps) whose posts should always apply
+             <a href="?VARHELP=privacy/sender/dmarc_moderation_action"
+             >dmarc_moderation_action</a> 
+             regardless of any domain specific DMARC Policy."""),
+
+             _("""Postings from any of these addresses will automatically
+             apply any DMARC action mitigation.  This can be utilized to
+             automatically wrap or munge postings from known addresses or
+             domains that might have policies rejecting external mail From:
+             themselves.
+
+             <p>Add member addresses one per line; start the line with a ^
+             character to designate a regular expression match.""")),
+             
             ('dmarc_wrapped_message_text', mm_cfg.Text, (10, WIDTH), 1,
              _("""If dmarc_moderation_action applies and is Wrap Message,
              and this text is provided, the text will be placed in a

=== modified file 'Mailman/Handlers/SpamDetect.py'
--- Mailman/Handlers/SpamDetect.py	2018-06-17 23:47:34 +0000
+++ Mailman/Handlers/SpamDetect.py	2018-12-01 04:13:12 +0000
@@ -109,7 +109,8 @@
         msgdata['from_is_list'] = 0
         dn, addr = parseaddr(msg.get('from'))
         if addr and mlist.dmarc_moderation_action > 0:
-            if Utils.IsDMARCProhibited(mlist, addr):
+            if (mlist.GetPattern(addr, mlist.dmarc_moderation_addresses) or
+                Utils.IsDMARCProhibited(mlist, addr)):
                 # Note that for dmarc_moderation_action, 0 = Accept, 
                 #    1 = Munge, 2 = Wrap, 3 = Reject, 4 = Discard
                 if mlist.dmarc_moderation_action == 1:

=== modified file 'Mailman/MailList.py'
--- Mailman/MailList.py	2018-06-21 16:23:09 +0000
+++ Mailman/MailList.py	2018-11-30 22:53:02 +0000
@@ -424,6 +424,7 @@
         self.dmarc_none_moderation_action = (
             mm_cfg.DEFAULT_DMARC_NONE_MODERATION_ACTION)
         self.dmarc_moderation_notice = ''
+	self.dmarc_moderation_addresses = []
         self.dmarc_wrapped_message_text = (
             mm_cfg.DEFAULT_DMARC_WRAPPED_MESSAGE_TEXT)
         self.equivalent_domains = (

=== modified file 'Mailman/Version.py'
--- Mailman/Version.py	2018-07-24 21:58:31 +0000
+++ Mailman/Version.py	2018-11-30 22:53:02 +0000
@@ -37,7 +37,7 @@
                (REL_LEVEL << 4)  | (REL_SERIAL << 0))
 
 # config.pck schema version number
-DATA_FILE_VERSION = 110
+DATA_FILE_VERSION = 111
 
 # qfile/*.db schema version number
 QFILE_SCHEMA_VERSION = 3

=== modified file 'Mailman/versions.py'
--- Mailman/versions.py	2018-06-17 23:47:34 +0000
+++ Mailman/versions.py	2018-11-30 22:53:02 +0000
@@ -497,6 +497,7 @@
     add_only_if_missing('dmarc_none_moderation_action',
                        mm_cfg.DEFAULT_DMARC_NONE_MODERATION_ACTION)
     add_only_if_missing('dmarc_moderation_notice', '')
+    add_only_if_missing('dmarc_moderation_addresses', [])
     add_only_if_missing('dmarc_wrapped_message_text',
                        mm_cfg.DEFAULT_DMARC_WRAPPED_MESSAGE_TEXT)
     add_only_if_missing('member_verbosity_threshold', 

=== modified file 'NEWS'
--- NEWS	2018-11-28 20:03:48 +0000
+++ NEWS	2018-12-15 18:07:41 +0000
@@ -6,6 +6,14 @@
 Here is a history of user visible changes to Mailman.
 
 2.1.30 (xx-xxx.xxxx)
+
+  New Features
+
+    - Thanks to Jim Popovitch, there is now a dmarc_moderation_addresses
+      list setting that can be used to apply dmarc_moderation_action to mail
+      From: addresses listed or matching listed regexps.  This can be used
+      to modify mail to addresses that don't accept external mail From:
+      themselves.
   
   Bug Fixes and other patches
   

_______________________________________________
Mailman-checkins mailing list
Mailman-checkins@python.org
Unsubscribe: 
https://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org

Reply via email to