Как получить ответ сервера после отправки почты с помощью smtplib SMTP.sendmail - PullRequest
4 голосов
/ 29 сентября 2010

У меня есть программа для отправки почты с использованием python smtplib.У меня нормально работает часть отправки почты, но мне также нужно перехватить ответное сообщение с сервера после того, как письмо было отправлено.Например, postfix возвращает следующее сообщение после того, как письмо было помещено в очередь:

reply: '250 2.0.0 Ok: queued as EB83821273B\r\n'
reply: retcode (250); Msg: 2.0.0 Ok: queued as EB83821273B
data: (250, '2.0.0 Ok: queued as EB83821273B')

Что меня действительно интересует, так это код ошибки (250) и идентификатор очереди (EB83821273B).Я могу напечатать их, если я установлю set_debuglevel (1), но мне нужно записать это в переменную для дальнейшей регистрации и обработки.

спасибо и всего наилучшего,

Радж

1 Ответ

4 голосов
/ 29 сентября 2010

Если вы используете метод sendmail для экземпляра SMTP, он вернет

словарь с одной записью для каждого получателя, которому было отказано.Каждая запись содержит кортеж кода ошибки SMTP и сопровождающее сообщение об ошибке, отправленное сервером.

Если вы используете метод docmd для того же класса, он вернет

2-кортеж, состоящий из числового кода ответа и фактической строки ответа (многострочные ответы объединяются в одну длинную строку.)

...