2014-05-12 56 views
0

我使用CakeEmail發送電子郵件,但是當我發送Html和文本電子郵件時,電子郵件會在Outlook中顯示附件圖標。通過CakeEmail發送的電子郵件在Outlook中顯示附件圖標,即使沒有附件發送時

我發現它是因爲頭Content-type:multipart/mixed; 。

但它應該是Content-Type:multipart/aternative;我嘗試通過使用$ Email-> setHeaders();來覆蓋它。

但它並沒有改變。

請建議如何更改CakeEmail中的Content-Type標頭。

+0

請參閱[食譜](http://book.cakephp.org/2.0/en/core-utility-libraries/email.html),你是否將'emailFormat'設置爲'both'? – fvu

+0

您是否測試過使用'multipart/alternative'實際上修復了這個問題? (你可以通過覆蓋[**'CakeEmail :: getHeaders()'**](https://github.com/cakephp/cakephp/blob/2.4.7/lib/Cake/Network/Email/CakeEmail)來實現。 PHP#L752-L753))。在這種情況下,您可能想通過[**問題跟蹤器**](https://github.com/cakephp/cakephp/issues)報告此問題。 PS。請始終提及您的確切CakePHP版本! – ndm

+0

是emailFormat設置爲'both' – user3628956

回答

1

Outlook將僅顯示回形針圖標,即使您無法通過Outlook用戶界面查看附件。

您確定沒有附件嗎?看看OutlookSpy的消息:選擇消息,單擊IMessage按鈕,轉到GetAttachmentTable選項卡。

+0

是的我確定電子郵件中沒有附件。我發現它顯示的是由於錯誤的標題Content-Type:multipart/mixed。這個內容類型用於我們正在發送帶附件的電子郵件。但是,即使我們只是發送文本和HTML電子郵件,CakeEmail也會自動使用此Content-Type。 – user3628956

+0

同樣,你在OutlookSpy中看到了什麼?它可能聽起來不像*真實*附件,但Outlook會看到它不喜歡的任何MIME部分作爲附件。請記住,Outlook不會保留在原始MIME郵件中 - 所有傳入的MIME郵件都會被解析爲信封屬性,收件人和附件(可能是其他郵件)。 –