使用smtplib SMTP.sendmail发送邮件后如何获得服务器回复

Raj*_*r S 4 python smtplib

我有一个使用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')
Run Code Online (Sandbox Code Playgroud)

我真正感兴趣的是错误代码(250)和队列ID(EB83821273B)。如果设置set_debuglevel(1),则可以打印这些,但是我需要将其捕获到变量中以进行进一步的日志记录和处理。

谢谢并恭祝安康,

拉吉

aar*_*ing 5

如果您在实例上使用sendmail方法SMTP,则它将返回

一本字典,每个被拒绝的收件人都有一个条目。每个条目都包含SMTP错误代码的元组和服务器发送的附带错误消息。

如果您在同一类上使用docmd方法,它将返回

由数字响应代码和实际响应行组成的2元组(多行响应合并为一条长行。)

  • 当状态代码为 250 时,“sendmail”返回一个空字典(一切顺利)。因此,当您使用“sendmail”并且没有发生错误时,似乎不可能获得服务器响应。 (2认同)