2010-12-14 154 views
1

我可以对POP3邮箱进行编程访问,还可以访问存储在数据库中的存档电子邮件。我客观的找出坏的电子邮件地址 - 从其中返回电子邮件的电子邮件地址(反弹),状态或如消息:在邮箱中查找“错误的电子邮件地址”

  • 无法投递的邮件
  • 投递状态通知(失败)
  • 未送达邮件退回发件地从人
  • 电子邮件,如邮件守护或邮政局长

是否有办法可以过滤掉这样的电子邮件,而不使用“启发式”?它很容易扫描主题像“无法投递”或发件人,如“邮件守护程序”,但我想要一个更好的解决方案,如果有的话。

请注意,我有机会获得邮件头的所有POP3 /数据库归档的电子邮件。有一些我可以使用的标题吗?

回答

1

某些邮件服务器实现RFC 3464。那些通常会通过消息头Content-Type of multipart/report和三个组成部分(text/plain,message/delivery-status和message/rfc822)生成传递状态通知。因此,您可以检测到消息的这些特征并据此进行处理。该消息一般是这样的:

来源:“邮件传递系统” < [email protected] >
主题:传递状态通知(失败)
内容类型:多部分/报告; report-type = delivery-status

Content-Type:text/plain
传递状态通知的人类可读说明。

内容类型:消息/传递状态
传递状态通知的结构化机器可读原因。

内容类型:消息/ rfc822
原始消息。

对于在非结构化的格式生成传递状态通知的邮件服务器,它可能仍然有必要通过分析从文来检测他们的通知:和主题:邮件标题。