Не попадаем в СПАМ. Часть 1: проверка 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”

Заключение

SPF позволяет ограничить с каких серверов может отправляться почта от имени Вашего домена. При настройке, необходимо быть внимательным что бы не дать “лишним” адресам разрешения. Так же Вы можете воспользоваться конструктором, который поможет сгенерировать SPF запись.

Автор: Сергей Степанов

Поделиться @
Владислав, 25 июня 2015 в 11:06
Спасибо за статью. Есть ситуация.
Для работы с почтой использую Почту для домена Яндекса, а для рассылок - Mailchimp.
Как в таком случае?
Вроде и redirect=_spf.yandex.ru и include:servers.mcsv.net ?all
Как быть?
Алексей, 26 июня 2015 в 12:30
Мне в техподдержке яндекса ответили так (я только буковку "a" добавил от себя))):

v=spf1 a include:servers.mcsv.net include:_spf.yandex.net ~all
Елена, 19 июня 2015 в 18:18
Наконец-то толковое объяснение! Сколько я информации прочитала, нигде доходчиво, ясно, четко ничего не написано. А особенно - полная жуть со стороны всяческих "гуру" e-mail-маркетинга, которые ни черта не смыслят в программировании!!!! Огромная благодарность!!!!
shulai, 17 июня 2015 в 18:42
Здравствуйте! Я пользуюсь VDS сервером для рассылки писем. Возникло вопрос, у майл ру, яндекс и гугол у каждого свои spf - записи, а как их добавит все вместе с одной записью, такое возможно? А то я попробовала добавит каждый по отдельности. При диагностировании через сайт https://dmarcian.com/spf-survey/ SPF-записей показывает что 2 или более, проверку не проходит.
Oleksiy, 24 июня 2015 в 12:42
https://tools.ietf.org/html/rfc7208

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. ....."

Дмитрий, 3 июня 2018 в 09:28
Ошибка в коде конструктора. При введении адреса он выдает
v=spf1 4.10.13.10 ~all
А должен (подчеркиваю красным)
v=spf1 ip4:Х.Х.Х.Х
Префикс ip4: в коде потеряли, поправьте пожалуйста.
Арсений , 19 июня 2018 в 12:37
Подскажите пожалуйста, письма которые отправляю со своего сервера на gmail идут в спам, хотя DKIM SPF DMARC в заголовках письма выдает по всем записям PASS, совершенно не пойму где может быть ошибка?
Виталик, 13 июня 2019 в 16:10
У меня на новых доменах письма в Gmail в спам попадают.
Даже если spf dkim dmarc - pass.
А в отчёте dmarc пишет ,что spf - fail.
Что ему не хватает? Без 100 грамм не разобраться!
K85FNKOYY www.yandex.ru, 9 июня 2020 в 19:43
K85FNKOYY www.yandex.ru
K4FOQ417FPWO www.yandex.ru, 27 июня 2021 в 13:26
K4FOQ417FPWO www.yandex.ru
ayoub, 27 июня 2021 в 13:23
hjd dndjhdp bls
Alexey, 20 июня 2021 в 15:44
Скажите плизз, после спф записи, если я это делаю через файл текстовый, нужно где то что обновлять или рестартить??