如果From标题有斯堪的纳维亚字符,梨邮件将不会发送

时间:2011-05-03 07:30:04

标签: php email pear

想象一下:

$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>",那么脚本运行正常。

1 个答案:

答案 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');