如何使用PHP处理邮件传递错误

时间:2009-07-08 11:04:50

标签: php email newsletter

我正在构建一个用于发送简报的symfony模块。我的想法是建立一个adreeses的队列列表以接收邮件,然后,通过cron作业,一次发送50个。

我现在不做的是阅读当电子邮件地址不存在或邮件已满时由服务器发回的邮件传递报告。我们的想法是将这些错误报告存储在干净的地址列表中。

任何想法如何实现?

2 个答案:

答案 0 :(得分:3)

发送时可以使用reply to地址。所以发送的电子邮件将发送到此ID。您还可以创建另一个PHP脚本read this "reply to" email inbox并从中获取id。然后,您可以从列表中删除此ID。

答案 1 :(得分:3)

当阅读“退回的收件箱”时,您可以使用这样的类来实际解析邮件并查看返回的状态(例如,永久或临时错误):

http://www.phpclasses.org/browse/package/2691.html

要真正准确地解析邮件会给你带来困难,因为并非所有的邮件服务器都是相似的,有些邮件服务器会向你发送“邮箱已满” - 标有“永久”标志的错误,而其他人可能会告诉你错误“用户不存在“是”临时“。

我尝试了一次解决方案,最后建立了我自己的解析器,连接到一个包含可能的服务器回复的巨大数据库(以及它们的“真实”含义:)。