Report problems sending mail. Thanks to Antti-Juhani Kaijanaho
authorLars Wirzenius <liw@iki.fi>
Sat, 12 Aug 2006 11:37:40 +0000 (14:37 +0300)
committerLars Wirzenius <liw@iki.fi>
Sat, 12 Aug 2006 11:37:40 +0000 (14:37 +0300)
eoc.py

diff --git a/eoc.py b/eoc.py
index 52621bc3b4c73e91c84c66ba88fb8de0d71422ca..124cac2f5bb06f10aaa23c50bf1d50d3d3f66a8c 100644 (file)
--- a/eoc.py
+++ b/eoc.py
@@ -395,13 +395,21 @@ class MailingListManager:
                "\n    ".join(text[:text.find("\n\n")].split("\n"))))
         if recipients:
             if self.smtp_server:
                "\n    ".join(text[:text.find("\n\n")].split("\n"))))
         if recipients:
             if self.smtp_server:
-                smtp = smtplib.SMTP(self.smtp_server)
-                smtp.sendmail(envelope_sender, recipients, text)
-                smtp.quit()
+                try:
+                    smtp = smtplib.SMTP(self.smtp_server)
+                    smtp.sendmail(envelope_sender, recipients, text)
+                    smtp.quit()
+                except:
+                    error("Error sending SMTP mail, mail probably not sent")
+                    sys.exit(1)
             elif self.qmqp_server:
             elif self.qmqp_server:
-                q = qmqp.QMQP(self.qmqp_server)
-                q.sendmail(envelope_sender, recipients, text)
-                q.quit()
+                try:
+                    q = qmqp.QMQP(self.qmqp_server)
+                    q.sendmail(envelope_sender, recipients, text)
+                    q.quit()
+                except:
+                    error("Error sending QMQP mail, mail probably not sent")
+                    sys.exit(1)
             else:
                 recipients = string.join(recipients, " ")
                 f = os.popen("%s -oi -f '%s' %s" % 
             else:
                 recipients = string.join(recipients, " ")
                 f = os.popen("%s -oi -f '%s' %s" % 
@@ -410,7 +418,11 @@ class MailingListManager:
                                   recipients),
                              "w")
                 f.write(text)
                                   recipients),
                              "w")
                 f.write(text)
-                f.close()
+                status = f.close()
+                if status != 0:
+                    error("%s returned %d, mail sending probably failed" %
+                           (self.sendmail, status))
+                    sys.exit((status >> 8) & 0xff)
         else:
             debug("send_mail: no recipients, not sending")
 
         else:
             debug("send_mail: no recipients, not sending")