Правильная настройка SPF, чтобы письма не попадали в СПАМ

В настоящее время почтовые сервисы всё больше уделяют внимания системам для борьбы со СПАМом. Но всё чаше сообщения которые ждут от нас наши клиенты попадают в СПАМ. В большинстве случаев это происходит потому что почтовый сервер на который мы отправили почту не может распознать действительно ли почту отправили мы а не кто то посторонний.

Есть несколько способов как это исправить, самый простой это добавление SPF-записи. SPF-запись добавляется к описанию домена и показывает, с каких серверов можно отправлять почту от имени домена.

Для этого нам потребуется:

  1. Доступ к редактированию наших DNS записей.

  2. Знать адрес сервера с которого отправляются сообщения.

Начнём с конца.

Основы SPF

В SPF используется 3 блока:

  1. Версия

  2. Префикс-механизм

  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 группы:

  1. Популярные почтовые сервисы, к которым вы привязали свой домен. Например: Google App, Yandex PDD, Mail.ru для бизнеса.

  2. Хостинг

  3. Собственный почтовый сервер

SPF для популярных сервисов.

На момент написания статьи они выглядят следующим образом.

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”

Как подобрать SPF для собственного почтового сервера или хостинга.

Для начала Вы можете заглянуть в настройки своего почтового клиента и посмотреть какой используется для отправки почты (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”

Written by: