Как я могу получить заголовки SMTP после отправки электронной почты?
Я могу отправлять электронные письма, используя smtplib
с легкостью. То, с чем я борюсь, это чтение фактических заголовков, которые были отправлены. В частности, я хочу прочитать Message-ID
а также References
,
Сначала я подумал, что sendmail()
вернул бы их, но это не так.
Обнаружил, что я могу перенаправить smtpilb.stderr
к моей собственной функции и разобрать данные, которые мне нужны. Есть ли лучший способ, который позволил бы мне сказать:
headers['References']
1 ответ
Если вы используете sendmail()
Я не уверен, как получить доступ к заголовкам, потому что у вас нет Message
объект в этом случае. Однако, если вы используете send_message
вместо этого - что очень похоже на sendmail()
- и передать email.message.Message
объекта, тогда все заголовки сообщений электронной почты и их значения хранятся в файле dict в вашем Message
объект. Так, например, Message-ID может быть доступен из объекта сообщения электронной почты msg
с msg['Message-ID']
субъект может быть доступен с помощью msg['Subject']
и т.д. Я не думаю, что что-то будет храниться в message-id
если вы не положите его туда, хотя сами. Вы можете "свернуть свой собственный" Message-ID, используя make_msgid()
от email.utils
:
from email.utils import make_msgid
msg['Message-ID'] = make_msgid()