#7484: no more <> around addresses in VRFY or EXPN
The RFC doesn't say that they are allowed; apparently many mailers accept
them, but not postfix. Contributions to this patch were made by Felipe Cruz
and Catalin Iacob.
diff --git a/Lib/smtplib.py b/Lib/smtplib.py
index e3ffb37..f957636 100755
--- a/Lib/smtplib.py
+++ b/Lib/smtplib.py
@@ -149,6 +149,13 @@
else:
return "<%s>" % m
+def _addr_only(addrstring):
+ displayname, addr = email.utils.parseaddr(addrstring)
+ if (displayname, addr) == ('', ''):
+ # parseaddr couldn't parse it, so use it as is.
+ return addrstring
+ return addr
+
def quotedata(data):
"""Quote data for email.
@@ -497,14 +504,14 @@
def verify(self, address):
"""SMTP 'verify' command -- checks for address validity."""
- self.putcmd("vrfy", quoteaddr(address))
+ self.putcmd("vrfy", _addr_only(address))
return self.getreply()
# a.k.a.
vrfy = verify
def expn(self, address):
"""SMTP 'expn' command -- expands a mailing list."""
- self.putcmd("expn", quoteaddr(address))
+ self.putcmd("expn", _addr_only(address))
return self.getreply()
# some useful methods