Модуль электронной почты Python: заголовок формы «От» с некоторым именем в юникоде + электронная почта

Я генерирую электронную почту с помощью почтового модуля Python .
Вот несколько строк кода, которые демонстрируют мой вопрос:

msg = email.MIMEMultipart.MIMEMultipart('alternative')

msg['From'] = "somemail@somedomain.com"

msg.as_string()

Out[7]: 'Content-Type: multipart/alternative;\n boundary="===============9006870443159801881=="\nMIME-Version: 1.0\nFrom: somemail@somedomain.com\n\n--===============9006870443159801881==\n\n--===============9006870443159801881==--' 

Как видите, здесь все в порядке, поле From содержит адрес электронной почты, и это круто. Но что, если я хочу добавить имя перед адресом электронной почты? Особенно юникодный:

In [8]: u.get_full_name()
Out[8]: u'\u0414\u0438\u043c\u0430 \u0426\u0443\u043a\u0430\u043d\u043e\u0432'

In [9]: msg = email.MIMEMultipart.MIMEMultipart('alternative')

In [10]: msg['From'] = "%s <%s>" % (u.get_full_name(), "email@at.com")

In [11]: msg.as_string()
Out[11]: 'Content-Type: multipart/alternative;\n boundary="===============5792069034892928634=="\nMIME-Version: 1.0\nFrom: =?utf-8?b?0JTQuNC80LAg0KbRg9C60LDQvdC+0LIgPGVtYWlsQGF0LmNvbT4=?=\n\n--===============5792069034892928634==\n\n--===============5792069034892928634==--'

Здесь видно, что вся строка (имя, адрес электронной почты) была закодирована в base64 (и даже вполне логично, откуда MIMEMultipart узнает, что строка содержит юникодные и не юникодные части).
Итак, мой вопрос: как мне указать почтовому модулю сделать мне красивый заголовок «От», например:
От: =?UTF-8?B?0JLQmtC+0L3RgtCw0LrRgtC1?= (скрытый)?

Кроме того, я немного изучил RFC2822 (http://www.faqs.org/rfcs/rfc2822.html, стр. 3.6.2). Он сообщает:

Поля отправителя указывают почтовый ящик(и) источника сообщение. Поле «От:» указывает автора(ов) сообщения, то есть почтовый ящик (я) лица (лиц) или системы (систем), ответственных за для написания сообщения. Поле «Отправитель:» указывает почтовый ящик агента, ответственного за фактическую передачу сообщение. Например, если секретарь должен был отправить сообщение для другого человека, почтовый ящик секретаря появится в Поле «Отправитель:» и почтовый ящик фактического автора появятся в поле «От:». Если можно указать отправителя сообщения одним почтовым ящиком, а автор и отправитель идентичны, Поле «Отправитель:» НЕ ДОЛЖНО использоваться. В противном случае оба поля ДОЛЖНЫ появляться.

Значит ли это, что я должен объединить эти два заголовка? (От и отправитель).Я немного сбит с толку, потому что заметил много писем в своем gmail (просматривая «Показать оригинал»), где в поле «От кого» представлены имя и адрес электронной почты.

Спасибо за помощь.

13
задан Anton Koval' 11 May 2012 в 13:10
поделиться