Я создаю электронную почту с помощью модуля электронной почты Python.
Вот несколько строк кода, которые демонстрируют мой вопрос:
msg = email.MIMEMultipart.MIMEMultipart('alternative')
msg['From'] = "[email protected]"
msg.as_string()
Out[7]: 'Content-Type: multipart/alternative;\n boundary="===============9006870443159801881=="\nMIME-Version: 1.0\nFrom: [email protected]\n\n--===============9006870443159801881==\n\n--===============9006870443159801881==--'
Как вы можете видеть, здесь все в порядке, From поле содержит адрес электронной почты ant, это круто. Но что, если я хочу добавить имя перед электронной почтой? Особенно однокодовый:
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 protected]")
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 будет знать, что строка содержит юникод и части, не относящиеся к юникоду).
Итак, мой вопрос: как мне сказать модуль электронной почты, чтобы сделать меня красивым заголовком "От", например: From: =?UTF-8?B?0JLQmtC+0L3RgtCw0LrRgtC1?= <[email protected]> ?
Кроме того, я немного научился RFC2822 (http://www.faqs.org/rfcs/rfc2822.html, с .3.6.2). Он сообщает:
Поля отправителя указывают почтовый ящик (источник) источника сообщение. Поле "От:" указывает автора (ов) сообщения, то есть почтовый ящик лица (ов) или системы (ов), ответственных для написания сообщения. Поле "Отправитель:" указывает почтовый ящик агента, ответственного за фактическую передачу сообщение. Например, если секретарь должен был отправить сообщение для другой человек, почтовый ящик секретаря появится в Поле "Отправитель:" и почтовый ящик фактического автора будут отображаться в поле "От:". Если отправитель сообщения может быть указан одним почтовым ящиком, а автор и передатчик идентичны, Поле "Отправитель:" НЕ ДОЛЖНО использоваться. В противном случае оба поля ДОЛЖНЫ появляются.
Означает ли это, что я должен объединить эти два заголовка? (From и Sender). Я немного смущен, потому что я заметил много писем в моем gmail (просматривая "Показать оригинал" ), где представлены имя и адрес поля From.
Спасибо за помощь.