@EVG82

Как настроить передачу From?

Доброго!
Письма летят в спам в gmail.com
Провайдер пишет что не корректно передается заголовок From
вот дословно:
2020-12-14T15:16:01.469562+03:00 srv172-h-st postfix/qmgr[9010]: 899E25C007D: from=<intvideo@srv172-h-st.jino.ru>, size=15785, nrcpt=1 (queue active)
2020-12-14T15:16:01.525530+03:00 srv172-h-st postfix/error[27100]: 899E25C007D: to=<greenway.jb@gmail.com>, relay=none, delay=1158, delays=1158/0/0/0.06, dsn=4.4.2, status=deferred (delivery temporarily suspended: lost connection with gmail-smtp-in.l.google.com[2a00:1450:4010:c08::1a] while sending DATA command)
2020-12-14T15:36:01.420762+03:00 srv172-h-st postfix/qmgr[9010]: 899E25C007D: from=<intvideo@srv172-h-st.jino.ru>, size=15785, nrcpt=1 (queue active)
2020-12-14T15:36:04.526858+03:00 srv172-h-st postfix/smtp[26952]: 899E25C007D: to=<greenway.jb@gmail.com>, relay=gmail-smtp-in.l.google.com[2a00:1450:4010:c08::1b]:25, delay=2361, delays=2358/0.01/0.13/3, dsn=2.0.0, status=sent (250 2.0.0 OK 1607949364 y199si7553398lff.558 - gsmtp)
2020-12-14T15:36:04.527789+03:00 srv172-h-st postfix/qmgr[9010]: 899E25C007D: removed
У Вас скрипт не передает from корректно, поэтому подставляется серверное значение from=<intvideo@srv172-h-st.jino.ru>
Нужно сделать корректно from.


А вот сам скрипт

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (isset($_POST['name'])) {$name = $_POST['name'];}
    if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    if (isset($_POST['email'])) {$email = $_POST['email'];}
    if (isset($_POST['city'])) {$city = $_POST['city'];}
    if (isset($_POST['date'])) {$date = $_POST['date'];}
    if (isset($_POST['formData'])) {$formData = $_POST['formData'];}

    $to = "registration@greenteams.ru"; /*Укажите адрес, га который должно приходить письмо*/
    $sendfrom   = "no-reply_ID_10094127@greenteams.ru"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/
    $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=utf-8 \r\n";
    $subject = "Новая заявка с лендинга";
    $message = "$formData<br> <b>Имя пославшего:</b> $name <br><b>Телефон:</b> $phone <br><b>E-mail:</b> $email<br><b>Город:</b> $city <br><b>Дата рождения:</b> $date";
    $send = mail ($to, $subject, $message, $headers);
    if ($send == 'true')
    {
    echo '<center><p class="success">Спасибо за отправку вашего сообщения!</p></center>';
    }
    else 
    {
    echo '<center><p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p></center>';
    }
} else {
    http_response_code(403);
    echo "Попробуйте еще раз";
}
?>


не могу понять что прописать?
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 2
@galaxy
Вряд ли проблема во From, скорее всего, как обычно в настройке почтового сервера, SPF/DMARC.

И вот так делать с функцией mail() вообще говоря нельзя:
$subject = "Новая заявка с лендинга";
...
$send = mail ($to, $subject, $message, $headers);
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы