5

我正在从 POP3 服务器获取电子邮件,我想在普通电子邮件和 DSN(送达状态通知)/NDR(未送达报告/收据)消息之间做出区分。

识别这些消息的最佳/最安全方法是什么?我应该寻找任何特定的消息头吗?

提前致谢!

4

1 回答 1

7

一些邮件服务器实现RFC 3464。这样做的人通常会生成传递状态通知,其消息头 Content-Type 为 multipart/report 和三个组成部分(text/plain、message/delivery-status 和 message/rfc822)。因此,您可以检测消息的这些特征并相应地进行处理。该消息通常如下所示:

来自:“邮件传递系统”<MAILER-DAEMON@example.com>
主题:传递状态通知(失败) 内容类型:multipart/report;报告类型=交付状态

Content-Type: text/plain 交付状态通知的人类可读解释。

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

Content-Type:message/rfc822 原始消息。

对于那些以非结构化格式生成传递状态通知的邮件服务器,可能仍然需要通过分析 From: 和 Subject: 邮件标题的文本来检测它们的通知。

于 2011-02-01T20:23:00.100 回答