summaryrefslogtreecommitdiff
path: root/modules/mm_bouncer.py
diff options
context:
space:
mode:
authormailman1998-03-20 18:12:34 +0000
committermailman1998-03-20 18:12:34 +0000
commit63494efb15c760c21f6f73bfb2d9cb0f2b5e4717 (patch)
tree899ba27e20418b34287def0cb9163bc4da5d596d /modules/mm_bouncer.py
parent07b3b648de152bee0b154e7fca2c39adaad0effe (diff)
downloadmailman-63494efb15c760c21f6f73bfb2d9cb0f2b5e4717.tar.gz
mailman-63494efb15c760c21f6f73bfb2d9cb0f2b5e4717.tar.zst
mailman-63494efb15c760c21f6f73bfb2d9cb0f2b5e4717.zip
Looks like bounce handling does not work like options advertise - in
particular, "Don't remove, notify me" still *does* do the removal. Sigh. The right way to set this up will take some thought, but i think my first cut fix will be, when this option is selected, to just disable the user, and send a note to the admin. That way, the admin won't just get extra notes accompanying continuing bounce results for the user... I may get to this quick fix soon. The long term (and fairly attractive) fix is to make a bounce-handling subsystem which collects bounce messages and classifies them according to a admin-configurable template, taking actions like disabling or removing the user, notifying the admin, etc, when admin-configured thresholds are reached. The admin interface could be handled very like the admin-requests mechanism, with a page for bounce administration and a periodic notice of pending bounce admin stuff.
Diffstat (limited to 'modules/mm_bouncer.py')
-rw-r--r--modules/mm_bouncer.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/modules/mm_bouncer.py b/modules/mm_bouncer.py
index 092c6bfb7..ca4a914c2 100644
--- a/modules/mm_bouncer.py
+++ b/modules/mm_bouncer.py
@@ -33,8 +33,9 @@ class Bouncer:
('max_posts_between_bounces', mm_cfg.Number, 3, 0,
"Maximum number of messages your list gets in an hour. (Yes, bounce detection "
"finds this info useful)"),
- ('automatically_remove', mm_cfg.Radio, ("Don't remove; Notify me", "Remove, but "
- "notify me", "Remove and don't notify me"),
+ ('automatically_remove', mm_cfg.Radio,
+ ("Don't remove and notify me; ", "Remove, but notify me",
+ "Remove and don't notify me"),
0, "Automatically remove addresses considered for removal, or alert you?")
]
def ClearBounceInfo(self, email):
@@ -43,7 +44,7 @@ class Bouncer:
del self.bounce_info[email]
def RegisterBounce(self, email):
- report = "Bouncing %s on list %s - " % (email, self.real_name)
+ report = "%s: %s - " % (self.real_name, email)
bouncees = self.bounce_info.keys()
this_dude = mm_utils.FindMatchingAddresses(email, bouncees)
now = time.time()
@@ -110,8 +111,7 @@ class Bouncer:
def RemoveBouncingAddress(self, addr):
try:
self.DeleteMember(addr)
- self.LogMsg("bounce", "%s removed from %s",
- addr, self.real_name)
+ self.LogMsg("bounce", "%s: removed %s", self.real_name, addr)
# Send mail to the user...
except mm_err.MMNoSuchUserError:
self.ClearBounceInfo(addr)
@@ -119,8 +119,8 @@ class Bouncer:
# Return 0 if we couldn't make any sense of it, 1 if we handled it.
def ScanMessage(self, msg):
-# realname, who_from = msg.getaddr('from')
-# who_info = string.lower(who_from)
+## realname, who_from = msg.getaddr('from')
+## who_info = string.lower(who_from)
who_info = string.lower(msg.GetSender())
at_index = string.find(who_info, '@')
who_from = who_info[:at_index]