我正在从POP3服务器获取电子邮件,我想在常规电子邮件和DSN(传递状态通知)/ NDR(未送达报告/收据)消息之间做出改变。
识别这些消息的最佳/最安全的方法是什么?是否有任何特定的消息标题我应该寻找?
提前致谢!
答案 0 :(得分:5)
某些邮件服务器实施RFC 3464。这样做通常会生成传递状态通知,其中包含消息头内容类型的多部分/报告和三个组成部分(文本/普通,消息/传递状态和消息/ rfc822)。因此,您可以检测到消息的这些特征并进行相应处理。该消息通常如下所示:
发件人:“邮件投放系统”< MAILER-DAEMON@example.com>
主题:交货状态通知(失败)内容类型: 多/报告;报告类型=递送状态Content-Type:text / plain人类可读的解释 交货状态通知。
Content-Type:message / delivery-status结构化机器可读 交货状态通知的原因。
Content-Type:message / rfc822原始消息。
对于那些以非结构化格式生成传递状态通知的邮件服务器,可能仍需要通过分析From:和Subject:邮件头的文本来检测其通知。