Как работает проверка DMARC
Наш сервер запрашивает у публичного резолвера Cloudflare TXT-записи в _dmarc.<domain> и выбирает ту, что начинается с v=DMARC1. Если у поддомена записи нет, он запрашивает родительские домены, потому что получатели в этом случае применяют политику родительского. Для адресов отчётов в другом домене он ищет запись, которую этот домен должен опубликовать, чтобы принимать отчёты. К почтовому серверу он не подключается, а каждый тег разбирается по правилам RFC 7489.
Получатель проверяет DMARC для каждого письма: оно проходит, если SPF проходит для адреса возврата в том же домене, что и строка From, или если подпись DKIM от этого домена верна (такое совпадение называется выравниванием, alignment). Если не прошли обе проверки, получатель применяет p: none доставляет, quarantine отправляет в спам, reject отклоняет. В любом случае он присылает ежедневную сводку на адрес rua.
Безопасный путь: опубликовать p=none с адресом rua, несколько недель читать отчёты, пока не станут проходить все сервисы, которые отправляют почту от вашего имени, затем перейти на quarantine и, наконец, на reject. Инструмент подсказывает следующую запись на этом пути.
Теги DMARC
Теги, которые может содержать запись DMARC, разделяются точками с запятой. Обязательны только v и p.
| Тег | Что задаёт | По умолчанию |
|---|---|---|
v | Версия. Всегда DMARC1 и всегда первой. | — |
p | Политика для писем, не прошедших проверку: none, quarantine или reject. | обязателен |
sp | Политика для поддоменов, если она должна отличаться от p. | как p |
pct | Доля не прошедших проверку писем, к которой применяется политика, от 0 до 100. | 100 |
rua | Куда идут ежедневные сводные отчёты: один или несколько адресов mailto:, через запятую. | none |
ruf | Куда идут отчёты по отдельным письмам, не прошедшим проверку. Присылают их немногие получатели. | none |
adkim | Выравнивание DKIM: r (нестрогое, поддомены подходят) или s (строгое, точный домен). | r |
aspf | Выравнивание SPF: r (нестрогое) или s (строгое). | r |
fo | Когда отправляются отчёты о сбоях: 0 — не прошли обе проверки, 1 — не прошла любая, d — не прошёл DKIM, s — не прошёл SPF. | 0 |
ri | Как часто запрашивать сводные отчёты, в секундах. | 86400 |
Пример
example.com публикует в _dmarc.example.com запись «v=DMARC1; p=quarantine; sp=reject; rua=mailto:[email protected]; adkim=s». Письмо с From: example.com, не прошедшее обе проверки, попадает в спам; такое же письмо с news.example.com отклоняется, потому что sp=reject. При adkim=s подпись DKIM от mail.example.com для example.com не засчитывается, но SPF остаётся нестрогим, поэтому адрес возврата на bounce.example.com всё равно выравнивается. Каждый день получатели присылают сводку на [email protected]. Значение pct не задано, поэтому политика действует на 100 % не прошедших проверку писем.
Вопросы
Как проверить запись DMARC?
Введите домен выше и нажмите «Проверить DMARC». Инструмент читает TXT-запись в _dmarc.вашдомен, простыми словами показывает политику и каждый тег и отмечает, чего не хватает. Чтобы проверить запись до публикации, переключитесь в режим вставленной записи: он работает в вашем браузере.
Что означают p=none, p=quarantine и p=reject?
Они сообщают получателям, что делать с письмами, которые выдают себя за письма вашего домена, но не проходят DMARC. none: доставить как обычно и только присылать отчёты. quarantine: отправить в спам. reject: отклонить. Начните с none, чтобы собирать отчёты, а когда вся ваша почта будет проходить проверку, переходите на quarantine и reject.
Нужен ли DMARC для Gmail, Yahoo и Outlook?
Если вы отправляете много почты, да. С февраля 2024 года Gmail и Yahoo требуют запись DMARC (достаточно p=none) от отправителей, которые рассылают больше 5 000 писем в сутки, а Outlook.com требует того же с мая 2025 года. Небольшие отправители не обязаны, но почте с DMARC доверяют больше, а поддельную почту от вашего имени проще остановить.
Что такое rua и ruf в DMARC?
rua — адрес для сводных отчётов: ежедневной сводки в XML от каждого получателя, где указано, какие серверы отправляли почту от имени вашего домена и прошли ли SPF и DKIM. ruf — для отчётов о сбоях по отдельным письмам, которые теперь присылают немногие получатели. Адрес в другом домене получит отчёты, только если этот домен публикует запись о том, что принимает их.
Почему DMARC не проходит, если SPF проходит?
Потому что SPF прошёл для другого домена. SPF проверяет адрес возврата (Return-Path), который почтовый сервис часто задаёт в своём домене, а DMARC требует, чтобы он совпадал с доменом в строке From. Исправьте это, настроив у сервиса собственный домен для адреса возврата, или подписывайте письма DKIM для своего домена: достаточно одной выровненной проверки.