2014-02-21 48 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