php. mail. кодировка.

Phoenix

Чёрт меня дёрнул настроить красивые оповещения на почту..
проблема: если в заголовке письма есть русские буковки(само письмо в utf8 то очень странно приходят, даже так:
тестим на 1)claws mail 2) gmail 3)mail.ru
Если просто написать в koi
1)ok
2)кракозябли: вопросики в чёрном кружочке (т.е. пытается отобразить как utf)
3) ничего не показывает. Просто выкидывает русские буквы. Если кроме них ничего нет, то буде "без темы".
Если просто написать в utf
1) кракозябли (изображает в koi)
2) ок
3) опять ничего не показывает
Если написать "=?UTF-8?q?".base64_encode($subject). , то во всех трёх показывается
=?UTF-8?B?0LрDQsdCy0LPQtNC10ZHQttC30LjQutCc
а не то, что эта фраза собой символизирует
Ещё пишут, про букву ?B? вместо ?q? и там как-то по-другому шифруют(со знаками но я этого не нашёл.

Ivan826

В заголовке указал кодировку?
Должна присутствовать строка вида
  Content-type: text/html; charset=windows-1251\r\n

В твоём случае utf8

Phoenix

да, это есть.
$subj = "абвгдеё ааа "
$text = "ппппппппппппппффффффффффффффффффф";
    $headers="";
    $headers .='Content-Type: text/plain; charset=UTF-8; delsp=yes; format=flowed'."\r\n";
    $headers = 'From: mm.ru' . "\r\n";
    $headers .='Reply-To: mm.ru' . "\r\n";
    
    mail($to, $subj, $message, $headers)

Ivan826

А где у тебя русские буквы? Код в студию

Phoenix

см. выше

Ivan826

Не поню что такое delsp=yes; format=flowed; и зачем оно нужно. Попробуй похерить
Ещё по-моему там роляет регистр и я толком не помню как пишется utf. Попробуй "utf-8","utf8". Гуглить ломает

Phoenix

ну с названием, я игрался.
удаление тоже ничего не дало

artimon

А почитать стандарт слабо? В часности, что означет буковка Q или B в вопросительных знаках.
"=?UTF-8?B?".base64_encode($subject)."?="

Phoenix

ты не поверишь... искал. не нашёл.

artimon

rfc 2047

Phoenix

спасибо. сейчас разберёмся.

iakobi91

я так пишу - никаких проблем нет:
$headers = "MIME-Version: 1.0\r\nContent-type: text/html; charset=cp1251\r\n";

kruzer25

Ага, и гордо заявить "наша система поддерживает только латиницу+кириллицу, а всё остальное можете засунуть себе в ж..."

iakobi91

ну допустим. И что?

kruzer25

А то, что такой вариант для нормальных людей премлем только в крайнем случае, если по другому уже совсем никак.

dasha69

Попробуй использовать phpmailer - проверено на многих проектах - проблемы были лишь один раз, и то из-за некоторой кривости рук. Если используется imap-сервер, то для php есть соответствующее расширение, IMAP for PHP - там достаточно хорошо все расписано, показаны часто встречающиеся проблемы.
Оставить комментарий
Имя или ник:
Комментарий: