Add local_hostname option to SMTP.__init__. If supplied, it is used
as the fully qualified local hostname.
This commit is contained in:
parent
03f3ee6d89
commit
6730f26cb0
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue