diff options
author | Jonathan Sandoval <jsandoval@utp.edu.co> | 2016-04-08 13:12:21 -0500 |
---|---|---|
committer | Jonathan Sandoval <jsandoval@utp.edu.co> | 2016-04-08 13:12:21 -0500 |
commit | d4eadc946190b40a7244320ba46e0fd2370e4009 (patch) | |
tree | cdcab5209e9151f43192aae5301340093c99a260 /mediagoblin/tools/mail.py | |
parent | 9d37bcd06fae5e8cbebf68aaf8670551fe6e5db1 (diff) | |
download | mediagoblin-d4eadc946190b40a7244320ba46e0fd2370e4009.tar.lz mediagoblin-d4eadc946190b40a7244320ba46e0fd2370e4009.tar.xz mediagoblin-d4eadc946190b40a7244320ba46e0fd2370e4009.zip |
Custom exception in mail.
Diffstat (limited to 'mediagoblin/tools/mail.py')
-rw-r--r-- | mediagoblin/tools/mail.py | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/mediagoblin/tools/mail.py b/mediagoblin/tools/mail.py index c11e392b..8161a324 100644 --- a/mediagoblin/tools/mail.py +++ b/mediagoblin/tools/mail.py @@ -16,6 +16,8 @@ from __future__ import print_function, unicode_literals +import socket +import logging import six import smtplib import sys @@ -54,6 +56,14 @@ EMAIL_TEST_INBOX = [] EMAIL_TEST_MBOX_INBOX = [] +class MailError(Exception): + """ General exception for mail errors """ + + +class NoSMTPServerError(MailError): + pass + + class FakeMhost(object): """ Just a fake mail host so we can capture and test messages @@ -101,13 +111,27 @@ def send_email(from_addr, to_addrs, subject, message_body): else: smtp_init = smtplib.SMTP - mhost = smtp_init( - mg_globals.app_config['email_smtp_host'], - mg_globals.app_config['email_smtp_port']) + try: + mhost = smtp_init( + mg_globals.app_config['email_smtp_host'], + mg_globals.app_config['email_smtp_port']) + except socket.error: + error_message = "Couldn't contact mail server on <{}>:<{}>".format( + mg_globals.app_config['email_smtp_host'], + mg_globals.app_config['email_smtp_port']) + logging.debug(error_message) + raise NoSMTPServerError(error_message) # 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 + try: + mhost.connect() # We SMTP.connect explicitly + except socket.error: + error_message = "Couldn't contact mail server on <{}>:<{}>".format( + mg_globals.app_config['email_smtp_host'], + mg_globals.app_config['email_smtp_port']) + logging.debug(error_message) + raise NoSMTPServerError(error_message) try: mhost.starttls() |