В какой-то "прекрасный" момент начали поступать жалобы, что письма с сайта не всем приходят. При более детальном рассмотрении, оказалось, что не приходят только на ящики @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);
}