Closed 9c0486b8-adb9-4667-a791-e8e2561fb145 closed 9 years ago
Module smtplib, line 574, in login Module smtplib, line 538, in encode_crammd5 Module hmac, line 72, in \_init__ TypeError: character mapping must return integer, None or unicode
Following traceback occurs when doing connection.login(u'foobar@domain.com', 'justdoit') to issue an ESMTP.
Python 2.6.4 (r264:75706, Mar 11 2010, 18:33:18)
SMTP (RFC 2821) doesn't support non-ASCII envelope addresses. A better behavior here would be for connection.login to raise a ValueError or a TypeError whenever a non-str is passed in.
RFC 5336, though, adds the UTF8SMTP extension, which adds support for UTF-8 encoded unicode mailboxes. If the server advertises the UTF8SMTP capability, then smtplib could encode unicode using UTF-8 and pass it on.
This is really a feature request (RFC 5336 support), not a bug.
Plone currently just passes unicode data around, maybe additional documentation note will do for avoiding such trobules.
Thanks for quick response.
I've changed the topic and set the version to 3.4.
Woops, did not mean to close the issue.
Can not reproduce the problem in 2.7 Attaching a patch with test cases proving that the problem is solved. Patch based on current tip 2.7.
Well, this issue changed into a feature request for UTF8SMTP support, which I do intend to implement at some point.
It does indeed appear like the original problem (not converting unicode strings into ASCII) was fixed in 2.7 at some point, though, which is good news, thanks.
looks like RFC 6531 obsoletes 5336 --> http://datatracker.ietf.org/doc/rfc6531/
(6531 says its the "Proposed Standard", whereas 5336 says its "Experimental" etc etc)
Thanks for the pointer. I keep reading "SMTPUTF8" as "SMTPUFF", but otherwise at a quick glance it looks like an improvement.
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields: ```python assignee = None closed_at =
created_at =
labels = ['easy', 'type-feature', 'library', 'expert-email']
title = 'Support RFC 6531 in smptlib'
updated_at =
user = 'https://bugs.python.org/iElectric'
```
bugs.python.org fields:
```python
activity =
actor = 'r.david.murray'
assignee = 'none'
closed = True
closed_date =
closer = 'r.david.murray'
components = ['Library (Lib)', 'email']
creation =
creator = 'iElectric'
dependencies = []
files = ['29181']
hgrepos = []
issue_num = 8489
keywords = ['patch', 'easy']
message_count = 9.0
messages = ['103890', '103893', '103901', '172266', '172278', '182763', '182772', '182808', '182825']
nosy_count = 9.0
nosy_names = ['barry', 'exarkun', 'christian.heimes', 'iElectric', 'ezio.melotti', 'r.david.murray', 'dlam', 'moijes12', 'hhallman']
pr_nums = []
priority = 'normal'
resolution = 'duplicate'
stage = 'resolved'
status = 'closed'
superseder = '22027'
type = 'enhancement'
url = 'https://bugs.python.org/issue8489'
versions = ['Python 3.5']
```