[Nym3-commit] r482 - trunk/nymbaron
zax at conuropsis.org
zax at conuropsis.org
Thu Mar 16 20:09:15 CET 2006
Author: zax
Date: 2006-03-16 20:09:13 +0100 (Thu, 16 Mar 2006)
New Revision: 482
Modified:
trunk/nymbaron/Mail.py
Log:
Add SMTP exception handling
Modified: trunk/nymbaron/Mail.py
===================================================================
--- trunk/nymbaron/Mail.py 2006-03-16 17:26:11 UTC (rev 481)
+++ trunk/nymbaron/Mail.py 2006-03-16 19:09:13 UTC (rev 482)
@@ -249,9 +249,29 @@
# Send the message to the designated smtp server
# TODO Need some error handling when logging gets enabled
mail_logger.debug("Sending outgoing message through smtplib")
- mailserver = smtplib.SMTP(smtphost)
+ try:
+ mailserver = smtplib.SMTP(smtphost)
+ mail_logger.debug("Connected to SMTP server %s" % smtphost)
+ except socket.error:
+ mail_logger.warn("Server %s does not appear to be listening for SMTP connections" % smtphost)
+ sys.exit(2)
+ except socket.gaierror:
+ mail_logger.warn("Server %s is not responding" % smtphost)
+ sys.exit(2)
#mailserver.set_debuglevel(1)
- mailserver.sendmail(from_addr, [rcpt], payload)
+ try:
+ mailserver.sendmail(from_addr, [rcpt], payload)
+ mail_logger.debug("Message successfully relayed to SMTP server %s" % smtphost)
+ except smtplib.SMTPRecipientsRefused:
+ mail_logger.info("All recipients were refused for message from %s" % nym)
+ except smtplib.SMTPHeloError:
+ mail_logger.warn("The SMTP server %s did not respond properly to HELO" % smtphost)
+ except smtplib.SMTPSenderRefused:
+ mail_logger.info("The SMTP server %s refused sender %s" % (smtphost, from_hddr))
+ except smtplib.SMTPDataError:
+ mail_logger.warn("The SMTP server %s responded with an unexpected code" % smtphost)
+ except:
+ mail_logger.warn("An unexpected error occured in smtplib" % smtphost)
mailserver.quit()
def relay_sendmail(payload, sm):
@@ -265,6 +285,8 @@
if status:
mail_logger.warn("%s returned error %s" % (sm, status))
sys.exit(2)
+ else:
+ mail_logger.debug("Message successfully relayed to %s" % sm)
def genMid(length = midLen):
"""Randomly generates a mid of given length different from oldestMid"""
More information about the Nym3-commit
mailing list