diff options
Diffstat (limited to 'mediagoblin/tools/mail.py')
-rw-r--r-- | mediagoblin/tools/mail.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/mediagoblin/tools/mail.py b/mediagoblin/tools/mail.py index ad2e5a19..ab3e0eaa 100644 --- a/mediagoblin/tools/mail.py +++ b/mediagoblin/tools/mail.py @@ -16,7 +16,9 @@ from __future__ import print_function, unicode_literals +import six import smtplib +import sys from mediagoblin import mg_globals, messages from mediagoblin._compat import MIMEText from mediagoblin.tools import common @@ -66,6 +68,8 @@ class FakeMhost(object): 'to': to_addrs, 'message': message}) + def starttls(self): + raise smtplib.SMTPException("No STARTTLS here") def _clear_test_inboxes(): global EMAIL_TEST_INBOX @@ -105,6 +109,13 @@ def send_email(from_addr, to_addrs, subject, message_body): if not mg_globals.app_config['email_smtp_host']: # e.g. host = '' mhost.connect() # We SMTP.connect explicitly + try: + mhost.starttls() + except smtplib.SMTPException: + # Only raise an exception if we're forced to + if mg_globals.app_config['email_smtp_force_starttls']: + six.reraise(*sys.exc_info()) + if ((not common.TESTS_ENABLED) and (mg_globals.app_config['email_smtp_user'] or mg_globals.app_config['email_smtp_pass'])): |