[Python-checkins] r55041 - python/trunk/Lib/logging/handlers.py
vinay.sajip
python-checkins at python.org
Tue May 1 12:20:03 CEST 2007
Author: vinay.sajip
Date: Tue May 1 12:20:03 2007
New Revision: 55041
Modified:
python/trunk/Lib/logging/handlers.py
Log:
Added new optional credentials argument to SMTPHandler.__init__, and smtp.login() is now called in SMTPHandler.emit() if credentials are specified.
Modified: python/trunk/Lib/logging/handlers.py
==============================================================================
--- python/trunk/Lib/logging/handlers.py (original)
+++ python/trunk/Lib/logging/handlers.py Tue May 1 12:20:03 2007
@@ -722,22 +722,25 @@
"""
A handler class which sends an SMTP email for each logging event.
"""
- def __init__(self, mailhost, fromaddr, toaddrs, subject):
+ def __init__(self, mailhost, fromaddr, toaddrs, subject, credentials=None):
"""
Initialize the handler.
Initialize the instance with the from and to addresses and subject
line of the email. To specify a non-standard SMTP port, use the
- (host, port) tuple format for the mailhost argument.
+ (host, port) tuple format for the mailhost argument. To specify
+ authentication credentials, supply a (username, password) tuple
+ for the credentials argument.
"""
logging.Handler.__init__(self)
if type(mailhost) == types.TupleType:
- host, port = mailhost
- self.mailhost = host
- self.mailport = port
+ self.mailhost, self.mailport = mailhost
else:
- self.mailhost = mailhost
- self.mailport = None
+ self.mailhost, self.mailport = mailhost, None
+ if type(credentials) == types.TupleType:
+ self.username, self.password = credentials
+ else:
+ self.username = None
self.fromaddr = fromaddr
if type(toaddrs) == types.StringType:
toaddrs = [toaddrs]
@@ -793,6 +796,8 @@
string.join(self.toaddrs, ","),
self.getSubject(record),
formatdate(), msg)
+ if self.username:
+ smtp.login(self.username, self.password)
smtp.sendmail(self.fromaddr, self.toaddrs, msg)
smtp.quit()
except (KeyboardInterrupt, SystemExit):
More information about the Python-checkins
mailing list