]> granicus.if.org Git - python/commitdiff
Added new optional credentials argument to SMTPHandler.__init__, and smtp.login(...
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Tue, 1 May 2007 10:20:03 +0000 (10:20 +0000)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Tue, 1 May 2007 10:20:03 +0000 (10:20 +0000)
Lib/logging/handlers.py

index c713a11c26c1207745b46681771047b635bab544..3c54c8f6fb86ea4a2868981fb8ea11e08a009d3a 100644 (file)
@@ -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):