2014-02-21 18 views
-2

我通过电子邮件标题发送数百封带有唯一标识的电子邮件。我必须追踪特定唯一ID的退回邮件。IMAP-解析来自退回邮件的原始标题

我可以在邮箱中看到带有附加EML文件的退回电子邮件。不幸的是,我正在寻找的唯一ID放在附加的EML文件的标题中,而不是反弹的电子邮件标题。

我使用PHP的IMAP函数来读取标题和正文部分。但无法阅读EML附件。

任何人都可以解释如何使用IMAP函数读取或解析EML附件。

谢谢。

+0

可能重复[如何在PHP中解析.eml文件?](http://stackoverflow.com/questions/11409235/how-to-parse-a-eml-file-in-php) – pduersteler

+0

欢迎来到堆栈溢出。请阅读常见问题以了解这里的工作方式,并使用搜索功能,因为您的问题不是第一个。 – pduersteler

+0

非常感谢!感谢您的建议pduersteler。您给出的链接用于解析服务器路径中的.eml文件,而不是从邮箱中解析。我想知道如何使用IMAP功能从我的收件箱中读取.eml附件。 – Balaji

回答

0

.eml最适合描述为message/rfc822 bodypart;它包含多部分/报告的一部分。

在IMAP中,每个正文部分都有自己的零件号,您可以通过提供号码来访问标题和单个字段。在很多反弹中,message/rfc822的数量是3,并且您可以访问例如该主题使用f uid fetch 123456 body.peek[3.1.header.fields (subject)]。服务器将执行你想要的解析并给你回主题字段。

获取部件号的常用方法是使用bodystructure

使用PHP表达此内容是作为读者的练习。祝你好运。

+0

你是伟大的蚂蚁。 3工作。我使用'imap_fetchbody($ imap_stream,$ msg_number,3)'获得了附加的.eml文件头。 – Balaji

+1

请注意,它并不总是第3部分。它是具有内容类型消息/ rfc822或text/rfc822标头的。 – arnt