Почему письма уходят в спам: SPF, DKIM и DMARC простыми словами
У моего домена почта работала, письма отправлялись, всё выглядело нормально - а двух из трёх записей, отвечающих за доверие к отправителю, не было вовсе. Объясняю SPF, DKIM и DMARC человеческим языком: что каждая делает, в каком порядке ставить и как проверить результат за две минуты.

Я собирался включить на своём сайте почтовую рассылку и по привычке начал с проверки домена. Оказалось, что у него настроены только базовые вещи: почта работает, письма отправляются, всё выглядит нормально. Двух из трёх записей, отвечающих за доверие к отправителю, не было вовсе.
Это типичная ситуация. Почта "просто работает" ровно до того момента, когда вы начинаете отправлять что-то массовое или важное - и тогда выясняется, что половина писем не доходит, а вы об этом не знаете, потому что уведомлений о попадании в спам не бывает.
Разберу три записи по-человечески, без RFC.
SPF: кому разрешено писать от вашего имени
Представьте, что кто угодно может отправить бумажное письмо на бланке вашей компании. Примерно так устроена почта по умолчанию: адрес отправителя в письме - это просто текст, его можно написать любой.
SPF - это список: с каких серверов разрешено отправлять письма от вашего домена. Он лежит в настройках домена, и почтовые системы его проверяют. Пришло письмо от вас с сервера, которого нет в списке, - повод для подозрений.
Эта запись есть почти у всех, потому что хостинг обычно ставит её сам при подключении почты. Дальше начинается то, что сам себя не поставит.
DKIM: подпись, которую нельзя подделать
SPF говорит "письмо пришло с правильного сервера". DKIM говорит "письмо действительно ваше и его не меняли по дороге": исходящая почта подписывается криптографической подписью, а проверить её можно открытым ключом, который лежит в настройках домена.
Разница практическая. SPF ломается при пересылке письма: адрес отправителя остался ваш, а сервер уже чужой. DKIM пересылку переживает, потому что подпись живёт в самом письме.
Именно этой записи у меня не было. И тут выяснилась деталь, из-за которой её и не бывает у многих: на моём хостинге DKIM не включается кнопкой в панели - его включает поддержка по обращению. Пишете тикет, просите подписывать исходящую почту, и запись появляется в настройках домена сама. Пять минут работы и ноль рублей, но об этом надо знать.
DMARC: что делать с письмами, которые не прошли проверку
Первые две записи описывают, как проверить письмо. DMARC отвечает на следующий вопрос: а что делать, если проверка не прошла?
Вариантов три: ничего не делать и просто наблюдать, отправить в спам или отклонить совсем. Плюс адрес, на который почтовые системы будут присылать отчёты - кто и откуда шлёт письма от вашего имени.
Порядок здесь важен, и его нарушение - главная ошибка самостоятельной настройки. Нельзя начинать со строгого режима: если DKIM не настроен или какой-то ваш сервис шлёт письма мимо списка, вы своими руками отправите в спам собственную почту.
Правильная последовательность: сначала мягкий режим наблюдения с отчётами, потом настройка DKIM, потом проверка боем, и только потом ужесточение. Я именно так и делал: поставил DMARC, добился DKIM, убедился, что обе проверки проходят, и после этого поднял режим до отправки подозрительного в спам.
Как проверить за две минуты
Не надо ставить инструменты и разбираться в заголовках. Есть бесплатные сервисы-автоответчики: вы отправляете письмо со своего рабочего адреса на специальный адрес и получаете в ответ полный разбор - прошёл ли SPF, прошёл ли DKIM, что видит принимающая сторона.
Я пользуюсь таким после каждого изменения. Ответ приходит за минуту, и в нём прямым текстом написано pass или fail по каждому пункту. Это единственный способ убедиться, что вы настроили не то, что хотели, а то, что получилось.
Отдельная грабля, если правите настройки домена через программный интерфейс хостинга, а не руками: у некоторых провайдеров операция изменения записей перезаписывает всю группу целиком и молча удаляет то, что вы не передали. После любой такой правки проверяйте, на месте ли записи почты и адреса сайта. Я проверяю всегда.
Бонус: аватар отправителя
Раз уж речь о доверии к письму - вопрос, который мне задают чаще, чем про DKIM: как сделать, чтобы рядом с письмом показывалась картинка компании, а не серый кружок с буквой.
Ответ неприятный и разный для разных почт:
- В Gmail единственный официальный путь - технология BIMI, а она требует сертификата, подтверждающего права на товарный знак. Это от 1000 долларов в год и обязательный зарегистрированный знак. Для индивидуального предпринимателя без товарного знака - недоступно в принципе.
- В Mail.ru делается бесплатно через кабинет почтмейстера: подтверждаете домен записью в его настройках и загружаете картинку. Требования простые - квадрат, непрозрачный фон, читаемость в мелком размере.
- В Яндексе встроенного способа нет, работает сервис глобальных аватаров, привязанный к адресу отправителя.
Но заниматься этим стоит только после того, как настроены DKIM и DMARC. Без них у вас проблема не с картинкой, а с тем, что красивое письмо просто не увидят.
Что забрать себе
- Три записи, в этом порядке: SPF (обычно уже есть), DKIM (чаще всего нет), DMARC (почти никогда нет).
- DMARC начинать с режима наблюдения, ужесточать после того, как DKIM подтверждён проверкой.
- Проверять результат письмом на сервис-автоответчик, а не глазами по документации.
- Если DKIM не включается из панели - это не значит, что его нет. Напишите в поддержку хостинга, обычно это одна заявка.
- Всё вместе занимает час и не стоит ничего. Один этот час решает большую часть вопросов "почему нашу рассылку никто не читает".
Новые разборы - на почту
Разборы задач автоматизации: что автоматизировать, сколько это стоит и что даёт в цифрах. Одно письмо на статью, без рекламы чужих продуктов.


