From ca2b2c7265951cdc101cec9e359fb0bbb15c4a67 Mon Sep 17 00:00:00 2001 From: "vinay.sajip" Date: Tue, 1 May 2007 10:20:03 +0000 Subject: [PATCH] Added new optional credentials argument to SMTPHandler.__init__, and smtp.login() is now called in SMTPHandler.emit() if credentials are specified. git-svn-id: http://svn.python.org/projects/python/trunk@55041 6015fed2-1504-0410-9fe1-9d1591cc4771 --- Lib/logging/handlers.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py index c713a11c26..3c54c8f6fb 100644 --- a/Lib/logging/handlers.py +++ b/Lib/logging/handlers.py @@ -722,22 +722,25 @@ class SMTPHandler(logging.Handler): """ 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 @@ class SMTPHandler(logging.Handler): 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): -- 2.11.4.GIT