Added new optional credentials argument to SMTPHandler.__init__, and smtp.login() is now called in SMTPHandler.emit() if credentials are specified.
This commit is contained in:
parent
09728b7ef3
commit
70c8e8b861
|
@ -722,22 +722,25 @@ class SMTPHandler(logging.Handler):
|
||||||
"""
|
"""
|
||||||
A handler class which sends an SMTP email for each logging event.
|
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 handler.
|
||||||
|
|
||||||
Initialize the instance with the from and to addresses and subject
|
Initialize the instance with the from and to addresses and subject
|
||||||
line of the email. To specify a non-standard SMTP port, use the
|
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)
|
logging.Handler.__init__(self)
|
||||||
if type(mailhost) == types.TupleType:
|
if type(mailhost) == types.TupleType:
|
||||||
host, port = mailhost
|
self.mailhost, self.mailport = mailhost
|
||||||
self.mailhost = host
|
|
||||||
self.mailport = port
|
|
||||||
else:
|
else:
|
||||||
self.mailhost = mailhost
|
self.mailhost, self.mailport = mailhost, None
|
||||||
self.mailport = None
|
if type(credentials) == types.TupleType:
|
||||||
|
self.username, self.password = credentials
|
||||||
|
else:
|
||||||
|
self.username = None
|
||||||
self.fromaddr = fromaddr
|
self.fromaddr = fromaddr
|
||||||
if type(toaddrs) == types.StringType:
|
if type(toaddrs) == types.StringType:
|
||||||
toaddrs = [toaddrs]
|
toaddrs = [toaddrs]
|
||||||
|
@ -793,6 +796,8 @@ class SMTPHandler(logging.Handler):
|
||||||
string.join(self.toaddrs, ","),
|
string.join(self.toaddrs, ","),
|
||||||
self.getSubject(record),
|
self.getSubject(record),
|
||||||
formatdate(), msg)
|
formatdate(), msg)
|
||||||
|
if self.username:
|
||||||
|
smtp.login(self.username, self.password)
|
||||||
smtp.sendmail(self.fromaddr, self.toaddrs, msg)
|
smtp.sendmail(self.fromaddr, self.toaddrs, msg)
|
||||||
smtp.quit()
|
smtp.quit()
|
||||||
except (KeyboardInterrupt, SystemExit):
|
except (KeyboardInterrupt, SystemExit):
|
||||||
|
|
Loading…
Reference in New Issue