Что такое SPF-запись?
SPF-запись (Sender Policy Framework, RFC 7208) представляет собой TXT-запись в вашем домене со списком серверов, которым разрешено отправлять почту от его имени. Когда приходит письмо, принимающий сервер запрашивает SPF-запись домена отправителя конверта (Return-Path, а не видимого адреса From) и проверяет, есть ли IP-адрес отправителя в этом списке.
У домена может быть только одна SPF-запись. Если записей, начинающихся с v=spf1, две, каждая проверка SPF завершается ошибкой PermError, поэтому при подключении нового сервиса нужно редактировать существующую запись, а не добавлять ещё одну. С февраля 2024 года Gmail и Yahoo требуют от каждого отправителя SPF или DKIM, а от массовых отправителей SPF, DKIM и DMARC одновременно.

Как создать SPF-запись
Ваш почтовый провайдер, сервисы рассылок и транзакционных писем, служба поддержки, CRM, а также любой сервер или сайт, который отправляет письма с вашего домена. Пропущенный отправитель чаще всего и становится причиной сбоя SPF.
Выберите каждого провайдера выше, добавьте другие домены для include и укажите свои серверы в виде IPv4- или IPv6-адресов. Используйте mx, только если ваши серверы входящей почты также отправляют письма.
Обычно начинают с ~all (soft fail, мягкий отказ). Переходите на -all (fail, отказ), когда будете уверены, что список полный. Следите за счётчиком DNS-запросов: значение не должно превышать 10.
Добавьте её как TXT-запись с хостом @ (или поддоменом, который отправляет почту) вместо существующей записи v=spf1. Затем проверьте результат с помощью проверки SPF.
Advertisement
Синтаксис SPF-записи
SPF-запись представляет собой список элементов, которые читаются слева направо. Результат определяет первый элемент, совпавший с IP-адресом отправителя.
Тег версии. Он должен стоять первым, и именно по нему получатели узнают в TXT-записи SPF.
Разрешает всё, что указано в SPF-записи другого домена, например include:_spf.google.com. Каждый DNS-запрос внутри этой записи тоже расходует ваш лимит.
Разрешают один адрес или диапазон CIDR, например ip4:203.0.113.10 или ip6:2001:db8::/48. DNS-запросов они не расходуют.
Разрешают IP-адреса из A/AAAA-записи домена или его MX-хостов. Удобно, но каждый стоит один запрос, а mx может потребовать внутри ещё до 10 запросов.
Что делать со всеми остальными серверами: soft fail (мягкий отказ), fail (отказ) или neutral (нейтрально). Никогда не публикуйте +all: так кто угодно сможет отправлять почту от имени вашего домена.
redirect= передаёт всю проверку записи другого домена. exists: вместе с макросами используют некоторые крупные отправители. ptr работает медленно, и RFC 7208 предписывает его не публиковать.
~all или -all: soft fail или fail?
-all сообщает получателям, что почта с любого сервера не из списка не проходит SPF, и многие такие письма отклоняют. ~all помечает её как soft fail (мягкий отказ): получатели не должны отклонять письмо только по этой причине, но могут счесть его подозрительным. ?all нейтрален и не даёт никакой защиты.
В инструкциях Google для Workspace используется ~all, а в примере Microsoft для Microsoft 365 -all. Работают оба варианта. Когда вы опубликуете DMARC, судьбу непрошедших писем будет решать политика DMARC (p=quarantine или p=reject), поэтому многие домены оставляют ~all, чтобы не отклонять легитимные пересланные письма, и поручают применение политики DMARC. Если домен вообще не отправляет почту, опубликуйте v=spf1 -all.
Advertisement
Примеры SPF-записей
Скопируйте пример, который ближе всего к вашей настройке, или соберите свою запись в генераторе выше. Каждый пример представляет собой одну TXT-запись в вашем домене.
v=spf1 include:_spf.google.com ~allv=spf1 include:spf.protection.outlook.com -allv=spf1 ip4:203.0.113.10 include:_spf.google.com include:mailgun.org ~allv=spf1 include:zohomail.com ~allv=spf1 mx ip4:198.51.100.0/24 ip6:2001:db8::/48 -allv=spf1 -allЛимит в 10 DNS-запросов
RFC 7208 ограничивает проверку SPF 10 DNS-запросами. Каждый include, a, mx, ptr, exists и redirect стоит один запрос, как и каждый такой механизм внутри включённых записей. ip4, ip6 и all запросов не расходуют. Проверка, которой нужен 11-й запрос, останавливается с ошибкой PermError, а для DMARC это считается сбоем SPF. Кроме того, получателям следует допускать не более 2 пустых запросов (void lookups: имена, которые не существуют или не возвращают записей).
Провайдеры обходятся по-разному. Мы посчитали каждый include 5 октября 2026 года с учётом вложенных запросов:
_spf.google.com и spf.protection.outlook.com перечисляют свои диапазоны IP напрямую. Amazon SES, Brevo, Mailjet, Zendesk и Fastmail тоже стоят 1 запрос.
Каждый ссылается ещё на одну собственную запись.
Почтовые ящики от хостинга часто связывают в цепочку несколько include.
Один из них плюс несколько других сервисов могут исчерпать весь лимит.
Advertisement
Как исправить SPF-запись со слишком большим числом запросов
Удалите сервисы, которыми больше не пользуетесь. Обычно виноваты старые инструменты рассылок и пробные аккаунты.
Замените `a` и `mx` на `ip4`/`ip6`, если у ваших серверов фиксированные адреса.
Перенесите массовые рассылки на поддомен, например news.example.com, со своей SPF-записью и своими 10 запросами.
Проверьте, нужен ли сервису include вообще. Многие отправители используют собственный домен возвратов (bounce), поэтому SPF проходит на их домене, а выравнивание DMARC обеспечивает DKIM.
Осторожнее со «сплющиванием» SPF (SPF flattening). Замена include скопированными списками IP работает, пока провайдер не сменит свои адреса, а затем почта начинает не проходить проверку без всякого предупреждения.
Частые ошибки в SPF
Две SPF-записи в одном домене, например по одной на каждого провайдера. Объедините их в одну.
Использование
+all, которое разрешает отправку всему интернету.Публикация записи не на том имени. SPF проверяется для домена отправителя конверта, а поддомены запись не наследуют.
Механизмы после
all. Получатели их никогда не проверяют, поэтому эти отправители не авторизованы.Забытый отправитель, например веб-сервер, который отправляет письма из контактной формы.
Использование старого типа записи SPF (type 99). RFC 7208 его отменил: публикуйте только TXT.
Advertisement
SPF, DKIM и DMARC работают вместе
Сам по себе SPF не мешает подделать адрес From, который видят ваши читатели. DKIM подписывает каждое письмо, а DMARC привязывает оба механизма к видимому домену From и сообщает получателям, что делать при сбое. Настройте все три:
Проверьте опубликованную запись, её вложенные include и число DNS-запросов.
Создайте пару ключей DKIM и TXT-запись selector._domainkey.
Соберите политику DMARC с адресами для отчётов.
Посмотрите результаты SPF, DKIM и DMARC в реальном письме.