@eellazy

В чем может быть проблема кодировки?

Всем привет!
В чем может быть проблема кодировки в теле письма?
Страница с формой имеет 1251
Сам обработчик имеет 1251

Но письма приходят в таком виде
cf71ba21e0a240a582d393246fc28a55.png
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (isset($_POST['name'])) {$name = $_POST['name'];}
    if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    if (isset($_POST['istochnik'])) {$istochnik = $_POST['istochnik'];}
    if (isset($_POST['problem_water'])) {$problem_water = $_POST['problem_water'];}
    if (isset($_POST['object'])) {$object = $_POST['object'];}
    if (isset($_POST['email'])) {$email = $_POST['email'];}
    if (isset($_POST['region'])) {$region = $_POST['region'];}
 
    $to = "emiv@gmail.com"; /*Укажите адрес, га который должно приходить письмо*/
    $sendfrom   = "emiv@gmail.com"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/
    $headers  = "From: " . strip_tags($sendfrom) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html;charset=windows-1251 \r\n";
    $subject = "Заявка с сайта Агрико-Аква";
    $message = "$formData
    <b>Имя :</b> $name<br />
    <b>Телефон:</b> $phone<br />
    <b>Источник водоснабжения:</b> $istochnik<br />
    <b>Проблемы с водой:</b> $problem_water<br />
    <b>Объект:</b> $object<br />
    <b>Регион:</b> $region<br />";


    if (isset($_POST['email'])) {
    $email = $_POST['email'];
    $message .= "<b>Емейл :</b> $email<br />";
    }
    if (isset($_POST['comment'])) {
    $comment = $_POST['comment'];
    $message .= "<b>Сообщение :</b> $comment<br />";
    }
    
    $send = mail ($to, $subject, $message, $headers);
    if ($send == 'true')
    {
    echo '<center>
 
Спасибо за заказ! Наш менеджер скоро свяжется с вами.
 
</center>';
    }
    else
    {
    echo '<center>
 
<b>Ошибка. Сообщение не отправлено!</b>
 
</center>';
    }
} else {
    http_response_code(403);
    echo "Попробуйте еще раз";
}?>
  • Вопрос задан
  • 114 просмотров
Решения вопроса 1
Страница у вас в Windows-1251, а POST пришел в UTF-8. Используйте iconv(), а еще лучше переходите на UTF-8.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
EgoRusMarch
@EgoRusMarch
C++ Developer
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы