Can you test the attached patch?

A.

From 1dbc8ce4faf3591d7885a9c86fb09d4ec54cd5b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Antoine=20Beaupr=C3=A9?= <anar...@koumbit.org>
Date: Sat, 30 Aug 2014 19:37:14 -0700
Subject: [PATCH] handle errors better when connecting to SMTP servers (Closes:
 #756540)

---
 monkeysign/ui.py | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/monkeysign/ui.py b/monkeysign/ui.py
index 169893d..c477e0d 100644
--- a/monkeysign/ui.py
+++ b/monkeysign/ui.py
@@ -338,8 +338,16 @@ def sendmail(self, msg):
 expects an EmailFactory email, but will not mail if nomail is set"""
             if self.options.smtpserver is not None and not self.options.nomail:
                 if self.options.dryrun: return True
-                server = smtplib.SMTP(self.options.smtpserver)
+                server = smtplib.SMTP()
                 server.set_debuglevel(self.options.debug)
+                # to be nicer to users, we could catch socket.error exceptions from
+                # server.connect() here and display a meaningful message to stderr.
+                try:
+                    (code, msg) = server.connect(self.options.smtpserver)
+                except (socket.error, socket.timeout) as e:
+                    self.abort(_('Error connecting to SMTP server: %s') % e)
+                if code != 220:
+                    self.abort(_('Unexpected SMTP server '%s' error code: %s (%s)') % (self.options.smtpserver, code, msg))
                 try:
                     server.starttls()
                 except SMTPException:
-- 
1.9.1

-- 
Si Dieu est, l'homme est esclave ; 
or l'homme peut, doit être libre, donc Dieu n'existe pas.
Et si Dieu existait, il faudrait s'en débarrasser!
                        - Michel Bakounine

Attachment: pgpWh4zj1JQ0i.pgp
Description: PGP signature

Reply via email to