【问题标题】:mail.send() feature in web2py for bounced email/ email address that doesnt existweb2py 中的 mail.send() 功能,用于不存在的退回电子邮件/电子邮件地址
【发布时间】:2015-08-04 16:00:30
【问题描述】:

所以我做了一个小应用程序,它从 web2py 发送电子邮件,连接到 gmail smtp 服务器。这里的问题是它总是给我一个成功的信息!即使电子邮件 ID 无效。我已经通过将邮件从 gmail 发送到无效的电子邮件 ID 来测试 gmail 的退回功能,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!'

【问题讨论】:

    标签: python email gmail web2py


    【解决方案1】:

    mail.send() 只是将消息传递给 SMTP 服务器,响应只是说明服务器已成功接收/接受消息以进行进一步处理。要检查此情况,请断开您的计算机与网络的连接或故意破坏邮件配置并重试 - mail.send() 应该会失败,因为它无法连接到 SMTP 服务器以将消息传递给它。

    实际的邮件处理(包括目标地址检查)稍后在 SMTP 服务器和邮件传递路径上的其他服务器上进行。处理失败通常会导致错误电子邮件被发回(退回) - 这是电子邮件交换协议堆栈中的不同级别,而不是 mail.send() 操作所在的级别。

    【讨论】:

    • 感谢您的澄清!有解决办法吗?
    • 我唯一能想到的就是处理传入的消息,找到邮件传递系统发送的错误,找到匹配的原始消息(通常在错误消息中引用)并解决根据需要失败。注意:单个原始消息可能有多个错误消息 - 如果有多次失败的传递尝试/重试。
    猜你喜欢
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 2014-04-30
    • 2019-05-07
    相关资源
    最近更新 更多