#7484: simplify quoteaddr: if parseaddr throws an error it is a bug.
As far as I can tell, the try/except was ancient code, from before the email package rewrite where the philosophy of never throwing parsing errors was adopted.
This commit is contained in:
parent
da7af4d7a1
commit
4c14bba7f9
|
@ -133,24 +133,18 @@ class SMTPAuthenticationError(SMTPResponseException):
|
|||
combination provided.
|
||||
"""
|
||||
|
||||
def quoteaddr(addr):
|
||||
def quoteaddr(addrstring):
|
||||
"""Quote a subset of the email addresses defined by RFC 821.
|
||||
|
||||
Should be able to handle anything email.utils.parseaddr can handle.
|
||||
"""
|
||||
m = (None, None)
|
||||
try:
|
||||
m = email.utils.parseaddr(addr)[1]
|
||||
except AttributeError:
|
||||
pass
|
||||
if m == (None, None): # Indicates parse failure or AttributeError
|
||||
# something weird here.. punt -ddm
|
||||
return "<%s>" % addr
|
||||
elif m is None:
|
||||
# the sender wants an empty return address
|
||||
return "<>"
|
||||
else:
|
||||
return "<%s>" % m
|
||||
displayname, addr = email.utils.parseaddr(addrstring)
|
||||
if (displayname, addr) == ('', ''):
|
||||
# parseaddr couldn't parse it, use it as is and hope for the best.
|
||||
if addrstring.strip().startswith('<'):
|
||||
return addrstring
|
||||
return "<%s>" % addrstring
|
||||
return "<%s>" % addr
|
||||
|
||||
def _addr_only(addrstring):
|
||||
displayname, addr = email.utils.parseaddr(addrstring)
|
||||
|
|
Loading…
Reference in New Issue