Не приходят письма на @gmail.com, нужно добавить Message-ID

29.09.2022

В какой-то "прекрасный" момент начали поступать жалобы, что письма с сайта не всем приходят. При более детальном рассмотрении, оказалось, что не приходят только на ящики @gmail.com.

В логах по ним было сообщение: Messages missing a valid messageId header are not 550 5.7.1 accepted., оказалось, что с сайта уходят письма без заголовка Message-ID.

Решение для обычного php скрипта:

 
$sFrom = 'from@TEST.ru';
$sTo = 'to@TEST.ru';

$messageId = time() .'-' . md5($sFrom . $sTo) . '@TEST.ru';


if(mail($sTo, $sSubject, $sText, 
"From: info <".$sFrom.">\r\n"
."X-Mailer: PHP/" . phpversion()."\r\n"
."Message-ID: <".$messageId.">\r\n"
."Content-type: text/html; charset=utf-8\r\n"
));	

Решение для Битрикса:

В файл bitrix/php_interface/init.php или local/php_interface/init.php добавляем функцию custom_mail:

 
function custom_mail($to, $subject, $body, $headers) {

    $sFrom = 'from@TEST.ru';

    if (strpos($headers, 'Message-ID') === false) {
        $headers .= 'Message-ID : <' . time() . '-' . md5($sFrom . $to) . '@TEST.ru' . ">\r\n";
    }

    return mail($to, $subject, $body, $headers);
}


Пометки: Для Обычного пхп и для биторкса Messages missing a valid messageId header are not 550 5.7.1 accepted.
Яндекс.Метрика