2012-02-04 30 views
1

如果您正在构建一个web群发邮件软件,管理电子邮件反弹/错误的最佳方法是什么?我打算为此使用PHP。如何在PHP中管理电子邮件弹跳和错误?

在有人开始尖叫前,是的,这些清单将来自有选择加入的有效客户。

我知道有桌面软件或第三方网站可以管理这样的事情。我想用类似于当前CMS的视觉效果的设计来展示它,并且可以在那里访问。

如果唯一的解决方案是连接到邮件服务器并读取弹回信息,那么我会以这种方式。那么,你将如何解析数据来标记该电子邮件为“无效”?

谢谢你,你可以从具有PHP脚本做一边

+0

“最佳管理方式”是什么意思?管理什么? – 2012-02-04 00:46:02

+0

@Paul,弹出电子邮件?由于目的地不再存在或无法访问而导致服务器退回到服务器的电子邮件 – Cybrix 2012-02-04 01:13:07

+0

即使离开办公室也可能被视为反弹,但这些将被忽略。 – Cybrix 2012-02-04 01:15:28

回答

1

一个可能的事情读邮件从POP/IMAP服务器将管道传入邮件的某个地址的PHP脚本。 See Google

你可以这样做类似$email = file_get_contents('php://stdin');我已经安装了PHP扩展mailparse协助解析RFC电子邮件阅读邮件的全部内容,但也有其他的选择。你甚至不一定必须使用任何东西来解析消息。

一旦你有消息,有一些指标可以用来试图将消息标记为bounch。首先,请参阅维基百科关于Non Delivery Reports的文章,特别是FormatRFC 6522 - The Multipart/Report Media Type for the Reporting of Mail System Administrative Messages。您还可以检查消息中的常见标题,例如X-Failed-RecipientsDiagnostic-Code

一旦您确定邮件为PHP邮件处理器中的反弹,您可以采取适当的措施并在与该邮件相关的数据库中设置一个标志。请注意,有些错误可能并不意味着地址不好。例如,如果邮件服务器停机几天,您的MTA可能会放弃,但这并不意味着地址不好。用户的邮箱也可能已满。

它不会是一个坏主意来记录退回邮件的副本,以便它可以由一个人来检查,如果需要诊断问题或扭转疲弱的或特定的电子邮件地址。

这里有一些额外的引用:

http://forums.theplanet.com/lofiversion/index.php/t89873.html(注意改进的可能性2)
https://stackoverflow.com/questions/5700034/how-do-i-process-a-bounce-email-to-find-the-error-code
Bounce Email handling with PHP?

希望有所帮助。