答案1
在我的公司,我们有一个小工具,用 .NET 编写,使用第三方组件,名为列表保姆。它用于对 SMTP 文件夹中的退回电子邮件Badmail
或 NDR(无法送达报告或无法送达收据)进行分类和解析。
您必须注意,NDR 有多种类型,您必须根据具体情况决定如何处理邮件列表中的特定地址。主要区别在于“硬退回”与“软退回”。硬退回是永久性错误,如“未知用户” - 软退回是暂时发生的,如“邮箱已满”等。
以下是可以解析的示例:
- 硬退回:服务器无法发送您的邮件(例如:未知用户、未找到邮箱)
- 暂时:服务器暂时无法传递您的消息
- 取消订阅:取消订阅或删除请求
- 订阅:想要加入邮件列表的人的订阅请求。
- 自动回复器:自动电子邮件回复器(例如:“外出”或“度假”)
- AddressChange:收件人已请求更改地址。
- DnsError:临时 DNS 错误。
- ChallengeVerification:退回邮件是要求验证您是否确实发送了电子邮件的挑战。典型的挑战是由 Spam Arrest 或 MailFrontier Matador 发起的
- SpamNotification:邮件已送达,但被用户阻止、被归类为垃圾邮件、群发邮件或包含被拒绝的内容。
- OpenRelayTest:NDR 实际上是一个测试电子邮件消息,用于查看邮件服务器是否为开放中继。
- 未知:无法对 NDR 进行分类
- SoftBounce:无法暂时传递邮件(例如邮箱已满、帐户已禁用、超出配额、磁盘空间不足)
- VirusNotification:退回实际上是有关病毒/代码感染消息的病毒通知警告。
答案2
虽然可以将 NDR 发送到邮箱并从中剔除,但在我公司,我们会使用第三方工具检查邮件列表的有效性,然后再发送给他们。这有助于减少我们生成的 NDR 数量(显然它并不完美 - 没有什么是完美的),但它确实有很大帮助。
该程序是 GLock Softwares Advanced E-Mail Verifier Pro,价格为 99 美元,对于它的功能来说比较便宜。
我认为最好一开始就不要生成 NDR,而不是处理它们。
答案3
这很大程度上取决于你使用的邮件程序。从你的其他问题我想你不知道那到底是什么。如果你知道你将处理大量未送达报告(电子邮件术语中的 NDR),那么请将你的发件人:地址设置为可以增长到非常大的邮箱。然后你大概可以检查一下,并从列表中剔除坏地址。不过,根据你的邮件程序,你可能有更多选择。
答案4
很好用的 perl 模块来解决这个问题:电子邮件::有效 “该模块确定电子邮件地址是否格式正确,并且可选地确定域中是否存在邮件主机。”
但它并没有通过任何方式测试其是否可交付成果。