2013-08-16 133 views
0

我工作的公司爲我們的客戶提供了批量郵寄功能[雙選擇,而不是垃圾郵件,我保證],並通過美國在線,康卡斯特公司的反饋環路返回報告中的具象報告。雅虎等。這些通常來自注冊的人,不再需要它,已被調節爲而不是單擊'取消訂閱'鏈接,[因爲「垃圾郵件發送者如何獲取您」],並簡單地標記所有消息爲垃圾郵件。MIME多部分解析器

現在,這些FBL電子郵件遵循郵件爲多部分,有一個或兩個文本部分的特定格式,然後附加原始郵件,通常會刪除所有收件人信息。這附加電子郵件也是多部分,幷包含取消訂閱鏈接,但鏈接中發生鏈接的部分是引用可打印的編碼和鏈接是比quoted-printable允許在一行更長,所以它得到消除。偶爾該部分似乎得到了base64編碼,我認爲如果客戶端使用中文/日文等花哨的語言,就會發生這種情況。

我需要的是一個MIME /多部分數據解析器,可以給我這些部分。 PHP有哦,非常有幫助沒有實現任何形式的多部分分析器,除了他們可怕的IMAP函數的內部內容外,還可以在內部找到處理多部分表單數據的PHP本身。

有沒有人知道我可以使用這個短的必須寫我自己的東西?我發現了one script,但它依賴於舊的PECL功能,該功能依賴於PHP的自定義編譯,而不是此服務器的選項。

TL; DR: PHP的imap_ *函數將解析從服務器接收郵件的部分,但我需要解析附從服務器下載電子郵件中的電子郵件的部分。

回答

-1

您可以使用https://github.com/breakermind/PhpMimeParser解析MIME郵件附件和內嵌圖片,Base64和引用可打印。

$str = file_get_contents('mime-mixed-related-alternative.eml'); 

// MimeParser class 
$m = new PhpMimeParser($str); 

// Emails 
print_r($m->mTo); 
print_r($m->mFrom); 
print_r($m->mBcc); 
print_r($m->mCc); 

// Message 
echo $m->mSubject; 
echo $m->mHtml; 
echo $m->mText; 

// Files, images, inline images 
print_r($m->mFiles); 
print_r($m->mInlineList); 
+0

雖然此鏈接可能回答問題,但最好在此處包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/17837510) – Brick