субота, 9 січня 2010 р.

Учимся отправлять почту с русским названием

Возможно вы часто видите письма в заголовке какие то «каказябры»? И даже может сами сталкивались с тем что письма отправленные через php mail(), имеют в заголовке неверную кодировку или некоторые почтовые сервисы не могут отобразить ее в нужной кодировке.

Простым способом избавления от головной боли является шифрация заголовка почты. Вот очень маленький но удобный, рабочий пример отправки почты с зашифрованым в base64_encode заголовке. Как вы уже заметили я отправляю письмо использую кодировку utf-8

$headers = "From: {$_POST['email']}\r\n" .
"X-Mailer: PHP/" . phpversion() . "\r\n " .
"MIME-Version: 1.0 \r\n " .
"Content-Type: text/html; charset=utf-8\r\n " .
"Content-Transfer-Encoding: 8bit\r\n\r\n ";
$subject = 'Форма обратной связи, вопрос с сайта ' . $_SERVER['SERVER_NAME'];
$subject = "=?utf-8?B?".base64_encode($subject)."?=";
$send = mail($row['email'], $subject, $text, $headers);
if(!$send) echo 'Почта будет отправлена позже'; else {echo 'Успешно';}

Немає коментарів:

Дописати коментар

HyperComments for Blogger

comments powered by HyperComments