PHP-批量邮寄和检查服务器响应

PHP-批量邮寄和检查服务器响应,php,email,zend-mail,mail-server,bulk-mail,Php,Email,Zend Mail,Mail Server,Bulk Mail,我们向许多用户发送了大量电子邮件(每天超过20k)。我们面临的一个主要问题是无效或失效的电子邮件-有时我们的用户删除他们的帐户,更改他们的电子邮件地址而不更新他们的个人资料,或者我们的电子邮件数据库建设者只是捕获无效或不再活跃的电子邮件。这些未解决的返回状态消息不仅会堆积在我们的网站管理员帐户上,而且还会浪费宝贵的服务器资源,并且由于反复尝试,更经常地将我们标记为垃圾邮件 现在,虽然我们的邮件服务器设置为不断尝试向返回“暂时不可用”的地址发送电子邮件,但我希望能够在发送后立即将状态消息接收到PH

我们向许多用户发送了大量电子邮件(每天超过20k)。我们面临的一个主要问题是无效或失效的电子邮件-有时我们的用户删除他们的帐户,更改他们的电子邮件地址而不更新他们的个人资料,或者我们的电子邮件数据库建设者只是捕获无效或不再活跃的电子邮件。这些未解决的返回状态消息不仅会堆积在我们的网站管理员帐户上,而且还会浪费宝贵的服务器资源,并且由于反复尝试,更经常地将我们标记为垃圾邮件

现在,虽然我们的邮件服务器设置为不断尝试向返回“暂时不可用”的地址发送电子邮件,但我希望能够在发送后立即将状态消息接收到PHP中。例如,当我的Sender类发送电子邮件时,我想知道返回的状态消息-该电子邮件是否不再处于活动状态,服务器是否不存在,或者该电子邮件是否只是移动到了另一个地址

当然,我也希望能够收到延迟电子邮件的状态消息。因此,如果由于收件人的电子邮件地址暂时不可用而无法发送电子邮件,我希望将“暂时不可用”消息返回到Php中,但我也希望在发送成功后将真正的消息传递回去(例如,如果电子邮件在2天后确实通过)


有没有一个图书馆可以帮助我实现这一目标?解决这个问题最常见的方法是什么,如果有的话?

像大多数关于PHP和mail的问题一样,这主要是关于MTA的

批量发送电子邮件本身就是一门科学(好吧,更像是一门黑色艺术),在这种情况下,如果你想获得合理的交付率,你需要对你的游戏进行大量改进

但回到问题上来

其中很多都是关于如何配置邮件服务器的。另外,大多数MTA仅在从队列中删除失败消息时(例如,在最后一次尝试传递后)才会发回失败消息。这为跟踪每次尝试提供了两个选项:

1) 解析日志文件

2) 将尝试次数设置为1(并可自行处理重新排队)

考虑到邮件成功离开服务器后可能无法传递,因此使用传递状态通知(即退回电子邮件)来跟踪邮件的进度非常有意义,因此使用选项2可以避免为处理不同的场景而构建不同的代码


如果不知道这是在什么操作系统上运行的,也不知道是在哪个MTA上运行的,就不可能给出更具体的建议。

symcbean的回答提供了许多理论输入和处理您的案例的几种方法

此外,也许您可以看看其他LIB或内置函数是如何工作的。例如,您可以查看:

我以前使用过PHPList,但它已经是一个可靠的解决方案。我不知道PHP Mailer类,但我可能值得一试(或者至少看看它们如何处理类似问题)

问候,


Max

我们在MTA上很灵活,如果MTA能更好地满足我们的需求,我们也不介意更换它。操作系统是Linux。现在,我们在某些情况下使用sendmail,在其他情况下使用Zend_Mail_Transport_Smtp。我已经为我的公司创建了一个用于发送的库。我们可以在2秒内处理(解析和创建)1000封不同的电子邮件,从1000个不同的发件人发送到1000个不同的收件人,而实际发送(->send()命令)需要30秒才能完成整个1000封邮件。这是我们可以接受的。现在,我们使用直接Zend传输来锁定服务器并以这种方式发送。在某种程度上,我们不使用真正的MTA。如前所述,服务器是基于Linux的。至于您的建议-您是否有解决方案2的示例?我认为它们都没有我想要的功能,这些是“发件人”库,但它们似乎无法解析返回消息/状态。这一部分我仍然必须手动完成,因为我已经为我的公司建立了一个相当不错的发送者库(因此只需要“处理程序”部分),所以我不需要这两个。谢谢你!