发送电子邮件后,如何从服务器获取响应?

时间:2011-12-15 09:57:47

标签: python email dsn

我想从服务器状态(例如200,500)的服务器获得响应,该消息说明是否已发送消息。怎么做?

>> s = smtplib.SMTP('...')
>> resp = s.sendmail('me@me.com', 'exist@email.com', 'message')
>> print resp
{}
>> resp = s.sendmail('me@me.com', 'does-not-exist-email@email.com', 'message')
>> print resp
{}
>> resp = s.sendmail('me@me.com', 'does-not-exist-domain@email000.com', 'message')
>> print resp
{}

O_O

感谢。

2 个答案:

答案 0 :(得分:5)

你做不到。 SMTP不支持该行为。

答案 1 :(得分:4)

如果成功发送,这是sendmail的正常行为。您可以在docsmtp lib source中进行检查。空字典作为响应意味着服务器接受并向每个收件人发送消息。

关于交货状态。 SMPT协议在此阶段无法保证邮件将成功传递给收件人。这意味着第一台服务器可以接受该消息并将其向前推,但是下一个邮件跳转服务器之一可能只是丢弃它(当然,出于某些原因,第一台服务器可能会被告知这些原因,但没有有可能通知你所有这些东西。)

正如他们所说的关于发送电子邮件 - “发送邮件很容易,但要传递邮件要困难得多”。