Notes

Что делать когда письма попадают в спам?

В рунете более половины отправляемых писем являются спамом, в связи с этим почтовые стараются как можно лучше их фильтровать. 

чтобы письмо не попадало в спам нужно проверить настройки домена SPF, DKIM, DMARK и значение php.ini "sendmail_path".

1. sendmail_path должен иметь значение реальной почты сайта с которого отправляется письмо. Пример настройки php.ini с использованием разделов HOST и PATH(для многосайтовости):

[HOST=mysite.ru]
sendmail_path = "/usr/sbin/sendmail -t -i -f info@mysite.ru "

[PATH=//var/www/u0382107/data/www/mysite.ru]
sendmail_path = "/usr/sbin/sendmail -t -i -f info@mysite.ru "

2. Добавить SPF-Запись в настройки DNS домена:
mysite.ru TXT v=spf1 ip4:37.140.192.21 a mx include:_spf.hosting.reg.ru include:_spf.yandex.net ~all Текущие SPF записи нужно будет удалить.

3. DMARC:

добавьте TXT запись на ваш домен _dmarc.mysite.ru со следующим значением:

v=DMARC1; p=none
4. DKIM:

Для создания этой записи нужно сначала сгенерировать RSA-ключ. Описано тут: https://habr.com/ru/post/322616/
(но если вы не собираетесь заниматься спамом и уже сделали первые 2 пункта тогда это не обязательно)

Указанные выше примеры кода предназначены для хостинга REG.ru и сервиса яндекс ПДД. В вашем случае настройки могут отличаться.

Если у вас битрикс то можно дополнительно включить логирование отправки писем вместе со служебными заголовками:

в init.php добавить функцию:

function custom_mail($to,$subject,$body,$headers) { 
$f=fopen($_SERVER["DOCUMENT_ROOT"]."/maillog.txt", "a+"); 

fwrite($f, print_r(array('TO' =--> $to, 'SUBJECT' => $subject, 'BODY' => $body, 'HEADERS' => $headers),1)." ======== "); 
fclose($f); 
return mail($to,$subject,$body,$headers); 
} 
Афоризм дня:
Красиво сказанная речь о прекрасных деяниях остается в памяти слушающих к чести и славе тех, кто эти дела совершил. (639)

Leave a reply

Яндекс.Метрика