1

我们的数据库中有一个很大的电子邮件地址列表,人们从这些地址中注册了我们其中一个网站的时事通讯。

我们有一个 cron 作业,它使用 PHP 从数据库中获取电子邮件地址并发送时事通讯。

当一封电子邮件被退回时,cron 作业管理员会收到一封关于它的电子邮件。

如果我们想要一个脚本来自动从数据库中删除退回的电子邮件地址,那么实现它的最佳方法是什么?有没有办法记录退回的电子邮件,然后让脚本解析日志,然后删除错误的电子邮件地址?或者有没有办法通过 PHP 测试退回的电子邮件地址?

4

2 回答 2

2

您要做的是选择一个“通用”退回电子邮件地址(例如,bounce@example.com)。您想将标题“Return-Path”设置为“bounce@example.com”。

然后,您有一个外部进程检查“bounce@example.com”收件箱中的消息。请勿将此电子邮件帐户用于除退回之外的任何其他用途。

您将在此收件箱中收到退回邮件、休假消息和其他类型的电子邮件。你只需要训练你的解析器在电子邮件中寻找某些模式。您的模式列表起初并不全面,但您需要不时手动查看此收件箱,以便进一步训练您的解析器。

您的解析器可以很简单,并寻找简单的子字符串甚至正则表达式。在大多数情况下,不需要正则表达式。

于 2012-04-05T21:07:46.937 回答
0

你需要的是反弹解析器。

您可以通过 POP3 或 IMAP 接收退回电子邮件,甚至可以从文件中读取(如果您可以配置自己的 MTA)。退回电子邮件将被发送到“返回路径”标题中指定的电子邮件地址。

据我所知,PHP 没有好的开源反弹解析器。你可以自己写。您可以从从 mailman 发现解析器开始(用 python 编写)。

于 2012-04-05T21:26:39.290 回答