New submission from skreft <[email protected]>:
The docs
(https://docs.python.org/3/library/email.util.html#email.utils.formataddr) say
that formataddr is the inverse of parseaddr, however non-ascii email addresses
are treated differently in both methods.
parseaddr will return non-ascci addresses, whereas formataddr will raise a
UnicodeError.
Below is an example:
In [1]: import email.utils as u
In [2]: u.parseaddr('skreft+ñandú@sudoai.com')
Out[2]: ('', 'skreft+ñandú@sudoai.com')
In [3]: u.formataddr(u.parseaddr('skreft+ñandú@sudoai.com'))
---------------------------------------------------------------------------
UnicodeEncodeError Traceback (most recent call last)
<ipython-input-3-1323122e1773> in <module>()
----> 1 u.formataddr(u.parseaddr('skreft+ñandú@sudoai.com'))
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/email/utils.py
in formataddr(pair, charset)
89 name, address = pair
90 # The address MUST (per RFC) be ascii, so raise a UnicodeError if
it isn't.
---> 91 address.encode('ascii')
92 if name:
93 try:
UnicodeEncodeError: 'ascii' codec can't encode character '\xf1' in position 7:
ordinal not in range(128)
----------
components: email
messages: 329765
nosy: barry, r.david.murray, skreft
priority: normal
severity: normal
status: open
title: email.utils.formataddr is not exactly the reverse of
email.utils.parseaddr
versions: Python 3.6
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue35222>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com