如何准确判断电子邮件是否被退回

如何准确判断电子邮件是否被退回

我每周都会向我的时事通讯订阅者发送一份时事通讯。

我从发送电子邮件[电子邮件保护]因为我不希望人们在收到时事通讯时用大量回复淹没我的电子邮箱。

我的订阅者详细信息整齐地打包到数据库中。我一直在编写一个脚本,用于登录[电子邮件保护]查看已退回的邮件(返回给发件人),以便我可以删除数据库中不再有效的电子邮件地址。

我的数据库中的电子邮件地址已增长到数十万个,向数千个无效的电子邮件地址发送不必要的新闻通讯只是浪费时间、带宽和处理能力。

到目前为止,我可以用我的脚本可靠地判断一封电子邮件是否被退回,唯一的方法是检查是否存在X-失败的收件人:在标题中,如果返回路径:值为空。一定有更好的方法吗?

该脚本运行良好,但遗漏了约 30% 不包含以下内容的其他退回电子邮件X-失败的收件人:以及返回路径:值有时不为空。

有没有更可靠的方法来确定电子邮件是否收到[电子邮件保护]是退回的电子邮件,以便我可以采取措施从我的订阅者数据库中删除不起作用的电子邮件?

当收到回复邮件时,我无法从数据库中删除所有电子邮件地址[电子邮件保护]因为人们回复[电子邮件保护]错误地认为有人会读它。

答案1

我能够使用名为邮件::投递状态::反弹分析器

此模块查看退回邮件中的连接阶段拒绝(SMTP 回复代码)。如果 SMTP 回复代码以 5 开头,则肯定是失败。SMTP 代码可在此处找到: https://www.greenend.org.uk/rjk/tech/smtpreplies.html

相关内容