Здравствуйте!
Написал простенький скрипт обратной формы на php + jquary.
Сам скрипт с функцией mail()
echo "Ваше Ф.И.О. :".$name."";
echo "Ваш контактный телефон :".$email."";
echo "Время и дата :".$sug."";
echo "Ваш запрос отправлен. Спасибо вам за ваш интерес к нашей компании!";
$from = 'test@mail.ru';
$emailTo = 'test@mail.ru';
$subject = '=?UTF-8?B?'.base64_encode('Запрос прайс листа с сайта: test').'?=';
$headers = 'Content-type: text/plain; charset=utf-8';
$headers .= "From: ". $from ." <". $from .">
";
$body = "Ф.И.О. контактного лица: $name
Контактный телефон клиента: $email
Время и дата удобное для звонка ему:
$sug";
$headers = 'C сайта: test <'.$emailTo.'>' . "
" . 'Отправитель: ' . $name . "
" ;
$headers .= "Date: ". date('D, d M Y h:i:s O') ."
";
mail($emailTo, $subject, $body, $headers, '-f'. $from );
$emailSent = true;
}?>
В данном скрипте проблему с заголовком письма решил, если письмо отправляю на локальном сервере в denwer и читаю их в Thunderbird то с кодировкой проблем нет, как только выложил его на виртуальный сервак и отправил письмо на почтовый ящик размещенный на mail.ru, появляются крокозябры:
C я│п╟п╧я┌п╟: test
п╓.п≤.п·. п╨п╬п╫я┌п╟п╨я┌п╫п╬пЁп╬ п╩п╦я├п╟: я┌п╣я│я┌п╦я─п╬п╡п╟п╫п╦п╣
п п╬п╫я┌п╟п╨я┌п╫я▀п╧ я┌п╣п╩п╣я└п╬п╫ п╨п╩п╦п╣п╫я┌п╟: я┌п╣я│я┌п╦я─п╬п╡п╟п╫п╦п╣
п▓я─п╣п╪я▐ п╦ п╢п╟я┌п╟ я┐п╢п╬п╠п╫п╬п╣ п╢п╩я▐ п╥п╡п╬п╫п╨п╟ п╣п╪я┐:
я┌п╣я│я┌п╦я─п╬п╡п╟п╫п╦п╣
Тема письма отображается верно.
Прошу помощи разобраться в данной проблеме.
Ответ
Ну как бы все пользуются для почты http://phpmailer.worxware.com/. Но в вашем случаи есть прям в документации ответ http://php.net/manual/en/function.mail.php :
function mail_utf8($to, $subject = '(No subject)', $message = '', $from) {
$header = 'MIME-Version: 1.0' . "
" . 'Content-type: text/plain; charset=UTF-8'
. "
" . 'From: Yourname <' . $from . ">
";
mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header);
}
Комментариев нет:
Отправить комментарий