Бывает, когда делаешь простенькую форму обратной связи для сайта и непременно пользуясь функцией 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) у кого она не выводиться. понятно что без (скобок пишем)
Простой и локаничный пример. Спасибо