Что такое SPF-запись?
SPF-запись публикуется в DNS как TXT и перечисляет серверы, которым разрешено отправлять почту от имени домена. Получающий сервер сопоставляет IP отправителя с политикой SPF, но итоговая доставка также зависит от DKIM, DMARC, репутации и локальных правил.
Синтаксис SPF-записи
Политика начинается с v=spf1, затем содержит механизмы и завершается правилом all с квалификатором. Для одного домена должна существовать одна объединённая SPF-политика, а не несколько конкурирующих записей.
Базовая структура
Механизмы проверяются слева направо до первого совпадения. Порядок важен: слишком широкое разрешение в начале может сделать последующие ограничения бесполезными.
v=spf1 [mechanisms] [qualifier]all
Распространённые механизмы
ip4 и ip6 разрешают адреса и сети, a и mx используют DNS-записи домена, include подключает политику другого домена. redirect передаёт оценку другой политике, а exists требует особенно осторожного применения.
| Механизм | Назначение | Пример |
|---|---|---|
| ip4 | Разрешить IPv4 | ip4:192.0.2.0/24 |
| ip6 | Разрешить IPv6 | ip6:2001:db8::/32 |
| a | IP из A-записей домена | a:example.com |
| mx | MX-серверы домена | mx |
| include | Включить другую SPF-политику | include:_spf.google.com |
Квалификаторы
+ означает pass, - задаёт fail, ~ обозначает softfail, а ? возвращает neutral. Квалификатор перед all определяет результат для отправителей, которые не совпали с предыдущими механизмами.
Примеры SPF-записей
Пример нужно адаптировать к реальным отправителям домена. Копирование чужой политики без проверки может разрешить лишние источники или заблокировать законную почту.
Настройка для Google Workspace
Если почта отправляется только через Google Workspace, политика может подключать опубликованный Google набор адресов. Перед изменением сверяйте актуальную документацию сервиса и существующую TXT-запись.
v=spf1 include:_spf.google.com ~all
Несколько почтовых провайдеров
При нескольких источниках объедините их в одной политике и отдельно учтите собственные IP. Удаляйте устаревшие механизмы после прекращения отправки.
v=spf1 include:_spf.google.com include:sendgrid.net ip4:192.0.2.1 -all
Ограничение DNS-проверок SPF
Оценка SPF допускает не более десяти DNS lookup, вызванных механизмами вроде include, a, mx, ptr, exists и redirect. Превышение обычно даёт permerror, поэтому вложенные include нужно анализировать до публикации.
Рекомендации
Публикуйте одну политику, разрешайте только действующие источники, контролируйте лимит lookup и тестируйте реальную отправку. Проверяйте SPF вместе с DKIM и DMARC, отслеживайте отчёты и не считайте одну DNS-запись гарантией доставки или защитой от всех подделок.