How to get server reply after sending a mail using smtplib SMTP.sendmail

爷,独闯天下 提交于 2019-12-01 05:29:06

问题


I have a program to send mail using python smtplib. I have the mail sending part working fine, but I also need to capture the server return message after a mail has been sent. For example postfix returns the following message after a mail has been queueed:

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')

What I am really interested is the error code (250) and the queue id (EB83821273B). I can print these if I set set_debuglevel(1), but I need to capture this in a variable for further logging and processing.

thanks and regards,

raj


回答1:


If you are using the sendmail method on an SMTP instance, then it will return

a dictionary, with one entry for each recipient that was refused. Each entry contains a tuple of the SMTP error code and the accompanying error message sent by the server.

if you use the docmd method on the same class, the it will return

a 2-tuple composed of a numeric response code and the actual response line (multiline responses are joined into one long line.)



来源:https://stackoverflow.com/questions/3820603/how-to-get-server-reply-after-sending-a-mail-using-smtplib-smtp-sendmail

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!