mail () не отправляет тело сообщения правильно, тема — хорошо

Скрипт берет данные из webform и отправляет их почтовому клиенту и crm. Данные из вебформы в кириллице.
Я не могу понять, почему я получаю $email_subject по мере необходимости, "Заголовок", а также $email_message вместо "Сообщение" — Я получаю либо "СообÑение" или же "=?utf-8?B?0KHQvtC+0LHRidC10L3QuNC1Cgo=?=" в зависимости от метода кодирования.

echo mb_detect_encoding($email_message); показывает, что $ email_message — это utf-8.

$email_to = "[email protected]";
$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);

1

Решение

привет, разрешите отправлять заголовок почты в наборе символов utf-8, добавьте эти строки в свой заголовок

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

также направить вас в Как отправить письмо в формате UTF-8?

1

Другие решения

этот

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

помог. Хотя я пробовал это раньше, похоже, я ошибся, выбрав неуместный ISO. Что меня смутило, так это то, что с почтовыми клиентами, такими как Outlook, Mail или веб-почтой (например, gmail), не было проблем, в отличие от CRM.
Теперь все в порядке.

0

По вопросам рекламы [email protected]