aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Mailman/Handlers/ToDigest.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/Mailman/Handlers/ToDigest.py b/Mailman/Handlers/ToDigest.py
index ac0c31d9..d385f476 100644
--- a/Mailman/Handlers/ToDigest.py
+++ b/Mailman/Handlers/ToDigest.py
@@ -88,9 +88,20 @@ def process(mlist, msg, msgdata):
if size / 1024.0 >= mlist.digest_size_threshhold:
# This is a bit of a kludge to get the mbox file moved to the digest
# queue directory.
- mboxfp.seek(0)
- send_digests(mlist, mboxfp)
- os.unlink(mboxfile)
+ try:
+ # Let's close in try - except here because a error in send_digest
+ # can stop regular delivery silently. Unsuccessful digest
+ # delivery should be tried again by cron and the site
+ # administrator will be notified of any error explicitly by the
+ # cron error message.
+ mboxfp.seek(0)
+ send_digests(mlist, mboxfp)
+ os.unlink(mboxfile)
+ except Exception, errmsg:
+ # I know bare except is prohibited in mailman coding but we can't
+ # forcast what new exception can occur here.
+ syslog('error', 'send_digests() failed: %s', errmsg)
+ pass
mboxfp.close()