[英]PHP mail utf-8 issues
我試圖使用PHP mail()函數以utf-8
編碼發送電子郵件。 這有一些問題。 如:
Content-Type: text/plain; charset=us-ascii
Content-Type: text/plain; charset=us-ascii
。 此行為不依賴於發送標頭Content-Type: text/plain; charset=UTF-8
Content-Type: text/plain; charset=UTF-8
utf-8
字符組成,那么我會收到一個類似此Subject: =?us-ascii?Q?=3D=3FUTF-8=3FB=3Fw5HClsORwpfDkcKU=3F=3D?=
的雙編碼Subject: =?us-ascii?Q?=3D=3FUTF-8=3FB=3Fw5HClsORwpfDkcKU=3F=3D?=
。 而不是預期的Subject: =?UTF-8?B?w5HClsORwpfDkcKU?=
例:
$subject = 'іїє';
$body = 'іїє';
$headers = "Content-Type: text/plain; charset=UTF-8\r\n"
. "MIME-Version: 1.0\r\n";
mail('some-address@gmail.com', mb_encode_mimeheader($subject, 'UTF-8', 'B'), $body, $headers);
這是收到的標頭的一部分:
Subject: =?us-ascii?Q?=3D=3FUTF-8=3FB=3Fw5HClsORwpfDkcKU=3F=3D?=
User-Agent: Heirloom mailx 12.5 6/20/10
MIME-Version: 1.0
Content-Type: application/octet-stream
Content-Transfer-Encoding: 8bit
С–С—С”
由於服務器上的MTA已安裝后綴。 作為使用gmail的客戶端
電子郵件是一種非常古老,過時且困難的技術。 對於字符編碼尤其如此。 我建議使用庫,例如PHPMailer 。 如果您堅持從頭開始,那么真正的答案將超出您的問題范圍。 瀏覽器,客戶端等使此問題復雜化。 我無法告訴您問題的原因,但是解決方案是PHPMailer。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.