Как настроить SPF, DKIM и DMARC для своего домена
Практика4 минРедакция Innovialabs
Коротко
SPF перечисляет серверы, которым разрешено отправлять почту от вашего домена, DKIM подписывает каждое письмо ключом, а DMARC говорит получателю, что делать с письмами, не прошедшими проверку. Все три — это DNS-записи, и после настройки их нужно проверить по заголовкам реального письма.
Коротко: что делает каждая запись
- SPF (Sender Policy Framework) — TXT-запись на домене со списком серверов и сервисов, которые имеют право отправлять почту от его имени.
- DKIM (DomainKeys Identified Mail) — цифровая подпись письма. Почтовый сервис подписывает письмо закрытым ключом, а открытый ключ лежит в DNS, и получатель сверяет подпись.
- DMARC — политика поверх SPF и DKIM. Она говорит получателю: если письмо не прошло проверку, его можно пропустить, отправить в спам или отклонить, а также куда присылать отчёты.
Без этих записей Gmail, Outlook и Яндекс гораздо чаще отправляют ваши письма в спам, а для массовых рассылок крупные почтовые сервисы требуют аутентификацию обязательно.
Шаг 0: составьте список отправителей
Прежде чем трогать DNS, выпишите все сервисы, которые отправляют письма от вашего домена:
- корпоративная почта (Google Workspace, Microsoft 365, Яндекс 360 и т. п.);
- сервис рассылок и транзакционных писем (SendGrid, Mailgun, Unisender и др.);
- CRM, helpdesk, биллинг;
- сам сайт, если он шлёт письма с форм через свой SMTP.
Каждый из них должен попасть в SPF и, по возможности, подписывать письма DKIM для вашего домена.
SPF: одна запись на домен
SPF добавляется как TXT-запись на корневой домен. Значения include для популярных сервисов:
| Сервис | Что добавить в SPF |
|---|---|
| Google Workspace | include:_spf.google.com |
| Microsoft 365 | include:spf.protection.outlook.com |
| Яндекс 360 | include:_spf.yandex.net |
| SendGrid | include:sendgrid.net |
| Mailgun | include:mailgun.org |
Пример для домена, где работает Google Workspace и рассылки через SendGrid:
example.com. TXT "v=spf1 include:_spf.google.com include:sendgrid.net ~all"
Правила, которые важно соблюдать:
- Только одна запись
v=spf1на домен. Если их две, проверка ломается целиком. Нужен новый сервис — дописывайте его в существующую запись. - Не больше 10 DNS-запросов при проверке. Каждый
includeтратит минимум один, а вложенные include тоже считаются. ~allили-all.~all(softfail) мягче и удобнее на старте,-allстроже. Когда DMARC настроен, разница становится менее заметной.
DKIM: ключ выдаёт почтовый сервис
Ключ DKIM вы не придумываете сами — его генерирует сервис, а вы публикуете в DNS:
- Google Workspace. Консоль администратора → Приложения → Google Workspace → Gmail → Проверка подлинности почты. Создайте ключ, добавьте TXT-запись на
google._domainkey.example.com, затем нажмите «Начать проверку подлинности». - Microsoft 365. В портале Microsoft Defender, в настройках DKIM, вы получите две CNAME-записи для
selector1._domainkeyиselector2._domainkey. Добавьте их и включите подпись. - Яндекс 360. В админ-панели в разделе почты есть DKIM-подпись: значение публикуется как TXT-запись на
mail._domainkey.example.com.
У каждого сервиса рассылок есть свой селектор и свои записи — берите их из его панели. Ключ длинный: копируйте его целиком, без лишних пробелов и переносов.
DMARC: начните с мониторинга
DMARC — TXT-запись на поддомене _dmarc. Безопасный старт:
_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com"
p=none— ничего не блокировать, только присылать отчёты на адрес изrua.p=quarantine— отправлять непрошедшие письма в спам.p=reject— отклонять их.
DMARC проверяет выравнивание: домен в поле «От кого» должен совпадать с доменом, прошедшим SPF, или с доменом в подписи DKIM (d=). Поэтому сервис рассылок, который подписывает письма своим доменом, может пройти DKIM, но провалить DMARC. Настраивайте в нём подпись вашим доменом.
Порядок: несколько недель на p=none, разбор отчётов, исправление всех легитимных отправителей, затем quarantine и после этого reject.
Как проверить
Посмотрите, что опубликовано в DNS:
dig +short TXT example.com
dig +short TXT google._domainkey.example.com
dig +short TXT _dmarc.example.com
В Windows то же самое делает nslookup -type=TXT _dmarc.example.com.
Затем отправьте письмо на ящик Gmail, откройте его и выберите «Показать оригинал». Вверху должно быть SPF: PASS, DKIM: PASS, DMARC: PASS. В других почтовых клиентах ищите заголовок Authentication-Results. Проверьте так каждый сервис-отправитель, а не только корпоративную почту.
DMARC-отчёты приходят в виде XML-архивов. Читать их вручную неудобно, поэтому используйте любой сервис-анализатор отчётов.
Частые ошибки
- Две SPF-записи вместо одной.
- Забытый сервис рассылок или CRM, который шлёт письма от вашего домена.
- Превышен лимит в 10 DNS-запросов в SPF.
- Сразу
p=rejectбез периода мониторинга, и легитимные письма начинают пропадать. - Записи добавлены у старого DNS-провайдера, хотя NS-серверы домена указывают на другой.