常遇到的問題是,「郵件標題」或「寄件者」是亂碼的問題
主要的原因在於,電子郵件標準格式中,
表頭的部分不允許使用雙位元的文字,
所以,使用mb_encode_mimeheader()函式
將雙位元文字編碼為單位元字串。

範例:
mb_internal_encoding('UTF-8');
$subject=mb_encode_mimeheader('訂單', 'UTF-8');
$message= $html; //HTML格式的信件內容
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .=
"From: ".mb_encode_mimeheader('訂購網', 'UTF-8')." <xxxx@xxxx.xxx.xx>\r\n";
mail($to,$subject,$message,$headers);

因mb_encode_mimeheader()預設的字串編碼為西方ISO-8859-1,
而此範例使用UTF-8編碼中文字,
故程式中需使用mb_internal_encoding()將內部預設編碼改為UTF-8

參考資料:
最新PHP+MySQL+AJAX網頁程式設計(旗標出版)

arrow
arrow
    全站熱搜

    jck11 發表在 痞客邦 留言(5) 人氣()