Пересылка
- SPF192.0.2.80 нет в SPF у example.com
- DKIMподпись цела
Отчёт показываетspf=fail dkim=pass → pass
Подписывайте всё через DKIM: DKIM переживает пересылку. ARC (RFC 8617) помогает пересылающим серверам поручиться за письмо.
Тема
Проверить DMARC любого домена так, как запись читает принимающий почтовый сервер: где найдена политика, что происходит с письмами, не прошедшими проверку, доходят ли отчёты хоть до кого-то и что нужно SPF и DKIM, прежде чем вы включите применение политики.
Введите домен выше: проверка запрашивает у DNS TXT-запись у _dmarc. плюс домен, поднимается к организационному домену, если записи нет (RFC 9989 §4.10), и показывает, что принимающий сервер делает с письмами, не прошедшими проверку.
Вручную спросите то же имя: dig +short TXT _dmarc.paypal.com или nslookup -type=TXT _dmarc.paypal.com в Windows. Один ответ, начинающийся с v=DMARC1, — это запись; два ответа означают, что получатели не используют ни один (RFC 9989 §4.10).
dig на этом останавливается. Он не поднимается от поддомена вверх, не проверяет, принимают ли адреса для отчётов эти отчёты, и не говорит, какому RFC следует получатель. Это и добавляет проверка.
dig +short TXT _dmarc.example.comВсе ответы у этого имени. Одна запись, начинающаяся с v=DMARC1, и есть DMARC.
Что показывает dig, а что нет
$ dig +short TXT _dmarc.paypal.com 1
"v=DMARC12; p=reject; rua=mailto:d@rua.agari.com,mailto:dmarc_agg@vali.email; ruf=mailto:d@ruf.agari.com,mailto:MTc4Mzcw@ruf.vali.email3"
$ dig TXT _dmarc.mail.google.com | grep status 4
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN
Сначала идёт ответ одним предложением. Под ним — доказательства: запись, как её разбирают получатели, каждый тег подсвечен поверх своих символов, а на тёмно-синем фоне — путь принимающего сервера для этого домена, который заканчивается тем, что он делает с письмами, не прошедшими проверку.
Баллов нет: политика none — это этап, а не провал, а лестница под путём говорит, что нужно для следующего шага.

