------------------------------------------------------------
revno: 1500
fixes bug: https://launchpad.net/bugs/1382150
committer: Mark Sapiro <[email protected]>
branch nick: 2.1
timestamp: Thu 2014-10-16 22:09:49 -0700
message:
Implemented the ability to forward bounces to the list owner.
modified:
Mailman/Bouncer.py
Mailman/Defaults.py.in
Mailman/Gui/Bounce.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/Bouncer.py'
--- Mailman/Bouncer.py 2012-02-18 02:18:34 +0000
+++ Mailman/Bouncer.py 2014-10-17 05:09:49 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2014 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
@@ -89,6 +89,8 @@
mm_cfg.DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS_INTERVAL
self.bounce_unrecognized_goes_to_list_owner = \
mm_cfg.DEFAULT_BOUNCE_UNRECOGNIZED_GOES_TO_LIST_OWNER
+ self.bounce_notify_owner_on_bounce_increment = \
+ mm_cfg.DEFAULT_BOUNCE_NOTIFY_OWNER_ON_BOUNCE_INCREMENT
self.bounce_notify_owner_on_disable = \
mm_cfg.DEFAULT_BOUNCE_NOTIFY_OWNER_ON_DISABLE
self.bounce_notify_owner_on_removal = \
@@ -135,6 +137,7 @@
siblist.Unlock()
return
info = self.getBounceInfo(member)
+ first_today = True
if day is None:
# Use today's date
day = time.localtime()[:3]
@@ -155,6 +158,7 @@
return
elif info.date == day:
# We've already scored any bounces for this day, so ignore it.
+ first_today = False
syslog('bounce', '%s: %s already scored a bounce for date %s',
self.internal_name(), member,
time.strftime('%d-%b-%Y', day + (0,0,0,0,1,0)))
@@ -189,6 +193,9 @@
info.reset(0, info.date, info.noticesleft)
else:
self.disableBouncingMember(member, info, msg)
+ elif self.bounce_notify_owner_on_bounce_increment and first_today:
+ self.__sendAdminBounceNotice(member, msg,
+ did=_('bounce score incremented'))
# We've set/changed bounce info above. We now need to tell the
# MemberAdaptor to set/update it. We do it here in case the
# MemberAdaptor stores bounce info externally to the list object to
@@ -218,7 +225,7 @@
if self.bounce_notify_owner_on_disable:
self.__sendAdminBounceNotice(member, msg)
- def __sendAdminBounceNotice(self, member, msg):
+ def __sendAdminBounceNotice(self, member, msg, did=_('disabled')):
# BAW: This is a bit kludgey, but we're not providing as much
# information in the new admin bounce notices as we used to (some of
# it was of dubious value). However, we'll provide empty, strange, or
@@ -230,7 +237,7 @@
{'listname' : self.real_name,
'addr' : member,
'negative' : '',
- 'did' : _('disabled'),
+ 'did' : did,
'but' : '',
'reenable' : '',
'owneraddr': siteowner,
=== modified file 'Mailman/Defaults.py.in'
--- Mailman/Defaults.py.in 2014-05-03 03:26:03 +0000
+++ Mailman/Defaults.py.in 2014-10-17 05:09:49 +0000
@@ -1344,6 +1344,10 @@
# failed to match by the bounce detector?
DEFAULT_BOUNCE_UNRECOGNIZED_GOES_TO_LIST_OWNER = Yes
+# Does the list owner get a copy of every recognized bounce that increments
+# the score for a list member but doesn't result in a disable or probe?
+DEFAULT_BOUNCE_NOTIFY_OWNER_ON_BOUNCE_INCREMENT = No
+
# Notifications on bounce actions. The first specifies whether the list owner
# should get a notification when a member is disabled due to bouncing, while
# the second specifies whether the owner should get one when the member is
=== modified file 'Mailman/Gui/Bounce.py'
--- Mailman/Gui/Bounce.py 2005-08-27 01:40:17 +0000
+++ Mailman/Gui/Bounce.py 2014-10-17 05:09:49 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2004 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 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
@@ -142,6 +142,15 @@
<a href="?VARHELP=autoreply/autoresponse_admin_text">autoresponse
message</a> for email to the -owner and -admin address.""")),
+ ('bounce_notify_owner_on_bounce_increment', mm_cfg.Toggle,
+ (_('No'), _('Yes')), 0,
+ _("""Should Mailman notify you, the list owner, when bounces
+ cause a member's bounce score to be incremented?"""),
+ _("""Setting this value to <em>Yes</em> will cause Mailman to
+ send a notice including a copy of the bounce message to the list
+ owners whenever a bounce increments a member's bounce score but
+ doesn't cause a disable or a probe to be sent.""")),
+
('bounce_notify_owner_on_disable', mm_cfg.Toggle,
(_('No'), _('Yes')), 0,
_("""Should Mailman notify you, the list owner, when bounces
=== modified file 'Mailman/Version.py'
--- Mailman/Version.py 2014-05-06 16:35:47 +0000
+++ Mailman/Version.py 2014-10-17 05:09:49 +0000
@@ -37,7 +37,7 @@
(REL_LEVEL << 4) | (REL_SERIAL << 0))
# config.pck schema version number
-DATA_FILE_VERSION = 104
+DATA_FILE_VERSION = 105
# qfile/*.db schema version number
QFILE_SCHEMA_VERSION = 3
=== modified file 'Mailman/versions.py'
--- Mailman/versions.py 2014-05-03 03:26:03 +0000
+++ Mailman/versions.py 2014-10-17 05:09:49 +0000
@@ -371,6 +371,9 @@
'bounce_unrecognized_goes_to_list_owner',
mm_cfg.DEFAULT_BOUNCE_UNRECOGNIZED_GOES_TO_LIST_OWNER)
add_only_if_missing(
+ 'bounce_notify_owner_on_bounce_increment',
+ mm_cfg.DEFAULT_BOUNCE_NOTIFY_OWNER_ON_BOUNCE_INCREMENT)
+ add_only_if_missing(
'bounce_notify_owner_on_disable',
mm_cfg.DEFAULT_BOUNCE_NOTIFY_OWNER_ON_DISABLE)
add_only_if_missing(
=== modified file 'NEWS'
--- NEWS 2014-09-22 02:06:41 +0000
+++ NEWS 2014-10-17 05:09:49 +0000
@@ -7,6 +7,16 @@
2.1.19 (xx-xxx-xxxx)
+ New Features
+
+ - There is a new list attribute in the Bounce processing section.
+ bounce_notify_owner_on_bounce_increment if set to Yes will cause
+ Mailman to notify the list owner on every bounce that increments a
+ list member's score but doesn't result in a probe or disable. There
+ is a new configuration setting setting
+ DEFAULT_BOUNCE_NOTIFY_OWNER_ON_BOUNCE_INCREMENT to set the default
+ for new lists. This in turn defaults to No. (LP: #1382150)
+
Changed behavior
- Mailman's log files, request.pck files and heldmsg-* files are no
_______________________________________________
Mailman-checkins mailing list
[email protected]
Unsubscribe:
https://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org