|
|
|
| Есть проблема с кодировкой при отправке почты с вашего форума.
Если при регистрации указать имя на русском языке, то при получении письма с этого адреса и открытии письма Outlook 6, имя в письме не читабельно.
Я обнаружил это когда столкнулся сам с аналогичной проблемой и искал ответ в этом форуме. Может плохо искал, но не нашел ничего толкового. А потом обнаружил туже проблему и у вас. Порывшись немного в инете и поэкспериментировав я нашел все же решение и на всякий случай хочу им поделиться, и с разработчиками форума, и со всеми интересующимися темой отправки мейла с помощью функции mail(); в кодировке koi8-r, с правильным отображением всех параметров.
<?php
//В качестве аргументов этой функции мы передаем параметры:
//$to — кому
//$subj — тема сообщения
//$body — само сообщение
//$from — от кого, например "Robot<robot@mail.ru>"
function mailer($to, $subj, $body, $from)
{
$to = convert_cyr_string($to, "w", "k");
$subj = convert_cyr_string($subj, "w", "k");
$body = convert_cyr_string($body, "w", "k");
$from = "From: ".$from."\nContent-Type: text/plain; charset=\"koi8-r\"\nContent-Transfer-Encoding: 8bit";
$from = convert_cyr_string($from, "w", "k");
if(mail($to, $subj, $body, $from))
{
echo("Письмо успешно отправлено");
}
else
{
echo("К сожалению, письмо не отправлено");
}
}
//-----------------------------------------------------------------------------------------------------
$to = "his_mail@mail.ru"; // Адрес получателя
$subj = "Вася-Vasya(Subject: Пробное письмо)"; // Тема письма
$body = "Текст письма бла-бла-бла. WWWW GGGGG FFFFFF ZZZZZZZ";
$name = "Вася-Vasya"; // Доп.информ. Имя(или название) отправителя
$mail = "back_mail@mail.ru"; // Доп.информ. Обратный адрес
$from = $name."<".$mail.">"; // Объединяем
mailer($to, $subj, $body, $from); // Отправляем в функцию для отправки
?>
Надеюсь этот пример многим поможет избежать ошибок и недоразумений.
Вот пару ссылок на другие ресурсы где затрагивается эта тема.
http://www.kurepin.ru/php/utils/
http://www.cherry-design.ru/news/print.php?type=article&id=2
http://www.ru-coding.com/php_4.php
http://netgen.com.ua/forums/topic.php?id=68 | |
|
|
|
|
|
|
|
для: kievigor
(24.12.2005 в 04:28)
| | Посмотрел файл (mail.php), который отправляет письма с этого форума и обнаружил, что строка ($header) не кодируется в KOI8-R, из за чего и происходит неправильное отображение имен зарегистрированных на русском языке, при получении почты. Вставьте перед отправкой почты
$header = convert_cyr_string($header, 'w', 'k');
И все заработает правильно. | |
|
|
|
|
|
|
|
для: kievigor
(24.12.2005 в 04:28)
| | большое спасибо - в ближайшее время поправим. | |
|
|
|