Это, возможно, не очевидно из документации (при условии Python 2.7), но объект email_message действует как dict
, реализуя функцию __getitem__
. Так как вы получили и проанализировали все сообщение, вы можете получить к нему доступ просто как:
email_message['from']
Обратите внимание, это дает вам необработанное представление заголовка, что, вероятно, хорошо во многих случаях.
Затем вы можете использовать email.utils.parseaddr
, чтобы разбить его на составные части:
realname, addr = email.utils.parseaddr(email_message['from')).
email.utils.getaddresses
может быть полезно, если вы затем анализируете заголовки To или Cc с более чем одним получателем.
Если вам нужно иметь дело с интернационализированными заголовками в старых версиях Python, можно использовать email.header.decode_header
и email.header.make_header
.
В Python3.6 это значительно изменилось и должно быть более простым.