ВердиктОдно предложение о том, что получатели делают с письмами, не прошедшими проверку, и политика, SPF и DKIM с первого взгляда.ЗаписьКаждый тег подсвечен поверх своих символов: наведите курсор или коснитесь, чтобы узнать, что он делает. Под записью — значения по умолчанию.Взгляд получателяКаждый запрос DNS, который принимающий сервер задаёт для домена, по порядку, с ответом.Письма, не прошедшие DMARCЧто получатели делают для домена, его существующих поддоменов и несуществующих имён.Лестница примененияГде домен находится между none и reject и что нужно для следующего шага.DMARC говорит принимающим почтовым серверам, что делать с письмами, где в строке From: указан ваш домен, но которые не могут доказать, что пришли от вас, и куда присылать отчёты о них (RFC 9989 §4.7).
Доказательство — это SPF или DKIM, выровненные с доменом From:: SPF проходит для домена возврата в той же организации или подпись DKIM содержит d= с вашим доменом. Одного выровненного прохождения достаточно (RFC 9989 §5.3.5); всё остальное не проходит DMARC, и решает политика записи: доставить, отправить в спам или отклонить.
Отчёты — вторая половина. Получатели, которые учитывают rua, присылают ежедневную сводку о каждом сервере, отправлявшем почту от имени вашего домена; так вы находите законных отправителей, о которых забыли, прежде чем включите применение политики.
Два письма, одна строка From:
Ваш счёт, отправленный через почтовый сервисчерез сервис с настроенным собственным DKIM, поэтому он подписывает с d=example.com
Поддельный счёт с 203.0.113.9сервер, которому example.com ничего не разрешал
550 5.7.1 Email rejected per DMARC policy for example.com
Завтрашний агрегированный отчёт для dmarc@example.com: 1 письмо с 203.0.113.9, SPF fail, DKIM нет, действие reject.
p=none просит получателей доставлять письма, не прошедшие проверку, как обычно и только сообщать о них; quarantine — считать их подозрительными, обычно отправлять в спам; reject — отказать в приёме прямо во время SMTP-диалога.
None — это этап, а не провал: RFC 9989 §7.4 советует провести на нём минимум месяц с работающими отчётами и ещё столько же на quarantine, прежде чем переходить к reject. Домены, чьи сотрудники пишут в рассылки, стоит остановить на quarantine.
Крупные почтовые провайдеры тоже разделяют политику: gmail.com и outlook.com публикуют p=none для самого домена и sp=quarantine для поддоменов, а google.com, yahoo.com и microsoft.com публикуют reject.
Куда попадает поддельное письмо
Доставленоp=none
apache.orggmail.comsamsung.com
23 из 192
Папка «Спам»p=quarantine
github.comapple.comamazon.com
30 из 192
Отклоненоp=reject
google.compaypal.commicrosoft.com
139 из 192
Да, если вы массово отправляете почту на Gmail, Yahoo или Outlook.com: все три требуют запись DMARC, и p=none достаточно для выполнения правила. Применение политики (quarantine или reject) мешает посторонним отправлять почту от имени вашего домена, и логотипам BIMI оно тоже нужно.
Gmail требует её (начало: 1 февраля 2024 г.) от отправителей, шлющих больше 5 000 писем в сутки на аккаунты Gmail; Yahoo (начало: февраль 2024 г.) требует её, не называя объёма; Outlook.com (начало: 5 мая 2025 г.) требует её при объёме больше 5 000 в сутки. Без записи Gmail отвечает 4.7.31 (и 4.7.32, если From: не выровнен), а Outlook.com отклоняет письма с 550 5.7.515.
Для домена, который ничего не отправляет, DMARC — самая дешёвая защита: p=reject, null MX и v=spf1 -all, как публикует example.com (M3AAWG).
Чего каждый почтовый провайдер требует от массовых отправителей
4.7.31 · 4.7.32DMARC должен проходить550 5.7.515✓Обязательно: запись, p=none или строжеiЗащита: quarantine или reject
Найдите источник сбоев в агрегированных отчётах и исправьте его у отправителя: подпишите его DKIM для вашего собственного домена или перенесите на домен возврата внутри вашей организации. Большинство сбоев объясняют три причины.
Пересылка сохраняет подпись DKIM, но ломает SPF, поэтому прохождение обеспечивает DKIM. Рассылки, которые изменяют письмо, ломают оба. А почтовый сервис, подписывающий своим доменом, проходит DKIM для себя, а не для вас: включите его собственный DKIM для вашего домена (обычно это CNAME вроде s1._domainkey) и собственный домен возврата.
Три сбоя, что показывает отчёт и как их исправить
Отчёт показываетspf=fail dkim=pass → pass
Подписывайте всё через DKIM: DKIM переживает пересылку. ARC (RFC 8617) помогает пересылающим серверам поручиться за письмо.
Отчёт показываетspf=fail dkim=fail → fail
Рассылки, которые переписывают From:, решают проблему; домены, чьи сотрудники пишут в рассылки, остаются на quarantine (RFC 9989 §7.4).
Отчёт показываетdkim=pass(esp.example) → fail
Включите собственный DKIM сервиса: s1 и s2 у paypal.com — это CNAME на SendGrid, который подписывает как paypal.com.
Поддомен без собственной записи получает политику своего организационного домена: sp для существующих поддоменов, np для несуществующих имён, и оба при отсутствии берут p (RFC 9989 §4.7).
Поддомен, публикующий собственную запись, использует её для себя. Но запись между именем и его организационным доменом для этого имени никогда не используется: это видно на дереве berkeley.edu, где sp=none у eecs.berkeley.edu не доходит до www.eecs.berkeley.edu (RFC 9989 §4.10.1).
np — самая дешёвая победа: несуществующие имена не отправляют настоящей почты, поэтому np=reject блокирует подделки с них, даже пока p ещё на none. Получатели на RFC 7489 про np не знают и используют sp.
Дерево berkeley.edu глазами получателя
sp=none у eecs.berkeley.edu никогда не применяется: запись между именем и его организационным доменом для него не используется (RFC 9989 §4.10.1). Проверка помечает её как неиспользуемую запись.
Агрегированный отчёт — это ежедневный XML-файл от каждого получателя, где перечислены все серверы, отправлявшие почту от имени вашего домена, сколько писем и прошли ли SPF, DKIM и DMARC (RFC 9990).
Читайте его по источникам: ваши собственные серверы и сервисы должны показывать выровненное прохождение; известный сервис с ошибкой требует собственного DKIM; неизвестный адрес с ошибкой при p=reject — это подделка, которую остановили. Сервис отчётов (dmarcian, Valimail, EasyDMARC, Postmark и другие) превращает тысячи файлов в такой список.
Отчёты на адрес в другом домене приходят, только если этот домен согласен: он публикует yourdomain._report._dmarc.its-host со значением v=DMARC1 (RFC 9990 §4). Проверка спрашивает за вас и даёт точную запись, если её нет.
Один отчёт, строка за строкой
<org_name>google.com</org_name>1
<date_range>23 окт., 00:00 UTC – 24 окт., 00:00 UTC</date_range>
<policy_published>example.com · p=reject</policy_published>2
<source_ip>198.51.100.24</source_ip> <count>412</count> dkim=pass spf=fail → none3
<source_ip>203.0.113.9</source_ip> <count>37</count> dkim=fail spf=fail → reject4
paypal.com._report._dmarc.rua.agari.com TXT "v=DMARC1;"✓ разрешено: отчёты идутСервисы отчётов, которые узнаёт проверкаdmarcianValimailEasyDMARCPostmarkCloudflareMimecastProofpointAgariRed SiftPowerDMARC+ещё 6
Проверка записей SPF и подсчёт DNS запросов по RFC 7208
Проверка записей DKIM с автоматическим определением селектора
Проверка записей BIMI, логотипов SVG Tiny PS и сертификатов VMC, и где виден логотип
Создайте DMARC-запись по RFC 9989, начав с той, что вы публикуете сейчас, и увидьте, что получатели сделают с письмами, не прошедшими проверку.
Разбор необработанных заголовков email и отслеживание пути письма
Поиск записей mail exchange и данных почтового сервера