2007年10月9日 星期二

發信亂碼解決

用 PHP mail() 函式寄信後,若出現標題或內容亂碼,可能是收件者的收信軟體無法辨別信件標題或內文的編碼。
可用以下方式解決,以下範例指定編碼為 utf8
ini_set("SMTP", "127.0.0.1");
ini_set("smtp_port","25");

$to = "bb@example.com";//收件人
$subject = '=?utf-8?B?' . base64_encode("信件主題") . '?=';
$body = "信件內容...信件內容...";
$body = chunk_split(base64_encode($body));
$from = '=?utf-8?B?' . base64_encode("寄件人名稱") . '?=' .  '<aa@example.com>';//寄件人
$headers = "From: {$from}\r\n" 
  . "Reply-To: {$from}\r\n"
  . "MIME-Version: 1.0\r\n"
  . "Content-type: text/plain; charset=utf-8\r\n"
  . "Content-Transfer-Encoding: base64\r\n";

mail($to, $subject, $body, $headers);
說明:

沒有留言:

張貼留言