В настоящее время почтовые сервисы всё больше уделяют внимания системам для борьбы со СПАМом. Но всё чаше сообщения которые ждут от нас наши клиенты попадают в СПАМ. В большинстве случаев это происходит потому что почтовый сервер на который мы отправили почту не может распознать действительно ли почту отправили мы а не кто то посторонний.
Есть несколько способов как это исправить, самый простой это добавление SPF-записи. SPF-запись добавляется к описанию домена и показывает, с каких серверов можно отправлять почту от имени домена.
Для этого нам потребуется:
Доступ к редактированию наших DNS записей.
Знать адрес сервера с которого отправляются сообщения.
Начнём с конца.
В SPF используется 3 блока:
Версия
Префикс-механизм
Модификатор
Версия на данный момент только одна - “v=spf1”.
Префиксы:
"+" Pass - принимать сообщения. Параметр по умолчанию
"-" Fail - не принимать сообщения
"~" SoftFail - отправлять в СПАМ
"?" Neutral - нейтральное отношение, требуется дополнительная проверка.
Основные механизмы:
all - любой сервер
ip4, ip6 - адрес сервера,
a, mx - сервер из DNS записи A или MX соответственно
include - взять данные с другого адреса
Модификаторы:
redirect - использовать данные другого адреса
exp - ссылка на сообщение при отказе принятия сообщения
v=spf1 -all
Игнорировать всю почту с домена.
v=spf1 +a +mx -all
Принимать сообщения с серверов указанных в A и MX записях, сообщения с остальных серверов должны быть отклонены.
v=spf1 +mx ~all
Принимать сообщения с серверов указанных MX записях, сообщения с остальных серверов будут приняты, но отправлены в СПАМ.
v=spf1 redirect:example.com
Забрать все правила с домена example.com.
v=spf1 ip4:example.com/24 -all
Доверять всей почте из адресного пространства example.com класса C (например, есле example.com имеет ip адрес 10.123.41.12, то доверие будет всем 10.123.41.[0-255]). Остальная почта будет проигнорирована.
Условно серверы отправки почты можно разделить на 3 группы:
Популярные почтовые сервисы, к которым вы привязали свой домен. Например: Google App, Yandex PDD, Mail.ru для бизнеса.
Хостинг
Собственный почтовый сервер
На момент написания статьи они выглядят следующим образом.
Google App:
“v=spf1 include:_spf.google.com ~all”
Yandex PDD:
“v=spf1 redirect=_spf.yandex.ru”
Mail.ru:
“v=spf1 redirect=_spf.mail.ru”
Для начала Вы можете заглянуть в настройки своего почтового клиента и посмотреть какой используется для отправки почты (SMTP сервер). Но этот адрес не всегда может соответствовать адресу сервера с которого действительно будет отправлено сообщение.
Самый верный вариант, это просмотреть исходное сообщение полученного письма и найти там информацию о сервере отправителя.
Например:
Received: from gateway08.websitewelcome.com (gateway08.websitewelcome.com. [67.18.36.18])
Из этого сообщения мы можем понять имя сервера “gateway08.websitewelcome.com” и ip адрес 67.18.36.18. IP адрес лучше не использовать, т.к. он может изменяться очень часто. Домен 3-го уровня в этом случае то же лучше не использовать, т.к. из его названия понятно что он не один, и следующее письмо может быть отправлено уже с другого домена. Лучше просто взять “websitewelcome.com”.
Далее проверяем, есть ли у websitewelcome.com SPF запись. В этом нам может помочь утилита dig.
$ dig TXT websitewelcome.com
В ответе найдём:
websitewelcome.com. 19117 IN TXT "v=spf1 a mx ip4:64.5.0.0/16 ip4:67.18.0.0/16 ip4:69.41.0.0/16 ip4:69.56.0.0/16 ip4:69.93.0.0/16 ip4:70.85.0.0/16 ip4:74.52.0.0/16 ip4:174.132.0.0/16 ip4:174.120.0.0/16 ip4:173.192.100.229 ip4:173.192.111.0/24 include:spf.websitewelcome.com"
Данная запись выглядит вполне жизнеспособной, можем просто забрать её:
“v=spf1 redirect=websitewelcome.com”
SPF позволяет ограничить с каких серверов может отправляться почта от имени Вашего домена. При настройке, необходимо быть внимательным что бы не дать “лишним” адресам разрешения. Так же Вы можете воспользоваться конструктором, который поможет сгенерировать SPF запись.
Автор: Сергей Степанов
Поделиться @
Для работы с почтой использую Почту для домена Яндекса, а для рассылок - Mailchimp.
Как в таком случае?
Вроде и redirect=_spf.yandex.ru и include:servers.mcsv.net ?all
Как быть?
v=spf1 a include:servers.mcsv.net include:_spf.yandex.net ~all
Section 3, "SPF Records", the 2nd paragraph :
"The SPF record is expressed as a single string of text found in the
RDATA of a single DNS TXT resource record; multiple SPF records are
not permitted for the same owner name. ....."
v=spf1 4.10.13.10 ~all
А должен (подчеркиваю красным)
v=spf1 ip4:Х.Х.Х.Х
Префикс ip4: в коде потеряли, поправьте пожалуйста.
Даже если spf dkim dmarc - pass.
А в отчёте dmarc пишет ,что spf - fail.
Что ему не хватает? Без 100 грамм не разобраться!