summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cron/qrunner15
1 files changed, 14 insertions, 1 deletions
diff --git a/cron/qrunner b/cron/qrunner
index 7cc27cdac..fe4973aad 100644
--- a/cron/qrunner
+++ b/cron/qrunner
@@ -65,7 +65,20 @@ def dispose_message(mlist, msg, msgdata):
mimemsg = mimetools.Message(s)
if mlist.bounce_processing:
if BouncerAPI.ScanMessages(mlist, mimemsg):
- return
+ return 0
+ # The message could have been a bounce from a broken list admin
+ # address. About the only other test we can do is to see if the
+ # message is appearing to come from a well-known MTA generated
+ # address.
+ sender = msg.GetSender()
+ i = string.find(sender, '@')
+ if i >= 0:
+ senderlhs = string.lower(sender[:i])
+ else:
+ senderlhs = sender
+ if senderlhs in mm_cfg.LIKELY_BOUNCE_SENDERS:
+ syslog('error', 'bounce loop detected from: %s' % sender)
+ return 0
# Either bounce processing isn't turned on or the bounce detector
# found no recognized bounce format in the message. In either case,
# forward the dang thing off to the list owner.