Alex
Алекс

Кириллица в функции mail в PHP

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

Якщо вам сподобався чи став у нагоді текст, ви завжди можете віддячити! На каву

Приєднатися до обговорення

5 коментарів

  1. Норм написал спасибо, у кого ошибки, то в первой переменной ($headers.=”From)
    уберите точку перед .= в остальных не трогайте и вместо переменной ($result='<div) поставьте (echo '<div) у кого она не выводиться. понятно что без (скобок пишем)

  2. Простой и локаничный пример. Спасибо

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

*
*
*