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 / nslookup | dig +short TXT _dmarc.yourbrand.com | Видимость записи для мира |
| Google Admin Toolbox | toolbox.googleapps.com | Расширенный вывод + DNS-trace |
| Mail-tester | mail-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 со стороны почтовых провайдеров, и подсвечивает ошибки в записях.