New submission from skreft <skr...@gmail.com>: 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 <rep...@bugs.python.org> <https://bugs.python.org/issue35222> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com