#email #php #sendmail
Здравствуйте! Написал простенький скрипт обратной формы на php + jquary. Сам скрипт с функцией mail(): "; 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 ."> \r\n"; $body = "Ф.И.О. контактного лица: $name \n\nКонтактный телефон клиента: $email \n\nВремя и дата удобное для звонка ему:\n $sug"; $headers = 'C сайта: test <'.$emailTo.'>' . "\r\n" . 'Отправитель: ' . $name . "\r\n" ; $headers .= "Date: ". date('D, d M Y h:i:s O') ."\r\n"; mail($emailTo, $subject, $body, $headers, '-f'. $from ); $emailSent = true; }?> В данном скрипте проблему с заголовком письма решил, если письмо отправляю на локальном сервере в denwer и читаю их в Thunderbird то с кодировкой проблем нет, как только выложил его на виртуальный сервак и отправил письмо на почтовый ящик размещенный на mail.ru, появляются крокозябры: C я│п╟п╧я┌п╟: testп·я┌п©я─п╟п╡п╦я┌п╣п╩я▄: я┌п╣я│я┌п╦я─п╬п╡п╟п╫п╦п╣ Date: Mon, 24 Jun 2013 11:03:16 +0400 п╓.п≤.п·. п╨п╬п╫я┌п╟п╨я┌п╫п╬пЁп╬ п╩п╦я├п╟: я┌п╣я│я┌п╦я─п╬п╡п╟п╫п╦п╣ п п╬п╫я┌п╟п╨я┌п╫я▀п╧ я┌п╣п╩п╣я└п╬п╫ п╨п╩п╦п╣п╫я┌п╟: я┌п╣я│я┌п╦я─п╬п╡п╟п╫п╦п╣ п▓я─п╣п╪я▐ п╦ п╢п╟я┌п╟ я┐п╢п╬п╠п╫п╬п╣ п╢п╩я▐ п╥п╡п╬п╫п╨п╟ п╣п╪я┐: я┌п╣я│я┌п╦я─п╬п╡п╟п╫п╦п╣ Тема письма отображается верно. Прошу помощи разобраться в данной проблеме.
Ответы
Ответ 1
Ну как бы все пользуются для почты 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' . "\n" . 'Content-type: text/plain; charset=UTF-8' . "\n" . 'From: Yourname <' . $from . ">\n"; mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header); }Ответ 2
У меня тоже тело письма отправляло кракозябрами. Декодером лебедева проверил - оказалось что кракозябры в кодировке KOI8-R. Помог код преобразования KOI8-R в UTF-8. Сама страничка у меня в кодировке UTF-8. $mes = "Номер телефона: $tele"; /*Тело письма, которое неправильно отображалось*/ $in_charset = "KOI8-R"; $out_charset = "UTF-8"; iconv ($in_charset, $out_charset, $mes); /*Преобразуем*/ $send = mail($address, $sub, $mes,"Content-type:text/plain; charset=UTF-8" );
Комментариев нет:
Отправить комментарий