Telegram MAX Отвечаем в рабочее время за 15 минут
Нужна консультация

Как настроить SPF, DKIM и DMARC: пошаговая инструкция

SPF, DKIM и DMARC — три TXT-записи в DNS, без которых письма уходят в спам. Здесь пошаговая настройка с примерами для REG.RU, nic.ru и Beget: как проверить, что уже есть в DNS, собрать одну корректную SPF-строку, добавить селектор DKIM и включить политику DMARC.

0. Подготовка: проверяем, что уже есть в DNS

Откройте терминал и выполните:

dig +short TXT yourbrand.com
  • 1 Смотрите, нет ли старых или конфликтующих SPF/DKIM/DMARC-записей
  • 2 SPF допускает только одну TXT-строку вида v=spf1 … ~all
  • 3 Лишние default._domainkey — частая причина DKIM-fail
  • 4 Зафиксируйте TTL (в REG.RU по умолчанию = 3600 сек; для тестов можно временно сократить до 300 сек)

Postmaster-бот CRMLOVE

Наш Postmaster-бот сможет автоматически напомнить, если после изменения записей метрики упали.

1. Генерируем DKIM-ключ

1.1. Выбираем длину

  • 1024 бит минимальный стандарт, решит 90% задач
  • 2048 бит рекомендуем для e-commerce; фильтры Google дают +0.1 к репутации

1.2. Генерация (пример — Postfix)

opendkim-genkey -b 2048 -d yourbrand.com -s default

Получите два файла: default.private (хранится на сервере) и default.txt (TXT-запись для DNS).

1.3. Публикация в DNS

default._domainkey.yourbrand.com. 3600 IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBg...IDAQAB"

Важно: не добавляйте переносы строк в p= — Mail.ru читает запись как одну строку.

2. Создаём SPF-запись

2.1. Минимальный синтаксис

v=spf1 include:_spf.mtasv.net ~all
  • include: доверяем инфраструктуре ESP (пример: Mindbox, Unisender)
  • ~all «soft-fail»: письма за пределами списка помечаются, но не рубятся

2.2. Расширенный синтаксис (несколько сервисов)

v=spf1 ip4:192.0.2.10/32 include:_spf.google.com include:sendgrid.net -all

Максимум 10 DNS-lookup — иначе SPF permerror.

Совет: если уже 9 include-запросов, объедините их через поддомен-прокси и сократите до 1 lookup.

3. Добавляем DMARC-политику

3.1. Начинаем с none

_dmarc.yourbrand.com. 3600 IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@yourbrand.com; fo=1"
  • p=none режим мониторинга, почта не блокируется
  • rua= куда отправлять aggregated-отчёты XML
  • fo=1 шлём отчёт при любом fail SPF или DKIM

3.2. Переходим на quarantine / reject

Через 2-3 недели анализа отчётов:

v=DMARC1; p=quarantine; pct=50; rua=...; ruf=mailto:forensic@yourbrand.com;
  • pct=50 половина подозрительных писем попадает в спам (A/B-проверка)
  • ruf= forensic-отчёты (минимум у Google, иначе flood)

Автоматизация

Подключите DMARC-отчёты в BigQuery и настройте алерты через нашего бота — он умеет парсить XML и сигналить в Telegram, если p=reject ловит легитимные письма.

4. Проверяем настройки

ИнструментКоманда/URLЧто показывает
dig / nslookupdig +short TXT _dmarc.yourbrand.comВидимость записи для мира
Google Admin Toolboxtoolbox.googleapps.comРасширенный вывод + DNS-trace
Mail-testermail-tester.comОтправка тест-письма, анализ заголовков
Postmaster Mail.ruКабинет → «Аутентификация»Статус SPF/DKIM/DMARC в реальном времени

Удобно: бот проверит эти метрики раз в час и пришлёт алерт, если появится softfail.

5. Частые ошибки и быстрые фиксы

SPF permerror: too many DNS lookups Вероятная причина: >10 include-/redirect-запросовСведите сервисы через sub-spf.yourbrand.com
DKIM fail: body hash did not verify Вероятная причина: ESP меняет MIME-структуру после DKIM-подписиПереключите canonicalization на relaxed/relaxed
DMARC pct = 100, но легитимные письма in spam Вероятная причина: Поддоменные рассылки не подпадают под политикуДобавьте sp=none или отдельный _dmarc.sub. запись

6. Итоги

  • SPF одна строка, ≤10 lookup, заканчиваем ~all или -all
  • DKIM храните private-key, публикуйте public-key, проверяйте selector
  • DMARC начинаем с none , постепенно ужесточаем до reject

Поддерживаем всё это через Postmaster-бота — и спим спокойно.

Следующий шаг

Включите мониторинг и получайте сводки в Telegram

Проверьте домен после настройки

Сервис «Посылай» показывает, как выглядят ваши SPF, DKIM и DMARC со стороны почтовых провайдеров, и подсвечивает ошибки в записях.

Проверить домен

posylai.ru/check

// НАШИ КАНАЛЫ

Подписывайтесь на наши каналы

Актуальные кейсы, инсайты и практические советы по CRM-маркетингу. Строго без воды, только работающие решения.

Выбирайте удобный канал — 300+ подписчиков, 10–12 постов в неделю.

Готовы к захватывающему росту?

Оставьте заявку — подготовим предложение под вашу нишу.