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ó[email protected]'))
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ó[email protected]'))
u'dummy <juan.l\[email protected]>'
----------
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 <[email protected]>
<http://bugs.python.org/issue25955>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com