Message329765
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) |
|
Date |
User |
Action |
Args |
2018-11-12 22:09:52 | skreft | set | recipients:
+ skreft, barry, r.david.murray |
2018-11-12 22:09:52 | skreft | set | messageid: <1542060592.48.0.788709270274.issue35222@psf.upfronthosting.co.za> |
2018-11-12 22:09:52 | skreft | link | issue35222 messages |
2018-11-12 22:09:52 | skreft | create | |
|