2010-09-29 88 views
1

我有一个使用python smtplib发送邮件的程序。我有邮件发送部分工作正常,但我也需要在发送邮件后捕获服务器返回消息。例如后缀返回以下消息的邮件已经被queueed后:如何在使用smtplib发送邮件后获得服务器回复SMTP.sendmail

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

如果您使用的是一个SMTP实例sendmail方法,那么它将返回

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

如果使用在同一类的docmd方法中,它会返回

的数字响应代码和实际响应线构成的2元组(多反应结合成一个长线)

+0

这也是值得注意的是,这种方法可能会引发以下情况除外:如果我使用的DoCmd方法我将不得不命令里基本上重新实现sendmail命令SMTPHeloError,SMTPRecipientsRefused,SMTPSenderRefused或SMTPDataError – Johnsyweb 2010-09-29 11:17:55

+1

GHT? – 2010-09-29 11:31:59

相关问题