mail()没有正确发送邮件正文,主题 - 确定

时间:2016-02-05 05:24:27

标签: php email webforms character-encoding

脚本从webform获取数据并将其发送到邮件客户端和crm。来自webform的数据是西里尔文的。 我无法理解的是,为什么我会根据需要收到$email_subject"Заголовок"$email_message而不是"Сообщение" - 我得到"СообÑение""=?utf-8?B?0KHQvtC+0LHRidC10L3QuNC1Cgo=?="取决于编码方法。

echo mb_detect_encoding($email_message);显示$ email_message是utf-8。

$email_to = "mail@mail.zu";
$email_subject = "=?UTF-8?B?".base64_encode("Заголовок")."?=";

//... here goes some code for taking data from webform, checking etc.

$email_message = "=?UTF-8?B?".base64_encode("Сообщение")."?=";
//I have also tried $email_message = mb_convert_encoding("Сообщение", "utf-8","AUTO");

$headers = 'От: '.$email_from."\r\n". 
'Ответить: '.$email_from."\r\n" .
mail($email_to, $email_subject, $email_message, $headers);

2 个答案:

答案 0 :(得分:1)

嗨允许邮件标题发送utf-8字符集在标题中添加这些行

$headers = "Content-Type: text/html; charset=UTF-8";

也会在How to send UTF-8 email?

中推荐您

答案 1 :(得分:0)

这个

   iconv ('utf-8', 'ISO-8859-5', $str);

帮助。虽然我之前尝试过,看起来我选择不合适的ISO-是错误的。令我感到困惑的是,对于邮件客户端,如Outlook,邮件或网络邮件(如gmail),没有任何问题,与CRM相反。 现在一切都好。