The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Кодировки в письмах из PHP"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"Кодировки в письмах из PHP"  
Сообщение от TLS (ok) on 06-Мрт-05, 19:50 
Проблема следующая. Есть скрипт рассылки, который (грубо говоря) берет текст, который администратор передает ему из веб-формы, приставляет к нему всякие заголовки и отправляет это всё в mail().

Мне некоторые товарищи жалуются, что письма приходят нечитабельные. Я готов допустить что эти люди не умеют пользоваться установками кодировки в своем мыл-клиенте, но это всё равно "некозяво".
Правильно ли я понимаю что при такой схеме кодировка получается такой же, какая у администратора в браузере стоит? Есть ли специальные SMTP-хедеры, которые можно присобачить, чтобы они явно указывали кодировку? Как в PHP можно перекодировать русский текст из одной кодировки в другую?

Спасибо!

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Кодировки в письмах из PHP"  
Сообщение от markko email on 08-Мрт-05, 08:05 
Укажи в заголовке:

Mime-Version: 1.0
Content-Type: text/plain; charset=Windows-1251
Content-Transfer-Encoding: 8bit

Всё.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Кодировки в письмах из PHP"  
Сообщение от Simps (ok) on 09-Мрт-05, 18:16 
>Укажи в заголовке:
>
>Mime-Version: 1.0
>Content-Type: text/plain; charset=Windows-1251
>Content-Transfer-Encoding: 8bit
>
>Всё.

Я делал так
    function sendMail($subject, $body) {
       $body = convert_cyr_string($body,"w","k");
      $subject = convert_cyr_string($subject,"w","k");
      mail($this->email, $subject, $body,
     "From: your@mail.ru\r\n"
    ."Reply-To: your@mail.ru\r\n"
    ."Content-Type: text/plain; charset=koi8-r\r\n"
    ."Organization: My org\r\n"
    ."X-Mailer: PHP/" . phpversion());
    }

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Кодировки в письмах из PHP"  
Сообщение от TLS (ok) on 09-Мрт-05, 19:37 
>    $body = convert_cyr_string($body,"w","k");
А откуда уверенность что исходная кодировка - win1251? А если вдруг станет koi? Или такая ситуёвина невозможна в принципе?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Кодировки в письмах из PHP"  
Сообщение от Simps (ok) on 10-Мрт-05, 09:27 
>>    $body = convert_cyr_string($body,"w","k");
>А откуда уверенность что исходная кодировка - win1251? А если вдруг станет
>koi? Или такая ситуёвина невозможна в принципе?

Я думаю, нет я даже уверен, что я знаю исходную кодировку =)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Кодировки в письмах из PHP"  
Сообщение от dev email(??) on 10-Мрт-05, 15:06 
>>    $body = convert_cyr_string($body,"w","k");
>А откуда уверенность что исходная кодировка - win1251? А если вдруг станет
>koi? Или такая ситуёвина невозможна в принципе?

Браузер всегда шлет данные в той кодировке, в которой он получил страничку.
Если юзер поменял кодировку вручную, то он сам себе злой буратина.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Кодировки в письмах из PHP"  
Сообщение от tower email(??) on 09-Мрт-05, 21:21 
Есть функция conver_cyr_string, которая переводит из одной кодировки в другую. Из кои в вин-1251 и наоборот и из других тоже.

В заголовках письма есть такой
Content-Type: text/html; charset=windows-1251

где вместо windows-1251 пишеш нужную кодировку.

Тебе перекодировывать не нужно , просто укажи в письмах кодировку, которая стоит на твоем сайте.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Кодировки в письмах из PHP"  
Сообщение от markko email on 10-Мрт-05, 14:37 
>Есть функция conver_cyr_string, которая переводит из одной кодировки в другую. Из кои
>в вин-1251 и наоборот и из других тоже.
>
>В заголовках письма есть такой
>Content-Type: text/html; charset=windows-1251
>
>где вместо windows-1251 пишеш нужную кодировку.
>
>Тебе перекодировывать не нужно , просто укажи в письмах кодировку, которая стоит
>на твоем сайте.

Ключевой фигурой в данной проблеме выступают строки:
Mime-Version: 1.0
Content-Transfer-Encoding: 8bit

Сама кодировка - это второстепенно, и как сказали самовыставляемо.
Content-Type: text/plain; charset=Windows-1251

А вот если не установить предыдущие два пункта, то по пути сообщения другие МТА погут изменить заголовок и ваша кодировка исчезнет по пути следования сообщения.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Кодировки в письмах из PHP"  
Сообщение от Дмирий email on 05-Апр-08, 03:31 
У меня заголовки приходят в непонятной кодировке, хотя сам текст сообщения - нормально.

Тема:      ����� �200804050323
Кому:      "A-�����" {скрыто}
Срочность:      Обычное

код:

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=windows-1251\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "From: ".$_POST["EMAIL"]."\r\n";
mail($to, $subject, $message, $headers);

в чем ошибка?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Кодировки в письмах из PHP"  
Сообщение от dev email(??) on 05-Апр-08, 04:43 
>[оверквотинг удален]
>
>код:
>
>$headers  = "MIME-Version: 1.0\r\n";
>$headers .= "Content-type: text/plain; charset=windows-1251\r\n";
>$headers .= "Content-Transfer-Encoding: 8bit\r\n";
>$headers .= "From: ".$_POST["EMAIL"]."\r\n";
>mail($to, $subject, $message, $headers);
>
>в чем ошибка?

Указанная кодировка распространяется только на тело письма. В хедере не-ASCII символы использовать нельзя.

См. RFC2047 и http://www.opennet.ru/openforum/vsluhforumID4/220.html

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру