Задать вопрос
@Yusaki

Gmail.com не принимает письма от функции mail() в php скрипте из-за $header, как настроить?

есть php скрипт который отправляет письма, при чем для почтовиков типа mail.ru или yandex.ru работает корректно, то есть письма приходят, но gmail.com на отрез отказывается их принимать (нет даже в спаме), скорее всего дело в настройке $headers, помогите настроить так что бы и gmail.com мог получать письма. вот код:
<?php
  header('Content-Type: text/html; charset=utf-8');
  /* Проверка на заполнение полей */
  if (isset($_POST['phone'])) {
    $name     = $_POST['name'];
    $tel      = $_POST['phone'];
    $email    = $_POST['email'];
    $referer  = $_POST['referer'];
    $title    = $_POST['title'];
   
    /* Убираем все лишние пробелы и переносы строк  и преобразуем все теги html в символы*/
    $name     = htmlspecialchars(trim($name));
    $tel      = htmlspecialchars(trim($tel));
    $email    = htmlspecialchars(trim($email));
 
    /* Формируем сообщение */
    $mail = "***@***.ru";
    $subject = $title; //тема письма
    $message = "<html><head></head><body>";
    $message .= "***";             
    $message .= "</body></html>";  
        
    $mess  = "<html><head></head><body>";
    $mess .= "Благодарим Вас за оставленную заявку!<br>";
    $mess .= "если у Вас возникли вопросы напишите нам по адресу: $mail";
    $mess .= "</table></body></html>"; 
    
    function adopt($text) {
    	return '=?UTF-8?B?'.base64_encode($text).'?=';
    }
    
    $headers = "MIME-Version: 1.0".PHP_EOL."Content-Type: text/html; charset=utf-8".PHP_EOL.'From: '.adopt('***').' <no-reply@***.ru>'.PHP_EOL;
 
    /* Отправка */
    $sendmail = mail ($mail,$subject,$message,$headers);
    $sendmail_2 = mail ($email,$subject,$mess,$headers);
    echo $title;
  }
 
?>

ps: не сильно разбираюсь в этой теме, заранее спасибо =)
  • Вопрос задан
  • 2060 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@Yusaki Автор вопроса
вопрос решился добавлением в переменную $headers полей "Content-Transfer-Encoding: utf-8" для корректного отображения в почтовиках и 'Reply-To:no-reply@****.ru' (обратный адрес, без него не приходило сообщение в gmail.com)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Из явных проблем - отсутствует заголовок Content-Transfer-Encoding: 8bit, он нужен, т.к. в сообщении есть не-ASCII символы и не генерируются Date и Message-ID.
Но скорей всего, проблема комплексная, почитайте
https://habrahabr.ru/company/mailru/blog/239963/
и проверьте все по пунктам, особенно SPF/DKIM, GMail очень подозрительно относится к почте без аутентификации.
Ответ написан
Ваш ответ на вопрос

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

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