New submission from Sergei Maertens: The function `formataddr` in stdlib `email.utils` does not allow unicode e-mail addresses where the first part (before the @) is unicode. Python 3.5 promises support for SMTPUTF8 through `EmailPoliy.utf8` (https://docs.python.org/3/whatsnew/3.5.html#email), but this utility function doesn't respect this, as it calls `address.encode('ascii')`.
For unicode addresses, an obvious `UnicodeEncodeError` is raised. Reproduce steps: ➜ ~ python Python 3.5.1 (default, Dec 7 2015, 12:58:09) [GCC 5.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from email.utils import formataddr >>> formataddr(('dummy', 'juan.lóp...@abc.com')) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python3.5/email/utils.py", line 91, in formataddr address.encode('ascii') UnicodeEncodeError: 'ascii' codec can't encode character '\xf3' in position 6: ordinal not in range(128) Interesting is that on Python 2.7 the behaviour is more naive, but it works:: ➜ ~ python2 Python 2.7.11 (default, Dec 6 2015, 15:43:46) [GCC 5.2.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from email.utils import formataddr >>> formataddr(('dummy', u'juan.lóp...@abc.com')) u'dummy <juan.l\xf3...@abc.com>' ---------- components: email messages: 257034 nosy: Sergei Maertens, barry, r.david.murray priority: normal severity: normal status: open title: email.utils.formataddr does not support RFC 6532 type: enhancement versions: Python 3.5 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue25955> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com