Соберите свою SPF запись
Что на самом деле говорит запись
SPF запись, это одна строка текста, опубликованная на домене как TXT запись. В ней перечислены серверы, которым разрешено слать почту с адресов этого домена, а в конце сказано, что делать со всеми остальными.
- v=spf1
- Помечает строку как SPF запись. TXT запись, которая начинается иначе, к SPF отношения не имеет и игнорируется.
- ip4, ip6
- Отдельный адрес или диапазон, которому разрешено отправлять. Они не стоят ни одного DNS запроса, поэтому это самый дешёвый способ разрешить собственный сервер.
- a, mx
- Адреса самого домена и серверы, указанные в его MX записях. По одному DNS запросу на каждое.
- include
- Передаёт вопрос записи другого домена, и так почтовый сервис сам поддерживает свои адреса отправки в актуальном виде. Минимум один DNS запрос, часто несколько.
- -all, ~all
- Завершающий термин. Всё, что не совпало ни с одним механизмом до него, попадает сюда.
Термины читаются слева направо, и ответ решает первый совпавший, поэтому в записи сначала идут адреса и только потом include.
Как этот генератор SPF записи считает DNS запросы
RFC 7208 разрешает не больше десяти DNS запросов на одну проверку записи, и запросы внутри include считаются в тех же десяти. Одни сервисы публикуют плоскую запись, которая стоит ровно один запрос. Другие включают в неё свои собственные записи, и тогда одна строка в вашей записи тихо съедает половину из десяти.
Поэтому страница не заканчивается на том, что написала строку. Она проходит по только что собранной записи, разворачивает каждый include так же, как это сделает принимающий почтовый сервер, и рядом с каждым значением показывает его стоимость. Число измеряется на месте, а не берётся из таблицы, потому что записи сервисов меняются никого не предупреждая. Если лимит превышен, получатели отвечают permerror, а его большинство трактует как непройденную проверку: такая запись ничего не защищает и одновременно ломает доставку.
Когда счётчик близок к десяти, выход обычно один из двух: убрать сервис, которым больше не пользуются, или заменить один include на диапазоны ip4, которые за ним стоят. Диапазоны при проверке не стоят ничего, но перестают быть верными в тот день, когда сервис их поменяет, поэтому держите их для своих серверов.
Только одна запись, и никогда +all
У домена может быть ровно одна SPF запись. Две, это permerror для любого получателя, даже если каждая строка сама по себе верна, и именно так чаще всего ломают работающую настройку: добавляют новый сервис, кладут его запись рядом со старой, и почта начинает падать вся. Когда добавляется сервис, его include идёт в ту запись, которая уже есть.
Генератор намеренно отказывается от двух вещей. Он не поставит в запись вторую строку v=spf1 и не напишет +all. Запись, заканчивающаяся на +all, разрешает любому серверу в интернете слать почту от имени вашего домена, и это то же самое, что не публиковать ничего, только выглядит намеренно.
Начните с ~all, закончите на -all
С -all вы заявляете, что другие серверы не авторизованы, и получатель вправе отказать письму сразу. С ~all письмо принимается и помечается как подозрительное, что обычно означает папку со спамом.
Работающий порядок такой: опубликовать запись с известными отправителями, неделю или две посмотреть, что реально не проходит, и после этого поменять последний термин на -all. Настоящую почту теряют те, кто переходит на -all до того, как кто-нибудь проверил биллинг, сервис рассылок и форму обратной связи на сайте. Именно эти три забывают чаще всего.
Не используйте ?all. Он говорит, что у записи нет мнения, а это и так то, что получатель предполагает при отсутствии записи.
После публикации
Добавьте запись в зону DNS домена как TXT запись на имя @, то есть на сам домен, и дайте резолверам столько времени, сколько указано в TTL.
- Проверьте опубликованную запись и посмотрите, что читает получатель, со всей развёрнутой цепочкой include.
- Соберите DKIM запись. SPF перестаёт совпадать, как только письмо переслали дальше, а DKIM это переживает.
- Проверьте политику DMARC. Без неё на два предыдущих результата никто не опирается и отчёты не приходят.
- Посмотрите MX записи, если не уверены, какой сервис вообще принимает почту для домена.