2012-12-17 49 views
-1

我已經在網上搜索了這些,但似乎找不到答案。我知道郵件()不是最好的,但我想用它來簡化。具有PHP郵件功能的奇怪外來字符

我使用mail()和file_get_contents發送基本的html電子郵件,但發送的電子郵件在Apple Mail中查看郵件摘要時看起來是中文字符。不幸的是,作爲一個新用戶,我無法發佈圖片。

我正在將郵件發送到在Apple Mail中查看的gmail帳戶,因此摘要顯示在主題行下方。當我實際查看電子郵件時,中文字符不在那裏。我真的想擺脫這些怪異的角色,並會感謝您的幫助!謝謝!

+3

字符看起來像是帶有問號的鑽石嗎?這聽起來像一個字符編碼問題。 – PhearOfRayne

+1

您可以添加您用於發送郵件和發送郵件前後的郵件內容的代碼嗎? – Dale

+0

簡而言之:你需要確保身體的編碼是好​​的,使用頭部聲明該編碼,並確保所有頭部行僅爲ASCII,必要時進行MIME編碼。沒有更多的細節,很難回答你做錯了什麼。 – deceze

回答

0

獲取中文字符時常見的方法是在普通的8位編碼(Ascii,ISO-8859-1,windows-1252,不管)中輸入一些英文文本,並將它誤認爲是UTF-16編碼。這樣,你可以轉動例如「ab」,即U + 0061 U + 0062,U + 6162或U + 6261(取決於字節順序),即變爲慢或扡。

因此,問題很可能是字符編碼。沒有進一步的信息,就不可能說出真正發生的事情。爲了分析這種情況,最好先測試一下,而不涉及gmail,這可能是這裏的罪魁禍首。

+0

太奇怪了。我最初嘗試更改編碼,但它不起作用。對不起,我沒有粘貼我的代碼。這是我在stackoverflow上的第一篇文章。 – user1909186

+0

只是蘋果郵件摘要中的一個問題。蘋果郵件摘要必須是一個奇怪的編碼怪癖。不管怎麼說,多謝拉。 – user1909186

0

我明白郵件()是不是最好的

這是一個非常發人深省的評論。

解決問題的方式總是有多種方式來解決問題,而這些問題不僅僅是微不足道的,而且不同的方法具有不同的優點/風險/問題。對於大多數用途而言,mail()是從PHP應用程序發送電子郵件的理想方式。

但是,通過SMTP發送HTML電子郵件遠非微不足道。您需要詳細瞭解MIME和字符編碼。解釋這些遠遠超出了答案的範圍。

要麼花幾個星期閱讀這個主題,並使用各種用戶代理進行實驗(微軟甚至無法得到這個正確的 - 半結腸分隔符,蹩腳的笑臉處理)或使用工具,如swiftmailerphpmailer

+0

謝謝。我明白你的意思。我應該說,這對所有情況都不是最佳的。我剛剛寫道,所以人們不會簡單地告訴我使用swiftmailer和phpmailer。 – user1909186