Forum Webscript.Ru
Программирование => PHP => Тема начата: maximus от 01 Августа 2002, 16:57:03
-
Не могу решить проблему с кодировкой!!!!
Посылаю письмо из скрипта на php (mail), то если пишу
mail($mailto,$subject,$text,"From: $sendername <$sender>\\nContent-Type: text/plain; charset=win1251");
то bat открывает,а outlook нет,
если всё перевожу в кои то outlook открывает, а bat нет.
Нельзя ли как нибудь составить письмо так, чтобы оно одинаково открывалось в обеих программах
-
Самый надёжный способ это строку:
Content-Type: text/plain; charset=koi8-r
Прописать дважды, первым заголовком и последним, кой потому что это стандартная кодировка кирилицы для почтовых клиентов, сделаешь так и твои письма будут читаться везде.
З.Ы. А ты $subject и $text переводишь в ту кодировку в которой отправляешь (convert_cyr_string)? Если нет то проблема в этом.
-
convert_cyr_string(string,\'w\',\'k\'); спасет тебя от запоя.
-
З.Ы. А ты $subject и $text переводишь в ту кодировку в которой отправляешь (convert_cyr_string)? Если нет то проблема в этом.
subject не просто перекодировать нужно, его нужно переводить в вид типа:
=?koi8-r?B?23ba67ddea789?=
=?<кодировка>?<представление>?<кодированый текст>?=
представление:
B - base64
Q - quoted-printable
-
Макс
Это точно необходимо? Делал как-то скрипт мыльный с кодировками, вроде и так работало...
-
Это точно необходимо?
Это по стандарту.
А то что и так работало, так это ИМХО достижения почтовых клиентов.
-
Это по стандарту.
Значит доделаем свой скрипт до стандарта...
представление:
B - base64
Q - quoted-printable
А для простого текста прописывать Q?
-
А для простого текста прописывать Q?
Что значит простой текст?
Если в сабже простой текст укзазать то только латинские символы (+ еще некоторые) и тогда не нужен весь этот формат который я выше указал, просто пиши сабж текстом. Если же текст в сабже должен иметь к примеру koi8-r - символы, то нужно использовать то что я написал.
Этот идентификатор (B или Q) - он относится только к сабжу и не имеет никакого отношения к тексту письма