SPF, DKIM и DMARC для чайников — проверить свой домен за 3 минуты
Три записи в DNS. Без них ваши письма клиентам сейчас улетают в папку «Спам» у Gmail, Яндекс.Почты и Mail.ru — и никто вам об этом не сообщит.
TL;DR
- SPF говорит миру «письма от моего домена идут только с этих IP» — защита от подделки From.
- DKIM — цифровая подпись каждого письма ключом, который лежит в DNS. Проверяющий убеждается, что письмо не подменили в пути.
- DMARC — политика: что делать с письмом, которое провалило SPF или DKIM. Плюс отчёты о попытках подделки.
- С февраля 2024 Google и Yahoo, с мая 2025 Microsoft требуют все три для отправителей от 5000 писем/день — иначе rejection или junk.
- Проверить домен:
dig +short TXT example.ruиdig +short TXT _dmarc.example.ru.
Зачем это вообще нужно
Изначально протокол SMTP не требует доказательств, что письмо от указанного отправителя действительно от него. Можно взять любой почтовый сервер и отправить письмо «от Сбербанка» — SMTP это разрешает. Так работает большая часть фишинга.
Проблема стала настолько массовой, что крупные почтовые провайдеры перестали доверять письмам без подтверждения подлинности. С 2024-го Google и Yahoo объявили: массовые отправители (5000+ писем в день) без корректных SPF, DKIM и DMARC получают permanent rejection. С мая 2025-го то же сделал Microsoft для Outlook.com и Hotmail.com.
Даже транзакционные письма (уведомления, счета, коды подтверждения) страдают: если ваш домен не пройдёт проверки, репутация падает, и в спам летят вообще все письма — не только массовые.
SPF: «письма от меня идут только с этих IP»
SPF (Sender Policy Framework) — это TXT-запись в DNS вашего домена, где перечислены серверы, которым разрешено отправлять почту от вашего имени. Приёмный сервер видит заголовок «Return-Path: user@example.ru», делает DNS-запрос TXT-записи example.ru, сверяет IP отправителя со списком.
Минимальная валидная запись, если вы отправляете почту только через один сервер:
example.ru. IN TXT "v=spf1 ip4:203.0.113.42 -all"
Разбор:
v=spf1— версия протокола (существует только одна).ip4:203.0.113.42— разрешённый IP. Можно перечислять несколько:ip4:1.2.3.4 ip4:5.6.7.8.-all— «всё остальное — отклонить». Есть варианты~all(soft-fail, «пометить, но принять»),?all(neutral, никак не влияет). Использование-all— правильный выбор, но только когда вы уверены что перечислили ВСЕ серверы, которые отправляют письма от вашего домена.
include: для внешних сервисов:
"v=spf1 ip4:203.0.113.42 include:_spf.google.com include:sendgrid.net -all"
Ограничение SPF: не выдерживает пересылки. Если ваше письмо переслали на другой ящик, оригинальный IP отправителя (ваш) больше не совпадает с IP пересылающего сервера — SPF failed. Именно поэтому одного SPF мало, нужен DKIM.
DKIM: цифровая подпись каждого письма
DKIM (DomainKeys Identified Mail) — это криптографическая подпись, которую ваш почтовый сервер добавляет в заголовок каждого отправляемого письма. Приёмный сервер берёт публичный ключ из DNS, проверяет подпись, убеждается, что тело и заголовки не изменились в пути и что письмо действительно от вашего домена.
Ключ хранится в DNS-записи с селектором:
dkim1._domainkey.example.ru. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC…"
dkim1 здесь — селектор, произвольное имя. Ваш почтовый сервер (или сервис отправки — Google Workspace, Яндекс 360, Mailcow, Zimbra) генерирует пару ключей: приватный кладётся на сервер отправки, публичный вы копируете в DNS.
В отличие от SPF, DKIM переживает пересылку: подпись остаётся валидной, потому что не привязана к IP отправляющего сервера, а только к содержимому.
Проверить свой DKIM за минуту
Отправьте письмо с любого своего адреса на бесплатный проверочный сервис — например, check-auth@verifier.port25.com — и через минуту вам вернётся отчёт с проверкой всех трёх записей (SPF, DKIM, DMARC) и рекомендациями. Или посмотрите заголовки любого своего письма в веб-интерфейсе почты и найдите DKIM-Signature: и Authentication-Results:.
DMARC: политика «что делать, если проверка провалилась»
SPF и DKIM только сообщают приёмному серверу результат проверки. DMARC говорит, что с этим результатом делать, — а также присылает вам отчёты о попытках подделки вашего домена.
Минимальная запись:
_dmarc.example.ru. IN TXT "v=DMARC1; p=none; rua=mailto:postmaster@example.ru"
Разбор:
p=none— «ничего не делать с failed-письмами, только отчитываться». Стартовая настройка, чтобы не сломать ничего и посмотреть отчёты.p=quarantine— «в спам».p=reject— «отклонять на этапе SMTP» (жёсткая, боевой режим).rua=mailto:...— куда слать агрегированные отчёты (раз в сутки).- Опционально
ruf=mailto:...— детальные отчёты по каждому failed-письму (много почты).
p=none, соберите отчёты минимум 2 недели, разберитесь с легитимными сервисами, которые проваливают проверку (обычно — забыли добавить в SPF или DKIM), потом переходите на p=quarantine ещё на 2 недели, дальше — на p=reject. Резкий переход сразу на reject может обрезать вам ваши же уведомления, счета из CRM и т. п.
Проверка своего домена — три команды
В любом Linux/Mac терминале (или в WSL на Windows):
# SPF
dig +short TXT example.ru | grep spf1
# DKIM (нужно знать селектор — часто "default", "google", "yandex", "dkim1")
dig +short TXT default._domainkey.example.ru
# DMARC
dig +short TXT _dmarc.example.ru
Если хоть одна из команд вернула пусто — соответствующая проверка у вас не настроена.
Онлайн-инструменты, если dig не хочется ставить:
- MXToolbox SPF Check — вводите домен, показывает разбор записи и ошибки.
- DMARCian Inspector — то же для DMARC, показывает политику и адреса отчётов.
- Mail-tester — отправляете тестовое письмо на выданный адрес, получаете score от 0 до 10 с полным разбором.
Типичные ошибки, которые ловит наш собственный опыт
| Симптом | Причина | Что делать |
|---|---|---|
| Письма от 1С падают в спам, а от почтового клиента — нет | 1С отправляет через свой SMTP-сервер (например, mail.company.ru), IP которого нет в SPF | Добавить IP 1С-сервера в SPF-запись через ip4: |
| DMARC-отчёты приходят пачками, все failed | Часть сервисов (рассылка, CRM, HelpDesk) не подписаны DKIM и не в SPF | Настроить DKIM у каждого сервиса или добавить их include: в SPF |
| SPF-запись «PermError: too many DNS lookups» | SPF ограничен 10 DNS-запросами (все include: считаются). Часто ловится при трёх-четырёх сервисах в стеке. | Использовать SPF flattener — заменяет include: на прямые IP |
| DMARC report говорит «SPF passed, DKIM failed» на письмах через CRM | CRM не подписывает исходящие DKIM ключом вашего домена | Настроить DKIM в панели CRM или отправлять через свой SMTP как relay |
| Всё настроено, но письма всё равно в junk у Gmail | Может быть репутация домена испорчена предыдущими рассылками; проверьте домен на спам-листах | См. отдельную статью |
Где править DNS
DNS-записи вы правите там, где хостится ваш домен:
- Reg.ru, Beget, Timeweb, RU-CENTER — в панели управления доменом, раздел «DNS-записи» или «Настройка зоны».
- Cloudflare — Dashboard → Domain → DNS → Records.
- Selectel, Yandex.Cloud DNS — раздел DNS зоны, кнопка «Добавить запись».
Тип записи для всех трёх — TXT. Имя (subdomain):
- SPF: пустое или
@(означает корень домена) - DKIM:
selector._domainkey(например,default._domainkey) - DMARC:
_dmarc
Значение — сама строка в кавычках без кавычек (или в них — панель обычно нормализует).
p=reject сразу «для галочки», не собрав отчёты. Не копируйте чужие SPF-записи (у другого домена другой набор серверов). Не оставляйте старые SPF-записи рядом с новыми — их может быть только одна на домене (несколько записей = автоматический SPF fail).
Что даёт правильно настроенный триплет
- Ваши письма перестают попадать в спам у Gmail/Яндекс/Mail.ru.
- Никто не может отправить фишинг «от вашего имени» на ваших же клиентов.
- DMARC-отчёты показывают, кто и откуда пытался слать письма от вашего домена (иногда обнаруживается взломанный аккаунт какого-нибудь маркетингового сервиса).
- С точки зрения репутации домена — плюс. Приёмные сервисы поднимают ваш trust score.
Не хотите разбираться с этим сами?
Мы подключаем ваш домен к антиспам-шлюзу 2333.ru — все три записи настраиваются нами при подключении. Плюс AI-фильтр входящего спама и защита от фишинга/BEC/quishing.
Оставить заявку