PHPmail $ head中的主题加倍并且编码错误

时间:2013-05-17 15:34:09

标签: utf-8 php subject

我在购买后使用IPN向客户发送邮件。除了一件令人讨厌的小事之外,一切都很顺利。当我测试以我的邮件作为买家购买产品时,我的邮件收件箱中的邮件如下所示:http://snag.gy/grrMy.jpg< - 它本身有双重主题,第一个没有变成UTF-8 - 为什么这样?如果我突然点击该邮件,只有UTF-8编码的主题会像这样显示(如预期):http://snag.gy/k5VyF.jpg

以下是我使用的PHP代码:

$to = filter_var($ipn_post_data[payer_email], FILTER_SANITIZE_EMAIL);
        $date = date('Y-m-d');
        $subject = "Tack för Ert köp! / Thank you for your order!";
        $headerFields = array(
    'Date: ' . date('r', $_SERVER['REQUEST_TIME']),
        "Subject: =?UTF-8?Q?".imap_8bit($subject)."?=",
        "From: {$to}",
    "MIME-Version: 1.0",
    "Content-Type: text/html;charset=utf-8"
        );
 mail($to, $subject, $message,  implode("\r\n", $headerFields));

所以唯一的“问题”实际上就是收件箱中邮件主题加倍,第一个编码错误,看起来很糟糕。有人对此有何看法?

1 个答案:

答案 0 :(得分:1)

您将$subject传递给mail()两次 - 一次在第二个参数中,一次在第四个参数中传递$headerFields

尝试传递null作为第二个参数。