Что определяет DMARC
SPF и DKIM подтверждают определенные данные о домене, но ни один из них не проверяет адрес в строке From, который видят пользователи. DMARC связывает их с этим адресом. Сообщение проходит проверку DMARC, если SPF или DKIM проходит проверку для домена, совпадающего с доменом From. Запись также указывает принимающим серверам, что делать с сообщением, которое не прошло проверку.
Запись хранится в DNS как TXT-запись по имени, состоящему из _dmarc и вашего домена. Если для этого имени нет записи, принимающие серверы проверяют домен организации, то есть зарегистрированный домен, например example.com для news.example.com. Поэтому поддомен может быть защищен без собственной записи.
Как читать политику DMARC
p=none указывает принимающим серверам ничего не предпринимать и только отправлять отчеты. С этого следует начинать всем, но слишком многие домены остаются с такой политикой годами. Пока она действует, любой может отправлять почту с вашим доменом в строке From, а принимающему серверу предписано пропустить ее.
p=quarantine отправляет не прошедшую проверку почту в спам, а p=reject отклоняет ее при приеме. С февраля 2024 года Gmail и Yahoo требуют от массовых отправителей публиковать запись DMARC. Запись с p=none формально соответствует этому требованию, но средство проверки все равно помечает ее предупреждением.
Почему отчеты DMARC не приходят
На адреса rua по умолчанию раз в день приходит сводный отчет от каждого принимающего сервера, который видит вашу почту. Если адрес находится в домене, отличном от домена записи, RFC 7489 требует, чтобы этот другой домен опубликовал запись авторизации, подтверждающую прием отчетов для вашего домена. Средство проверки ищет такую запись для каждого внешнего адреса. Без нее принимающие серверы не отправляют отчеты.
Вопросы
Как добавить запись DMARC?
Опубликуйте TXT-запись по имени, состоящему из _dmarc и вашего домена, с v=DMARC1 и политикой, например v=DMARC1; p=none; rua=mailto:dmarc@example.com. Начните с p=none, анализируйте отчеты в течение нескольких недель, затем перейдите на quarantine, а позже на reject. Проверьте запись здесь после того, как она обновится в DNS.
Плохо ли использовать p=none?
На первом этапе эта политика выполняет свою задачу: собирает отчеты, не влияя на доставку. Так можно найти сервисы, которые отправляют почту от вашего имени, но еще не прошли аутентификацию. Проблема возникает, если p=none остается надолго, поскольку отчеты нужны для перехода сначала к карантину, а затем к отклонению писем.
Нужна ли отдельная запись для каждого поддомена?
Если у поддомена нет собственной записи, применяется запись организационного домена, а тег sp в этой записи задает политику для поддоменов. Поэтому одной записи обычно достаточно для всех поддоменов.
Ослабленное или строгое выравнивание?
Ослабленное, если у вас нет причин использовать строгое. При ослабленном выравнивании DKIM-подпись от mail.example.com учитывается для адресов From в домене example.com. Строгое выравнивание нарушает это соответствие, а вместе с ним и работу многих конфигураций, в которых провайдер подписывает письма с использованием поддомена.
Что означает «DMARC policy not enabled»?
Это означает, что в DMARC-записи домена указано p=none или что у домена вообще нет DMARC-записи. При p=none получатели доставляют письма, не прошедшие проверку, как обычно и только отправляют отчеты на адрес rua, поэтому пока никто не блокирует отправку писем от имени вашего домена.
Полное руководство: DMARC policy not enabled
Может ли у домена быть несколько DMARC-записей?
Нет. Если в _dmarc есть две TXT-записи, начинающиеся с v=DMARC1, получатели игнорируют обе и считают, что у домена нет DMARC-записи. Оставьте одну запись и перенесите в нее нужные теги из другой.
Карантин или отклонение?
Сначала включите карантин. Получатели считают письма, не прошедшие проверку, подозрительными и обычно отправляют их в спам. Поэтому пропущенный вами легитимный сервис приведет к попаданию письма в другую папку, а не к его потере. Переходите к отклонению, когда отчеты в течение нескольких недель показывают, что ни одно ваше письмо не проходит проверку с ошибкой.