Доставляемость почты: SPF, DKIM, DMARC по-человечески

Письма уходят в спам или не доходят? Доставляемость держится на трёх DNS-записях. Разбираем SPF, DKIM, DMARC, частые ошибки и правильный порядок внедрения.

Письмо ушло, а клиент его не получил — оно в спаме или отклонено. Для транзакционных писем (заказы, коды, счета) и рассылок это прямые потери. Доставляемость держится на трёх DNS-записях: SPF, DKIM, DMARC. Настраиваются один раз, но ошибки в них тихо роняют письма годами. Разбираем по-человечески.

SPF, DKIM, DMARC: три DNS-записи для доставляемости почты
Три уровня защиты: SPF разрешает серверы, DKIM подписывает письмо, DMARC решает судьбу непрошедших проверку.

SPF — кто вправе слать от домена

TXT-запись со списком серверов, которым разрешено отправлять почту от вашего домена. Пример для Яндекс 360:

v=spf1 include:_spf.yandex.net ~all

Грабли:

  • Только одна SPF-запись на домен. Две записи = обе невалидны. Если шлёте через Яндекс + рассыльщик, объединяйте через несколько include:.
  • Лимит 10 DNS-запросов. Слишком много include — SPF перестаёт работать.
  • ~all (soft fail) — мягко, -all (hard fail) — строго. Начинать с ~all.

DKIM — криптоподпись письма

Почтовый сервер подписывает письмо приватным ключом, публичный лежит в DNS по адресу selector._domainkey.домен. Получатель сверяет подпись — это подтверждает, что письмо не подделано и реально от вас. Включается в кабинете отправителя (Яндекс 360, ESP), запись копируется в DNS. Без DKIM рассылки почти гарантированно идут в спам.

DMARC — что делать с непрошедшими

TXT-запись по адресу _dmarc.домен. Указывает политику для писем, не прошедших SPF/DKIM, и куда слать отчёты:

v=DMARC1; p=none; rua=mailto:dmarc@домен; adkim=s; aspf=s
  • p=none — только мониторинг (ничего не блокируем, собираем отчёты)
  • p=quarantine — подозрительное в спам
  • p=reject — отклонять

DMARC проверяет ещё и выравнивание (alignment) — что домен в SPF/DKIM совпадает с доменом в поле From. Частая причина провала при отправке через сторонний сервис.

Правильный порядок внедрения

  1. Настроить SPF (одна запись, все легитимные отправители)
  2. Включить DKIM у всех, кто шлёт от вашего домена (почта + рассыльщик)
  3. Поставить DMARC с p=none и rua — собрать отчёты 2–4 недели
  4. Убедиться по отчётам, что легитимная почта проходит, затем quarantinereject

Мониторинг

Подключите постмастеры: Яндекс Postmaster, Postmaster Mail.ru, Google Postmaster Tools. Они показывают репутацию домена, долю спама и проблемы с аутентификацией. После стабильного p=reject можно добавить BIMI — логотип компании в письме у поддерживающих клиентов.

Итог: SPF + DKIM + DMARC — гигиена, без которой современная почта не доходит. Полчаса в DNS экономят месяцы недополученных писем.