想象一下:
$from = "Testäöå <example@example.com>";
....
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject,
'MIME-Version' => "1.0",
'Content-type' => "text/html; charset=iso-8859-1");
如果$ from变量只是"Test <example@example.com>"
,那么脚本运行正常。
答案 0 :(得分:1)
由于您直接指定标题,因此需要手动转义它们。标题中只允许使用ASCII字符,因此您需要将它们转义。
你可以这样做,即用
'=?UTF-8?B?'.base64_encode($from).'?='
或者,您可以使用http://pear.php.net/manual/en/package.mail.mail.send.php注释中所述的多字节字符串函数:
$encodedFrom = mb_encode_mimeheader($from, 'UTF-8', 'Q');