我使用django sendmail通过Gmail发送邮件通知。
我总是把fail_silently
设为假。显然,这是一种知道我是否可以连接到gmail以及gmail是否能够发送消息的方法,但不足以知道这个电子邮件地址是否无法送达。
我想保持干净的电子邮件人员表。 我如何知道(通过代码,而非手动)如果电子邮件已退回无法送达。
答案 0 :(得分:3)
首先,反弹是异步事件。在某些情况下,无法投递的电子邮件最多可能需要3天(甚至更长时间)才能退回。
为了检测退回,您的邮件服务器必须以一种或另一种方式为其提供支持。 Gmail不会这样做,但您可以使用后台进程提出启发式解决方案,该进程定期扫描收件箱以进行跳出并使用例如imaplib对其进行解析。但是,gmail有一个发送限制,你迟早会打,所以我不确定是否值得花时间在这个解决方案上。
或者,您可以使用具有退回跟踪功能的电子邮件发送服务,例如Postmark