Что проверяет DMARC
DMARC связывает две другие проверки с видимым адресом отправителя, тем, который показывает почтовая программа в поле From. Письмо проходит DMARC, если проходит SPF или DKIM, и домен в этой проверке совпадает (выровнен) с доменом в From. Совпадение может быть строгим или мягким, когда достаточно общего родительского домена.
Запись DMARC лежит в DNS под именем _dmarc.домен и содержит политику для получателя: none (ничего не делать, только собирать отчёты), quarantine (отправлять в спам) и reject (отклонять). Именно политика решает, что случится с не прошедшим проверку письмом.
Почему проверка не пройдена
Чаще всего письмо проходит SPF или DKIM, но не выровнено: почтовый сервис подписывает и отправляет от своего домена, а в поле From стоит ваш. Формально проверки зелёные, а DMARC нет. Вторая причина: не настроена подпись DKIM на вашем домене, а SPF ломается на пересылке.
Третья: часть писем идёт через сервисы, о которых вы забыли: рассылки, CRM, формы обратной связи, бухгалтерские системы. Четвёртая: слишком строгая политика при ещё не настроенной аутентификации. Пятая: ошибки в записи DMARC: опечатки в тегах, дубли, отсутствие обязательного тега политики. Тогда запись просто игнорируется.
Как прочитать результат
В заголовках письма у получателя найдите строку Authentication-Results и в ней dmarc=pass или fail, рядом указаны policy и результаты SPF и DKIM. Посмотрите, какие домены участвуют: домен в From, домен в SPF и домен подписи d= в DKIM.
Если настроена отправка агрегатных отчётов, изучите их: они показывают, какие источники шлют от вашего имени и что у них с проверкой. Сначала это нужно, чтобы найти всех отправителей, которых вы не учли. Запросите TXT-запись _dmarc и убедитесь, что она одна и без синтаксических ошибок.
Не забывайте про поддомены и про адреса, с которых отправляют машины: уведомления сайтов, системы заявок и напоминания часто идут с других поддоменов и не входят в настроенную аутентификацию. Именно они первыми страдают после ужесточения политики.
Порядок исправления
Начните с политики none и включённых отчётов. Для каждого легитимного источника добавьте его в SPF и настройте подпись DKIM для вашего домена, выровненную с адресом From. Проверьте результат на реальных письмах.
Когда отчёты показывают, что весь легитимный трафик проходит, перейдите к quarantine, при необходимости сначала для части писем, затем при стабильности к reject. Не форсируйте: слишком ранний reject приведёт к потере настоящих писем.
Если рассылки идут через сторонний сервис, настройте у него собственную подпись от вашего домена или отдельный поддомен для рассылок.
Когда проблема не в вашем домене
Если письма от вашего домена проходят DMARC, а попадают в спам из-за содержимого или плохой репутации IP, менять DMARC бесполезно. Тогда работайте над качеством списка адресов, частотой и содержанием писем. Если ваш домен подделывают, политика quarantine или reject как раз защитит его.
Отчёты DMARC приходят в формате XML и трудны для чтения вручную. Используйте их разбор специальными средствами: они превращают сырые данные в понятные таблицы по источникам отправки и результатам проверок.
Выравнивание: строгое и мягкое
В записи DMARC есть теги, определяющие строгость выравнивания для SPF и DKIM. При мягком режиме достаточно, чтобы домены совпадали на уровне общего родительского домена, например поддомен рассылки и основной домен. При строгом нужно точное совпадение.
Этот нюанс часто объясняет, почему письма от сервиса, подписанные поддоменом, проходят у одного получателя и не проходят у другого. Если вы не уверены, оставьте мягкий режим по умолчанию и меняйте его только осознанно. Также помните про запись для поддоменов: у неё может быть своя политика, отличная от основной.