Генератор записей SPF и DMARC

Две короткие строки в DNS-зоне решают, какие серверы могут отправлять почту от имени вашего домена и что будет со всеми остальными, кто попытается. Ответьте на несколько вопросов, и генератор напишет обе строки по ходу дела.

SPF

Tick everything that puts your domain in a From line: the mailbox service, the newsletter platform, the billing or help desk app, the web server behind your contact form.

Для отправителя, которого нет в списке выше: вставьте термины ip4:, ip6: или include:, которые он вам дал, через пробел.

Mailchimp is absent on purpose. It passes DMARC through DKIM, which you switch on in its domain settings, and needs no SPF term.

Mail from any other server is

DMARC

Your instruction to receivers for mail that uses your domain and passes neither check, plus the mailbox where they report what they saw.

When a message fails

Use a mailbox made for this: each large receiver sends one XML file a day. No address, no reports.

DNS changes take from a few minutes to a few hours to spread. After that, confirm both records with the SPF, DKIM and DMARC checkup.

Что внутри двух записей

Обе записи имеют тип TXT, то есть это DNS-записи со свободным текстом. Запись SPF читается слева направо, и побеждает первый элемент, совпавший с сервером-отправителем:

v=spf1 include:_spf.google.com include:sendgrid.net ip4:203.0.113.5 ~all
v=spf1
Помечает запись как SPF. Должно стоять первым.
include:
Подключает список серверов, который провайдер поддерживает в актуальном состоянии для своих клиентов. Знать их IP-адреса вам не нужно.
ip4:, ip6:
Один адрес или диапазон для сервера, которым вы управляете сами.
mx, a
Те машины, на которые в данный момент указывают ваши MX-записи или адрес вашего сайта.
~all или -all
Вердикт для всех остальных серверов: мягкий отказ (принять с подозрением) или отказ.

Запись DMARC: это список тегов через точку с запятой, опубликованный под именем _dmarc:

v=DMARC1; p=none; rua=mailto:dmarc@example.com;

p=: политика для писем, не прошедших проверку, а rua=: адрес, куда получатели отправляют ежедневную сводку.

Как генератор их собирает

Каждая отмеченная галочка добавляет один элемент. В списке пятнадцать распространённых отправителей, от Google Workspace и Microsoft 365 до SendGrid, Amazon SES и Shopify, у каждого include из его документации. В свободное поле можно вписать элементы ip4:, ip6: и include:, а голое имя хоста превращается в include.

Генератор считает по одному DNS-запросу на каждый include, mx и a и начинает предупреждать с семи. SPF допускает всего десять, а большинство include содержат вложенные include, которых генератор из вашего браузера не видит.

Если ничего не отметить, получится v=spf1 -all, а политика DMARC повысится с none до reject. Эта пара: правильная настройка для домена, который вообще не отправляет почту.

Введённый домен используется только для показа имён записей и подготовки ссылки на проверку. Он никогда не покидает страницу.

Как внести записи у DNS-провайдера

Откройте DNS-зону там, где находятся ваши серверы имён: у регистратора, в Cloudflare или у хостинговой компании. Добавьте две TXT-записи.

ЗаписьПоле имени или хостаЗначение
SPF@, пустое поле или сам доменСтрока, начинающаяся с v=spf1
DMARC_dmarcСтрока, начинающаяся с v=DMARC1

Большинство панелей управления дописывают домен сами, поэтому ввод _dmarc.example.com создаст _dmarc.example.com.example.com. Кавычки не ставьте, если панель их не требует.

Если уже есть TXT-запись, начинающаяся с v=spf1, отредактируйте её. Вторая такая запись делает недействительными обе. То же самое касается _dmarc.

Что генератор оставляет вам

DKIM здесь не получить, потому что каждый сервис рассылки создаёт собственную пару ключей. Ищите в его настройках «аутентификацию домена»: там будут от одной до трёх записей CNAME или TXT, которые нужно добавить. Это важно для DMARC, который проходит, когда SPF или DKIM успешно проверены под вашим собственным доменом. Сервисы рассылок часто отправляют письма со своим адресом возврата, поэтому SPF их не покрывает и работу должен сделать DKIM.

Начните с p=none. После двух-четырёх недель отчётов, открытых в просмотрщике отчётов DMARC, вы будете знать все источники. Затем переходите на quarantine, а позже на reject, и при желании с ~all на -all.

Генератор не читает ваш текущий DNS, поэтому не может сказать, что уже опубликовано и сколько запросов на самом деле стоят ваши include. Когда записи заработают, запустите проверку SPF, DKIM и DMARC: она проходит по каждому include и считает их.

Частые вопросы

Как создать запись SPF для Google Workspace или Microsoft 365?

Только для Google Workspace: v=spf1 include:_spf.google.com ~all. Только для Microsoft 365: v=spf1 include:spf.protection.outlook.com ~all. Добавьте по одному include: на каждый другой сервис, который отправляет почту от имени вашего домена, всё в одну запись.

Какой адрес указать в rua для DMARC?

Почтовый ящик, созданный специально для этого, например dmarc@yourdomain, или адрес, который даёт сервис анализа отчётов. Ждите по одному XML-вложению в день от каждого крупного провайдера. Адрес на другом домене работает, только если этот домен публикует запись о согласии принимать ваши отчёты.

Через сколько начинает работать новая запись SPF или DMARC?

Новая запись обычно появляется в течение нескольких минут. Изменённая запись может ещё отдаваться из кэшей в течение прежнего TTL, часто часа, а иногда суток. Следить за этим можно с помощью проверки распространения DNS.

Нужен ли SPF, если DKIM уже есть?

Для DMARC достаточно любого из двух, но Gmail и Yahoo требуют от массовых отправителей оба, а некоторые получатели снижают оценку за отсутствие записи SPF. Публикуйте обе.

Почему в списке нет Mailchimp?

Mailchimp отправляет письма со своим адресом возврата, поэтому элемент SPF на вашем домене для его писем никогда не проверяется. DMARC он проходит через DKIM, после того как вы добавите записи CNAME, указанные на его странице аутентификации домена.

Можно ли сделать отдельные записи SPF для поддоменов?

Да. SPF ищется по точному домену адреса возврата, поэтому у news.example.com своя запись и свои десять запросов. Перенос тяжёлого отправителя на поддомен: стандартный способ уложиться в лимит.