Перейти к содержанию
Innovialabs

Как настроить SPF, DKIM и DMARC для своего домена

Практика4 мин

Коротко

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 Workspaceinclude:_spf.google.com
Microsoft 365include:spf.protection.outlook.com
Яндекс 360include:_spf.yandex.net
SendGridinclude:sendgrid.net
Mailguninclude: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-серверы домена указывают на другой.

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

Обычно от нескольких минут до нескольких часов: это зависит от TTL записей и кэша DNS-серверов. Если через сутки проверка всё ещё не видит запись, скорее всего, она добавлена не туда или с опечаткой.

Поможем с этим

Если хотите не разбираться самим, а получить результат — этим мы занимаемся каждый день.

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.