Я генерирую электронную почту с помощью почтового модуля 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 (просматривая «Показать оригинал»), где в поле «От кого» представлены имя и адрес электронной почты.
Спасибо за помощь.