2

我使用django sendmail通过 gmail 发送邮件通知。

我总是设置fail_silently为假。显然,这是一种知道我是否可以连接到 gmail 以及 gmail 是否能够发送消息的方法,但不足以知道这个电子邮件地址是否无法投递。

我想保持干净的电子邮件人员表。我怎样才能知道(通过代码,而不是手动)电子邮件是否因无法送达而被退回。

4

1 回答 1

4

首先,反弹是一个异步事件。在某些情况下,一封无法送达的电子邮件可能需要长达 3 天(甚至更长时间)才能退回。

为了检测退回邮件,您的邮件服务器必须以一种或另一种方式为其提供支持。Gmail 不这样做,但您可以使用后台进程提出启发式解决方案,该进程定期扫描收件箱中的退回邮件并使用例如 imaplib 解析它们。但是,gmail 有一个发送限制,你迟早会达到这个限制,所以我不确定是否值得在这个解决方案上投入时间。

或者,您可以使用具有退回跟踪功能的电子邮件发送服务,例如Postmark

于 2012-12-16T16:24:58.697 回答