[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Некорректные значения в поле To: заголовка письма
Гость_vlad
Доброго времени суток.

Написал следующий сценарий отправки почты в utf-8 с помощью функции mail:

PHP
$crlf="\r\n";
$fromname="maildaemon";
$frommail="mail@domain.ru";
$to="receiver@mail.ru";
$toname="Пользователь";
$subject="Тема";
$subject rtrim('=?utf-8?B?'.base64_encode($subject), '=').'?=';
$toname rtrim('=?utf-8?B?'.base64_encode($toname), '=').'?=';

$message=base64_encode("Текст письма").$crlf;

$header="From:".$fromname." <".$frommail.">".$crlf;
$header.="To:".$toname." <".$to.">".$crlf;
$header.="Subject:".$subject.$crlf;
$header.="X-Mailer: PHP".$crlf;
$header.="MIME-Version: 1.0".$crlf;
$header.="Content-Type: text/plain; charset=\"utf-8\"".$crlf;
$header.="Content-Transfer-Encoding: base64".$crlf;  


if (!
mail($to ,$subject,$message,$header,$frommail)) echo "mail send error";


Проблема в том, что в приходящем письме поле To: выглядит так:
To: receiver@mail.ru, Пользователь (через запятую)

Тогда как должно выглядеть так:
To: Пользователь <receiver.mail.ru>

Подскажите что нужно изменить в скрипте, чтобы все корректно отображалось.
Заранее спасибо.



Спустя 6 часов, 57 минут, 41 секунда (18.03.2009 - 14:14) FatCat написал(а):
PHP
$to="receiver@mail.ru";
$toname="Пользователь";
Как-то странно...
Тогда уж добавить строку:
PHP
$to=$toname."<".$to.">";

Спустя 2 часа, 2 минуты, 10 секунд (18.03.2009 - 16:16) Guest написал(а):
Это работает, но только если $toname написано латиницей. В случае, если написано по-русски, то функция mail возвращает ошибку.

Кроме того, удалил из заголовка $header поля To: и Subject:, иначе они дублируются в заголовке приходящего письма..
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.