diff options
author | Yasuhito FUTATSUKI at POEM <futatuki@poem.co.jp> | 2017-02-15 17:35:23 +0900 |
---|---|---|
committer | Yasuhito FUTATSUKI at POEM <futatuki@poem.co.jp> | 2017-02-15 17:35:23 +0900 |
commit | 593d91698db3fa9dd99b64f2973ee14947dd4782 (patch) | |
tree | 00fa54270be0043ccb74614df7321816c6facc76 /Mailman | |
parent | ee5b57e4bc8fdca687cbc04a1338941941f29b1d (diff) | |
parent | c78ea26f8f04cd2e3d2cf231736bcc95ec8cccd5 (diff) | |
download | mailman2-593d91698db3fa9dd99b64f2973ee14947dd4782.tar.gz mailman2-593d91698db3fa9dd99b64f2973ee14947dd4782.tar.xz mailman2-593d91698db3fa9dd99b64f2973ee14947dd4782.zip |
Merge lp:mailman/2.1 up to 1691
Diffstat (limited to 'Mailman')
-rw-r--r-- | Mailman/Bouncers/SimpleMatch.py | 4 | ||||
-rw-r--r-- | Mailman/Cgi/roster.py | 6 | ||||
-rw-r--r-- | Mailman/Queue/BounceRunner.py | 34 |
3 files changed, 28 insertions, 16 deletions
diff --git a/Mailman/Bouncers/SimpleMatch.py b/Mailman/Bouncers/SimpleMatch.py index 2aa082a2..e84d2255 100644 --- a/Mailman/Bouncers/SimpleMatch.py +++ b/Mailman/Bouncers/SimpleMatch.py @@ -188,6 +188,10 @@ PATTERNS = [ (_c('A message that you sent was rejected'), _c('This is a copy of your message'), _c('\s(?P<addr>[^\s@]+@[^\s@]+)')), + # MailEnable + (_c('Message could not be delivered to some recipients.'), + _c('Message headers follow'), + _c('Recipient: \[SMTP:(?P<addr>[^\s@]+@[^\s@]+)\]')), # Next one goes here... ] diff --git a/Mailman/Cgi/roster.py b/Mailman/Cgi/roster.py index e9ab03c1..cb6847af 100644 --- a/Mailman/Cgi/roster.py +++ b/Mailman/Cgi/roster.py @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2016 by the Free Software Foundation, Inc. +# Copyright (C) 1998-2017 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 @@ -141,8 +141,8 @@ def error_page(errmsg): print doc.Format() -def error_page_doc(doc, errmsg, *args): +def error_page_doc(doc, errmsg): # Produce a simple error-message page on stdout and exit. doc.SetTitle(_("Error")) doc.AddItem(Header(2, _("Error"))) - doc.AddItem(Bold(errmsg % args)) + doc.AddItem(Bold(errmsg)) diff --git a/Mailman/Queue/BounceRunner.py b/Mailman/Queue/BounceRunner.py index 651039d6..2d14f284 100644 --- a/Mailman/Queue/BounceRunner.py +++ b/Mailman/Queue/BounceRunner.py @@ -29,6 +29,7 @@ from email.Utils import parseaddr from Mailman import mm_cfg from Mailman import Utils from Mailman import LockFile +from Mailman.Errors import NotAMemberError from Mailman.Message import UserNotification from Mailman.Bouncer import _BounceInfo from Mailman.Bouncers import BouncerAPI @@ -151,19 +152,26 @@ class BounceMixin: mlist.Lock() try: op, addr, bmsg = mlist.pend_confirm(token) - info = mlist.getBounceInfo(addr) - if not info: - # info was deleted before probe bounce was received. - # Just create a new info. - info = _BounceInfo(addr, - 0.0, - time.localtime()[:3], - mlist.bounce_you_are_disabled_warnings - ) - mlist.disableBouncingMember(addr, info, bmsg) - # Only save the list if we're unlocking it - if not locked: - mlist.Save() + # For Python 2.4 compatibility we need an inner try because + # try: ... except: ... finally: requires Python 2.5+ + try: + info = mlist.getBounceInfo(addr) + if not info: + # info was deleted before probe bounce was received. + # Just create a new info. + info = _BounceInfo(addr, + 0.0, + time.localtime()[:3], + mlist.bounce_you_are_disabled_warnings + ) + mlist.disableBouncingMember(addr, info, bmsg) + # Only save the list if we're unlocking it + if not locked: + mlist.Save() + except NotAMemberError: + # Member was removed before probe bounce returned. + # Just ignore it. + pass finally: if not locked: mlist.Unlock() |