Guest User

Untitled

a guest
May 23rd, 2012
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. import logging.handlers
  2. import smtplib
  3.  
  4. class BufferingSMTPHandler(logging.handlers.BufferingHandler):
  5. def __init__(self, mailhost, fromaddr, toaddrs, subject, capacity):
  6. logging.handlers.BufferingHandler.__init__(self, capacity)
  7. self.mailhost = mailhost
  8. self.mailport = None
  9. self.fromaddr = fromaddr
  10. if isinstance(toaddrs, (str, unicode)):
  11. toaddrs = [toaddrs]
  12. self.toaddrs = toaddrs
  13. self.subject = subject
  14. self.setFormatter(logging.Formatter("%(asctime)s %(levelname)-5s %(message)s"))
  15.  
  16. def flush(self):
  17. if len(self.buffer) > 0:
  18. try:
  19. port = self.mailport
  20. if not port:
  21. port = smtplib.SMTP_PORT
  22. smtp = smtplib.SMTP(self.mailhost, port)
  23. msg = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" % (self.fromaddr, ','.join(to_addrs), self.subject)
  24. for record in self.buffer:
  25. s = self.format(record)
  26. msg = msg + s + "\r\n"
  27. smtp.sendmail(self.fromaddr, self.toaddrs, msg)
  28. smtp.quit()
  29. except:
  30. self.handleError(None) # no particular record
  31. self.buffer = []
Add Comment
Please, Sign In to add comment