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

时间:2010-09-29 10:09:36

标签: 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')

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

感谢和问候,

拉​​吉

1 个答案:

答案 0 :(得分:4)

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

  

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

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

  

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