summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeil Schemenauer <nascheme@enme.ucalgary.ca>2002-03-24 15:30:40 (GMT)
committerNeil Schemenauer <nascheme@enme.ucalgary.ca>2002-03-24 15:30:40 (GMT)
commit6730f26cb06d06e6213fe528709a51a4382901c1 (patch)
tree74ffebdbafc54e7ce46243962973d91ec123960d
parent03f3ee6d891e86d3744793f5d66624e52c8261d5 (diff)
downloadcpython-6730f26cb06d06e6213fe528709a51a4382901c1.zip
cpython-6730f26cb06d06e6213fe528709a51a4382901c1.tar.gz
cpython-6730f26cb06d06e6213fe528709a51a4382901c1.tar.bz2
Add local_hostname option to SMTP.__init__. If supplied, it is used
as the fully qualified local hostname.
-rwxr-xr-xLib/smtplib.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/Lib/smtplib.py b/Lib/smtplib.py
index 079f128..a6224e0 100755
--- a/Lib/smtplib.py
+++ b/Lib/smtplib.py
@@ -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