font
@font
В поисках самого лучшего

Как отправить письмо PHP скриптом в UTF-8?

На сайте имеется форма обратной связи, но письма приходят в нечитаемой кодировке. Что добавить, чтобы все-таки все шло в UTF-8?
<?
if (array_key_exists('messageFE', $_POST)) {
  mail ("me@post.com",
        "Пришел вопрос с ".$_SERVER['HTTP_REFERER'],
        "Имя: ".$_POST['nameFE']."\nEmail: ".$_POST['phoneFE']."\nВопрос: ".$_POST['messageFE']);
  echo $_POST['nameFF'];
}
?>
  • Вопрос задан
  • 6428 просмотров
Пригласить эксперта
Ответы на вопрос 4
Кодировка указывается в заголовках (headers), тут есть замечательный пример отправки писем.

например вот:
<?php
function mail_utf8($to, $from_user, $from_email, 
                                             $subject = '(No subject)', $message = '')
   { 
      $from_user = "=?UTF-8?B?".base64_encode($from_user)."?=";
      $subject = "=?UTF-8?B?".base64_encode($subject)."?=";

      $headers = "From: $from_user <$from_email>\r\n". 
               "MIME-Version: 1.0" . "\r\n" . 
               "Content-type: text/html; charset=UTF-8" . "\r\n"; 

     return mail($to, $subject, $message, $headers); 
   }
?>
Ответ написан
Комментировать
@BatteryLow
Лучше всего используйте какую-нибудь библиотеку эту например, и отправка для вас станет быстрым и элементарным делом.
Ответ написан
Комментировать
Проверьте .htaccess AddDefaultCharset UTF-8
И странички тоже должны быть в UTF-8
ну и собственно заголовок письма должен содержать charset=UTF-8
Ответ написан
Комментировать
akubintsev
@akubintsev
Опытный backend разработчик
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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