msg = \
"""To: =?ISO-8859-1?Q?Caren_K=F8lter?= <[email protected]>, [email protected]
Cc: "James =?ISO-8859-1?Q?K=F8lter?=" <[email protected]>
Subject: hello
message body blah blah blah
"""
import email.parser, email.utils
import itertools
parser = email.parser.Parser()
parsed_message = parser.parsestr(msg)
address_fields = ('to', 'cc')
addresses = itertools.chain(*(parsed_message.get_all(field) for field in address_fields if parsed_message.has_key(field)))
address_list = set(email.utils.getaddresses(addresses))
print address_list
getaddresses python() Il semble que email.utils.getaddresses() ne semble pas gérer automatiquement MIME RFC 2047 dans les champs d'adresse.Familiarisez décoder le codage mot codé
Comment puis-je obtenir le résultat attendu ci-dessous?
résultat réel:
set([('', '[email protected]'), ('=?ISO-8859-1?Q?Caren_K=F8lter?=', '[email protected]'), ('James =?ISO-8859-1?Q?K=F8lter?=', '[email protected]')])
résultat souhaité:
set([('', '[email protected]'), (u'Caren_K\xf8lter', '[email protected]'), (u'James \xf8lter', '[email protected]')])