2011-12-15 54 views
3

我想从服务器获得服务器响应(例如,200,500),表示消息是否已发送。怎么做?如何在发送电子邮件后从服务器获取回应?

>> s = smtplib.SMTP('...') 
>> resp = s.sendmail('[email protected]', '[email protected]', 'message') 
>> print resp 
{} 
>> resp = s.sendmail('[email protected]', '[email protected]', 'message') 
>> print resp 
{} 
>> resp = s.sendmail('[email protected]', '[email protected]', 'message') 
>> print resp 
{} 

O_O

感谢。

回答

4

你不能。 SMTP不支持该行为。

4

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

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

正如他们所说的关于发送电子邮件 - '发送消息很容易,但它很难交付'。

+0

是的,我已经尝试set_debuglevel(1),并看到该服务器接受所有地址。但是当我在发送电子邮件后在服务器对象上调用getreply()方法时,服务器挂起了o_O – User 2011-12-15 12:28:26

相关问题