Страницы

Поиск по вопросам

суббота, 8 февраля 2020 г.

Функция mail(): трудности с кодировкой

#email #php #кириллица #utf_8 #кодировка


Всем доброго времени!  
Когда все было в windows-1251, все работало нормально. Иероглифы в письме появились,
после того как перевел все на utf-8.
Коды скриптов в utf-8, в html head meta http-equiv="Content-Type" content="text/html;
charset=utf-8".
Похожие темы гуглил, ничего пока не помогло. Использовать в поле From латиницу не
предлагать, т.к. нужна кириллица.
Когда письмо приходит на почту, то в общем списке писем, в поле от кого, кириллица
отображается корректно. Когда заходишь в само письмо, тот же текст в поле от кого,
корректно отображаются только латинские буквы и e-mail отправителя, кириллица выводится
иероглифами. Жирным выделено то, что смущает, в общем списке все нормально, значит,
я отправляю все правильно, но почему в самом письме все меняется?
Также пробовал варианты:

'subject' = '=?koi8-r?B?'.base64_encode(convert_cyr_string("Новое сообщение", "w","k")).'?=';  
'subject' = '=?utf-8?B?'.base64_encode(convert_cyr_string("Новое сообщение", "w","k")).'?=';  
'subject' = '=?koi8-r?B?'.base64_encode("Новое сообщение").'?=';  
'subject' = '=?utf-8?B?'.base64_encode("Новое сообщение").'?=';

На From никак не повлияло.
Код php:

 "tomail@site.ru",  
'subject' => "Новое сообщение",  
'message' => "

Текст сообщения

", 'headers' => "MIME-Version: 1.0\r\n"."Content-type: text/html; charset=utf-8\r\n"."From: Эта кириллица выводится иероглифами \r\n"); mail($mail['to'], $mail['subject'], $mail['message'], $mail['headers']);


Ответы

Ответ 1



Спасибо Stuf, последний комментарий натолкнул на ответ. Подстановки в subject никак не помогли, а вот конвертация только header все решила. Решил следующим образом: "tomail@site.ru", 'subject' => "Новое сообщение", 'message' => "

Текст сообщения

", 'headers' => "MIME-Version: 1.0\r\n"."Content-type: text/html; charset=utf-8\r\n"."From: Эта кириллица выводится иероглифами \r\n"); mail($mail['to'], $mail['subject'], $mail['message'], iconv ('utf-8', 'windows-1251', $mail['headers']));

Комментариев нет:

Отправить комментарий