From cf15757558d7e6ff82a55e4144fad7a3cad55e13 Mon Sep 17 00:00:00 2001 From: Martijn Vermaat <martijn@vermaat.name> Date: Tue, 21 Oct 2014 20:10:11 +0200 Subject: [PATCH] Don't crash on mail errors in the batch scheduler Fixes #30 --- mutalyzer/Scheduler.py | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/mutalyzer/Scheduler.py b/mutalyzer/Scheduler.py index 400c81c5..e4816720 100644 --- a/mutalyzer/Scheduler.py +++ b/mutalyzer/Scheduler.py @@ -122,10 +122,30 @@ Mutalyzer batch scheduler""" % url) message["From"] = settings.EMAIL message["To"] = mailTo - smtpInstance = smtplib.SMTP() - smtpInstance.connect() - smtpInstance.sendmail(settings.EMAIL, mailTo, message.as_string()) - smtpInstance.quit() + try: + smtpInstance = smtplib.SMTP('localhost') + except smtplib.SMTPConnectError as e: + print 'Could not send email to %s: (%s) %s' % (mailTo, + unicode(e.smtp_code), + unicode(e.smtp_error)) + return + except IOError as e: + print 'Could not send email to %s: %s' % (mailTo, unicode(e)) + return + + try: + smtpInstance.sendmail(settings.EMAIL, mailTo, message.as_string()) + except smtplib.SMTPRecipientsRefused as e: + for address, (code, error) in e.recipients.items(): + print 'Could not send email to %s: (%s) %s' % (address, + code, + error) + except smtplib.SMTPResponseException as e: + print 'Could not send email to %s: (%s) %s' % (mailTo, + unicode(e.smtp_code), + unicode(e.smtp_error)) + finally: + smtpInstance.quit() #__sendMail def __processFlags(self, O, flags) : -- GitLab