2012年3月13日 星期二

解決 PHP 寄信寄件者含中文及主旨亂碼問題

解決 PHP 寄信寄件者含有中文及主旨亂碼問題
因為 Outlook 寄件者只接受印歐語系(不支援中文),
所以得先將中文利用 mb_encode_mimeheader 加密。
if(!extension_loaded('
mbstring')) dl('mbstring.so');

mb_internal_encoding('UTF-8');
$From = mb_encode_mimeheader('含有中文的寄件者名稱', 'UTF-8').'<abc@test.idv>';
$mailTitle = "中文主旨";
$mailTitle = "=?UTF-8?B?" . base64_encode($mailTitle) . "?=";
$mailBody = $_POST['content'];
$toMail = $_POST['email'];

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$headers .= "From: $From\nReply-To: $From\nX-Mailer: PHP/".phpversion();

mail($toMail, $mailTitle, $mailBody, $headers);

沒有留言:

張貼留言