Commit bd1094a4 authored by Vinay Sajip's avatar Vinay Sajip

logging: Improved support for SMTP over TLS.

parent 48305667
...@@ -810,7 +810,7 @@ class SMTPHandler(logging.Handler): ...@@ -810,7 +810,7 @@ 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, secure=False): credentials=None, secure=None):
""" """
Initialize the handler. Initialize the handler.
...@@ -819,8 +819,11 @@ class SMTPHandler(logging.Handler): ...@@ -819,8 +819,11 @@ class SMTPHandler(logging.Handler):
(host, port) tuple format for the mailhost argument. To specify (host, port) tuple format for the mailhost argument. To specify
authentication credentials, supply a (username, password) tuple authentication credentials, supply a (username, password) tuple
for the credentials argument. To specify the use of a secure for the credentials argument. To specify the use of a secure
protocol (TLS), pass in True for the secure argument. This will protocol (TLS), pass in a tuple for the secure argument. This will
only be used when authentication credentials are supplied. only be used when authentication credentials are supplied. The tuple
will be either an empty tuple, or a single-value tuple with the name
of a keyfile, or a 2-value tuple with the names of the keyfile and
certificate file. (This tuple is passed to the `starttls` method).
""" """
logging.Handler.__init__(self) logging.Handler.__init__(self)
if isinstance(mailhost, tuple): if isinstance(mailhost, tuple):
...@@ -888,9 +891,9 @@ class SMTPHandler(logging.Handler): ...@@ -888,9 +891,9 @@ class SMTPHandler(logging.Handler):
self.getSubject(record), self.getSubject(record),
formatdate(), msg) formatdate(), msg)
if self.username: if self.username:
if self.secure: if self.secure is not None:
smtp.ehlo() smtp.ehlo()
smtp.starttls() smtp.starttls(*self.secure)
smtp.ehlo() smtp.ehlo()
smtp.login(self.username, self.password) smtp.login(self.username, self.password)
smtp.sendmail(self.fromaddr, self.toaddrs, msg) smtp.sendmail(self.fromaddr, self.toaddrs, msg)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment