所以我做了一个小应用程序,从web2py发送电子邮件,连接到gmail smtp服务器。这里的问题是它总是给我一个成功的信息!即使email-id无效。我已经测试了gmail的退回功能,通过从gmail发送邮件到无效的电子邮件ID,gmail说“你的邮件已被发送”,但是在转到发送文件夹时,邮件守护进程有一个时间延迟(这对于不同的不同邮寄服务)。我认为web2py的mail.send()功能无法捕获该功能,并将“您的消息已发送”作为确认。如何捕获未使用web2py发送的邮件?
if mail.send(session.email,subject=session.subject,message= session.message):
response.flash = 'email sent sucessfully.'
else:
response.flash = 'fail to send email sorry!'
答案 0 :(得分:0)
mail.send()仅将消息传递给SMTP服务器,响应只是说明服务器已成功接收/接受消息以进行进一步处理。要检查这一点,请将您的计算机与网络断开连接或故意破坏邮件配置并再试一次 - mail.send()应该失败,因为它无法连接到SMTP服务器来传递邮件。
稍后在SMTP服务器和邮件传递路径上的其他服务器上发生实际的邮件处理(包括目标地址检查)。处理失败通常会导致错误电子邮件被发回(弹跳) - 这是电子邮件交换协议栈中的一个级别,而不是mail.send()操作的级别。