]> granicus.if.org Git - python/commitdiff
Add local_hostname option to SMTP.__init__. If supplied, it is used
authorNeil Schemenauer <nascheme@enme.ucalgary.ca>
Sun, 24 Mar 2002 15:30:40 +0000 (15:30 +0000)
committerNeil Schemenauer <nascheme@enme.ucalgary.ca>
Sun, 24 Mar 2002 15:30:40 +0000 (15:30 +0000)
as the fully qualified local hostname.

Lib/smtplib.py

index 079f128cc5885c1c34370ded3d65dbcb14305864..a6224e0c42165cf0de9736e0461298750f06d354 100755 (executable)
@@ -220,13 +220,15 @@ class SMTP:
     ehlo_resp = None
     does_esmtp = 0
 
-    def __init__(self, host = '', port = 0):
+    def __init__(self, host = '', port = 0, local_hostname = None):
         """Initialize a new instance.
 
         If specified, `host' is the name of the remote host to which to
         connect.  If specified, `port' specifies the port to which to connect.
         By default, smtplib.SMTP_PORT is used.  An SMTPConnectError is raised
-        if the specified `host' doesn't respond correctly.
+        if the specified `host' doesn't respond correctly.  If specified,
+       `local_hostname` is used as the FQDN of the local host.  By default,
+       the local hostname is found using gethostbyname().
 
         """
         self.esmtp_features = {}
@@ -234,6 +236,10 @@ class SMTP:
             (code, msg) = self.connect(host, port)
             if code != 220:
                 raise SMTPConnectError(code, msg)
+        if local_hostname:
+                self.local_hostname = local_hostname
+        else:
+                self.local_hostname = socket.getfqdn()
 
     def set_debuglevel(self, debuglevel):
         """Set the debug output level.
@@ -356,10 +362,7 @@ class SMTP:
         Hostname to send for this command defaults to the FQDN of the local
         host.
         """
-        if name:
-            self.putcmd("helo", name)
-        else:
-            self.putcmd("helo", socket.getfqdn())
+        self.putcmd("helo", name or self.local_hostname)
         (code,msg)=self.getreply()
         self.helo_resp=msg
         return (code,msg)
@@ -370,10 +373,7 @@ class SMTP:
         host.
         """
         self.esmtp_features = {}
-        if name:
-            self.putcmd("ehlo", name)
-        else:
-            self.putcmd("ehlo", socket.getfqdn())
+        self.putcmd("ehlo", name or self.local_hostname)
         (code,msg)=self.getreply()
         # According to RFC1869 some (badly written)
         # MTA's will disconnect on an ehlo. Toss an exception if