Feature #489 - SMTP configuration options - Acts on feedback from cwebber.
authorJoar Wandborg <git@wandborg.com>
Thu, 25 Aug 2011 17:38:13 +0000 (19:38 +0200)
committerJoar Wandborg <git@wandborg.com>
Thu, 25 Aug 2011 17:38:13 +0000 (19:38 +0200)
http://bugs.foocorp.net/issues/489#note-2

mediagoblin/config_spec.ini
mediagoblin/util.py

index bc6f00d9ef916e99a8fb3a7f632e196724580173..0bc7d6ad30400259ba0e038cd8f8980b2afbca45 100644 (file)
@@ -20,7 +20,7 @@ direct_remote_path = string(default="/mgoblin_static/")
 # set to false to enable sending notices
 email_debug_mode = boolean(default=True)
 email_sender_address = string(default="notice@mediagoblin.example.org")
-email_smtp_host = string(default=None)
+email_smtp_host = string(default='')
 email_smtp_port = integer(default=25)
 email_smtp_user = string(default=None)
 email_smtp_pass = string(default=None)
index 6dced54e6e1e9fecf94c0199eca1c2c483dfa317..60ba880081fdae45ecc3a8db75b95c4be2294b5b 100644 (file)
@@ -237,10 +237,7 @@ class FakeMhost(object):
     Just a fake mail host so we can capture and test messages
     from send_email
     """
-    def connect(self):
-        pass
-
-    def login(self):
+    def login(self, *args, **kwargs):
         pass
 
     def sendmail(self, from_addr, to_addrs, message):
@@ -273,14 +270,16 @@ def send_email(from_addr, to_addrs, subject, message_body):
     if TESTS_ENABLED or mg_globals.app_config['email_debug_mode']:
         mhost = FakeMhost()
     elif not mg_globals.app_config['email_debug_mode']:
-        if not mg_globals.app_config['email_smtp_host']:
-            mhost = smtplib.SMTP()
-        else:
-            mhost = smtplib.SMTP(
-                mg_globals.app_config['email_smtp_host'],
-                mg_globals.app_config['email_smtp_port'])
-
-    if mg_globals.app_config['email_smtp_user']:
+        mhost = smtplib.SMTP(
+            mg_globals.app_config['email_smtp_host'],
+            mg_globals.app_config['email_smtp_port'])
+
+        # SMTP.__init__ Issues SMTP.connect implicitly if host
+        if not mg_globals.app_config['email_smtp_host']:  # e.g. host = ''
+            mhost.connect()  # We SMTP.connect explicitly
+
+    if mg_globals.app_config['email_smtp_user'] \
+            or mg_globals.app_config['email_smtp_pass']:
         mhost.login(
             mg_globals.app_config['email_smtp_user'],
             mg_globals.app_config['email_smtp_pass'])