2015-03-18 5 views
0

Я могу отправить электронную почту с помощью smtplib с легкостью. То, с чем я борюсь, это чтение фактических заголовков, которые были отправлены. В частности, я хочу прочитать Message-ID и References.Как я могу получить заголовки SMTP после отправки электронной почты?

Я сначала подумал, что sendmail() вернет их, но это не так.

Обнаружено, что я могу перенаправить smtpilb.stderr на свою собственную функцию и проанализировать данные, которые мне нужны. Есть ли лучший способ, который позволил бы мне сделать сказать:

headers['References'] 

ответ

1

Если вы используете sendmail() я не знаю, как получить доступ к заголовкам, потому что вы не имеете Message объект в этом случае. Однако, если вы используете вместо этого send_message - который очень похож на sendmail() - и передайте ему объект email.message.Message, тогда все заголовки сообщений электронной почты и их значения хранятся в dict в вашем объекте Message. Так, например, идентификатор сообщения можно получить из объекта сообщения электронной почты msg с msg['Message-ID'], объект может быть доступен с использованием msg['Subject'] и т. Д. Я не думаю, что что-либо будет сохранено в message-id, если вы не поместите его там сами. Вы можете «свернуть свой собственный» идентификатор сообщения с использованием make_msgid() от email.utils:

from email.utils import make_msgid 

msg['Message-ID'] = make_msgid() 
Смежные вопросы