Бывает, когда делаешь простенькую форму обратной связи для сайта и непременно пользуясь функцией mail(), в который раз забываешь, а как же правильно отправить заголовки, чтобы кириллица во всех браузерах и почтовых клиентах отображалась правильно?
Для этого нужно немного. Вот, например, такой кусочек кода:
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$to = '[email protected]';
$subject = 'На сайте заполнена контактная форма ';
$body ="От: $name\n E-Mail: $email\n Текст:\n $message";
$subject = '=?UTF-8?B?'.base64_encode($subject).'?=';
$headers.="From: [email protected]\nReply-To: [email protected]\r\n";
$headers.="Content-type: text/plain; charset=UTF-8\r\n";
$headers.="Content-transfer-encoding: quoted-printable";
if (mail ($to, $subject, $body, $headers)) {
$result='<div class="alert alert-success">Спасибо! Ваше письмо отправлено</div>';
} else {
$result='<div class="alert alert-danger">Что-то не так... Попробуйте позже</div>';
}
Думаю, стоит ещё напомнить, раз в этом кусочке кода упоминается кодировка utf-8, то и файл с кодом должен быть в этой кодировке.
Дякую, чувак! А то я довго з тим мудохався!
Прошу)
Спасибо! Реально помогло!
Норм написал спасибо, у кого ошибки, то в первой переменной ($headers.=”From)
уберите точку перед .= в остальных не трогайте и вместо переменной ($result='<div) поставьте (echo '<div) у кого она не выводиться. понятно что без (скобок пишем)
Простой и локаничный пример. Спасибо