diff options
| author | mailman | 1998-03-20 18:12:34 +0000 |
|---|---|---|
| committer | mailman | 1998-03-20 18:12:34 +0000 |
| commit | 63494efb15c760c21f6f73bfb2d9cb0f2b5e4717 (patch) | |
| tree | 899ba27e20418b34287def0cb9163bc4da5d596d /modules/mm_bouncer.py | |
| parent | 07b3b648de152bee0b154e7fca2c39adaad0effe (diff) | |
| download | mailman-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.py | 14 |
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] |
