Skip to content

Instantly share code, notes, and snippets.

@rod-dot-codes
Created November 23, 2012 05:56
Show Gist options
  • Save rod-dot-codes/4134185 to your computer and use it in GitHub Desktop.
Save rod-dot-codes/4134185 to your computer and use it in GitHub Desktop.
Send an error message using a custom SMTP Handler from Python logging via Amazon SES.
from logging.handlers import SMTPHandler
from boto.ses.connection import SESConnection
from auth import AWS_ACCESS_KEY,AWS_SECRET_ACCESS_KEY
class SESHandler(SMTPHandler):
""" Send's an email using BOTO SES.
"""
def emit(self,record):
conn = SESConnection(AWS_ACCESS_KEY,AWS_SECRET_ACCESS_KEY)
conn.send_email(self.fromaddr,self.subject,self.format(record),self.toaddrs)
if __name__ == "__main__":
#Test
import logging
logger = logging.getLogger()
mail_handler = SESHandler(mailhost="",fromaddr='<yourserveremail eg: no-reply-server@..>',toaddrs="<youremail>", subject='Production Error')
mail_handler.setLevel(logging.ERROR)
logger.addHandler(mail_handler)
try:
1/0 #Love me a divide by zero.
except:
logger.exception("FFFFFFFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUU")
@tipu
Copy link

tipu commented Mar 4, 2015

how do you customize the body of the email sent out with this handler?

@chintan-sh
Copy link

Many thanks for this!

@jpgard
Copy link

jpgard commented May 31, 2018

Thanks! Also, the original version (without the updated API call from @devjoe) worked for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment