Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: mail() и рус. кодировка
 
 автор: sd607   (13.12.2006 в 22:59)   письмо автору
 
 

Есть вот такой не хитрый код:


<?php
$headers  
'MIME-Version: 1.0' "\n";
$headers .= 'Content-type: text/html; charset=windows-1251' "\n";
$headers .= 'From:support@somesite.com'."\n";
    
mail($email$subject$message$headers);
?>


Где $message страничка <html><body>Русский текст</body></html>

Некоторые почтовики получают кракозябли. В других все хорошо. Подскажите плиз что надо добавить, чтобы все были счастливы :)

   
 
 автор: cheops   (14.12.2006 в 00:44)   письмо автору
 
   для: sd607   (13.12.2006 в 22:59)
 

Текст в $message в какой кодировке?

   
 
 автор: sd607   (14.12.2006 в 01:14)   письмо автору
 
   для: cheops   (14.12.2006 в 00:44)
 

Сейчас в 1251. Посоветовали указывать для таких случаев KOI8r и текст соответственно делать в этой кодировке. Не знаю насколько это хорошо. еще не пробовал.

   
 
 автор: tuder   (14.12.2006 в 09:01)   письмо автору
 
   для: sd607   (13.12.2006 в 22:59)
 

> Подскажите плиз что надо добавить, чтобы все были счастливы :)

Указывать кодировку не только для заголовка, но и для всего письма.

<?php
$mailcode = "Content-Type: text/html; charset=Windows-1251\n";
$mailfrom="support@somesite.com";
$mailserv = $mailcode."From: ".$mailfrom."\nContent-Type: text/plain; charset=windows-1251\n";

$sucess = mail($email, $subject, $message, $mailserv);
?>

А может указывать кодировку в самом html-коде письма.
> Где $message страничка <html><body>Русский текст</body></html>


<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head><body>Русский текст</body></html>

   
 
 автор: ddhvvn   (14.12.2006 в 09:44)   письмо автору
 
   для: tuder   (14.12.2006 в 09:01)
 

Хм. Я тоже сталкивался со случаями, когда в одном почтовике заголовок отображется в KOI8-R, а в другом - cp1251. Но помогало то, что посоветовал Вам выше tuder.

   
 
 автор: Trianon   (14.12.2006 в 10:21)   письмо автору
 
   для: tuder   (14.12.2006 в 09:01)
 

> $mailcode = "Content-Type: text/html; charset=Windows-1251\n";
> $mailfrom="support@somesite.com";
> $mailserv = $mailcode."From: ".$mailfrom."\nContent-Type: text/plain; charset=windows-1251\n";

Что-то у Вас тут легкий перебор с полями, задающими тип контента. Либо - либо.

   
 
 автор: tuder   (14.12.2006 в 13:07)   письмо автору
 
   для: Trianon   (14.12.2006 в 10:21)
 

Мда. Это, видимо, остатки эксперимета по заданию кодировки для Subject. Ибо он также бывает показывается в другой кодировке, чем письмо...
А может для кодировки имени отправителя в поле From.
Так как text/plain - действует только на тело письма.


Subject: MySite.Ru: Гостевая книга (14-12-2006 13:00:36)
Content-Type: text/html; charset=Windows-1251
From: Гостевая книга<GuestBook@mysyte.ru>
Content-Type: text/plain; charset=windows-1251
X-Antivirus-Checked: Yes


В гостевой книге сайта новое сообщение:

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования