如何处理无效的电子邮件地址?

我的服务器是Windows Server 2003.我有一个庞大的用户列表。 很多人都有无效的电子邮件,如[email protected][email protected][email protected]

我想向所有用户发送一封电子邮件,但也会发送给那些无效的电子邮件。 因此,它会创build反弹电子邮件。 如何处理这些反弹电子邮件? 任何好的教程,我可以遵循?

在我的公司,我们有一个用.NET编写的小工具,使用名为ListNanny的第三方组件。 它用于在SMTP Badmail Mail文件夹或NDR(非交付报告或非交付收据)中对电子邮件进行分类和parsing。

你必须注意,有一些NDRtypes,你必须在每种情况下决定如何处理邮件列表中的特定地址。 主要区别是“硬反弹”与“软反弹”。 硬反弹是永久性错误,像“未知用户” – 暂时发生软反弹,如“邮箱已满”等。

以下是可以parsing的例子:

  • HardBounce:服务器无法传递您的消息(例如:未知用户,未find邮箱)
  • 瞬态:服务器无法暂时传递您的信息
  • 取消订阅:取消订阅或删除请求
  • 订阅:从某人想要添加到邮件列表的订阅请求。
  • AutoResponder:自动回复电子邮件(例如:“离开办公室”或“度假”)
  • AddressChange:收件人请求地址更改。
  • DnsError:临时的DNS错误。
  • 挑战validation:反弹是一个挑战,要求validation你实际发送的电子邮件。 Spam Arrest或MailFrontier Matador会带来典型的挑战
  • 垃圾邮件通知:邮件已发送,但被用户阻止,或分类为垃圾邮件,群发邮件或拒绝内容。
  • OpenRelayTest:NDR实际上是一个testing电子邮件消息,看看邮件服务器是否是一个开放的中继。
  • 未知:无法分类NDR
  • SoftBounce:无法暂时提供邮件(即邮箱已满,帐户已禁用,超过配额,磁盘空间不足)
  • VirusNotification:反弹实际上是一个关于病毒/代码感染的消息的病毒通知警告。

尽pipe可以将您的NDR邮寄到我的公司,但是我们使用第三方工具来检查邮件列表的有效性,然后再发送给他们。 它有助于减less我们生产的NDR的数量(这显然不完美 – 没有什么),但它确实有很大的帮助。

该程序是GLock软件高级电子邮件validationPro,它的成本为99美元,这是便宜的工作。

恕我直言,最好不要生成NDR的首要地位,不得不处理它们。

这很大程度上取决于你使用邮件的方式。 从你的其他问题,我想你不知道那是什么。 如果您知道您将处理大量未送达报告(电子邮件术语中的NDR),则将From:地址设置为可以增长到非常大的邮箱。 那么你可以想像一下,从你的列表中删除不好的地址。 根据你的邮件是什么,你可能会有更多的select,然而。

在CoverYourASP上有一个Javascript ASP源文件和一个描述性文章的链接。

这个黑客文章也可能是很好的阅读。

很好的简单的Perl模块来覆盖: Email :: Valid “这个模块确定一个电子邮件地址是否格式良好,并且可以select是否存在域名的邮件主机。

但是,它不会以任何方式testing它的可交付成果。

您应该考虑处理退回的电子邮件,并使用处理结果相应地更新您的电子邮件地址。 这将意味着您不会多次发送到一个错误的电子邮件地址,并且您还应该能够pipe理常见的情况,例如退回的邮件,因为收件人的邮箱已满。 一个简单的解决scheme是免费的,使用PHP是:

http://phpmailer.worxware.com/index.php?pg=bmh