Если вы когда-нибудь видели кампанию, которая показала 90% в инбоксе Gmail и одновременно 30% в инбоксе Mail.ru с одинаковыми DNS-записями, то вы встретили именно эту проблему. Mail.ru проверяет аутентификацию строже, чем Gmail, и дефолтные настройки, которые работают на Gmail и скопированы из американских гайдов, часто не проходят более жёсткие проверки Mail.ru.
Используйте -all (не ~all) в SPF, подпишите DKIM ключом размером минимум 2048 бит (не 1024) и зарегистрируйте домен в postmaster.mail.ru перед первой массовой отправкой. Эти три шага решают подавляющее большинство проблем с размещением.
Почему Mail.ru проверяет строже, чем Gmail
Mail.ru обрабатывает примерно 42% потребительской почты в России. Поскольку Mail.ru является основной мишенью русскоязычных спам-операций, а репутация ISP зависит от каждого упущенного фишингового письма, Mail.ru исторически настроила более жёсткие требования к аутентификации. Gmail старается минимизировать ложные срабатывания, Mail.ru минимизирует пропуски опасного контента. Три конкретных примера:
- Gmail принимает DKIM-ключи 1024 бит. Mail.ru тоже их принимает, но оценивает как менее надёжные в своём ML-алгоритме.
- Gmail неограниченно терпит SPF
~all. Mail.ru для домена с~allвыставляет значительно более низкий рейтинг репутации, чем для домена с-all. - Gmail прощает переходящие ошибки DKIM-валидации (
tempfail). Mail.ru относитtempfailближе кfail.
SPF-запись
Рабочая SPF-запись для отправителя, использующего свой домен и трансакционный ESP (здесь в примере SendGrid), выглядит так:
; DNS-запись на yourdomain.com
yourdomain.com. IN TXT "v=spf1 ip4:203.0.113.42 include:_spf.google.com include:sendgrid.net -all"
; DNS-запись для поддомена отправки (если вы используете mail.yourdomain.com)
mail.yourdomain.com. IN TXT "v=spf1 include:sendgrid.net -all"Три элемента специально подобраны для Mail.ru. Во-первых, запись заканчивается на -all (жёсткий отказ), а не ~all (мягкий отказ) — Mail.ru рассматривает -all как сигнал доверия. Во-вторых, здесь менее десяти include:-цепочек, чтобы не превысить лимит SPF-запросов. В-третьих, все сервисы отправки перечислены; частая ошибка — обновить ESP, но забыть добавить его в запись.
SPF позволяет максимум десять DNS-запросов при вычислении результата. Каждый include:, mx, a и ptr-механизм считается запросом. Mail.ru строго соблюдает этот лимит — одиннадцать запросов означают permerror, который Mail.ru рассматривает как жёсткий отказ.
DKIM-запись
DKIM для Mail.ru должен быть сгенерирован с минимальным размером ключа 2048 бит. Некоторые ESP по-прежнему используют 1024 по умолчанию — явно запросите 2048 при генерации ключа. Вот как выглядит опубликованная запись:
; DKIM публичный ключ на selector._domainkey.yourdomain.com
s2026._domainkey.yourdomain.com. IN TXT (
"v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA"
"1Kqx8k7vR3FhU0L0nJ4fz2Qm5p6rT8yY9oA1Bc3DdEe"
"... (оставшаяся часть base64-кодированного публичного ключа) ..."
"QIDAQAB"
)Селектор (здесь s2026) произволен, но должен быть коротким и уникальным для каждого ключа подписи. Ротируйте селекторы ежегодно. Если ваш ESP управляет DKIM, используйте селектор, который указывает ESP.
Пошаговая настройка селектора
- Сгенерируйте RSA-пару ключей размером 2048 бит в админке ESP или выполните
opendkim-genkey -b 2048 -s s2026 -d yourdomain.com. - Опубликуйте публичный ключ на адресе
s2026._domainkey.yourdomain.comкак TXT-запись. - Настройте сервер отправки на подпись с соответствующим приватным ключом, используя селектор
s2026и доменyourdomain.com. - Отправьте тестовое письмо на seed-ящик Mail.ru и проверьте заголовки — ищите
Authentication-Results: mx.mail.ru; dkim=pass.
DMARC поверх всего
Mail.ru полностью поддерживает DMARC. Начните с p=none на две недели для сбора отчётов, затем переведите на p=quarantine, и наконец p=reject после того, как убедитесь, что никаких легитимных писем не отклоняется.
; DMARC-запись на _dmarc.yourdomain.com
_dmarc.yourdomain.com. IN TXT "v=DMARC1; p=quarantine; adkim=r; aspf=r; rua=mailto:dmarc@yourdomain.com; ruf=mailto:dmarc@yourdomain.com; pct=100; fo=1"Проверка в postmaster.mail.ru
Mail.ru предоставляет портал постмастера по адресу postmaster.mail.ru, который показывает статистику размещения для каждого домена, количество жалоб, подписку на FBL и разбивку репутации. Это бесплатный портал на русском языке, интерфейс построен в основном на иконках и цифрах.
- Войдите с любым Mail.ru-аккаунтом (это панель, не идентификатор отправки).
- Добавьте домен отправки; проверьте право собственности через TXT-запись.
- Убедитесь, что DKIM-подпись признана (раздел DKIM показывает
Подтверждено). - Подпишитесь на feedback loop — Mail.ru будет отправлять отчёты о жалобах на ваш адрес.
- Отправьте домен на рассмотрение для постмастер-whitelist после 30 дней чистых отправок.
Типичные ошибки и коды ошибок
Mail.ru SMTP-отказы содержат человеко-читаемые коды причин. Это наиболее часто встречаемые отправителями:
550 Message rejected under suspicion of SPAM— ML-классификатор оценил письмо слишком высоко. Обычно это репутация, а не конкретный триггер контента.550 SPF check failed— IP отправки отсутствует ни в одном SPF-механизме вашего From-домена.550 DMARC policy violation— SPF и DKIM оба не выровнены по alignment, и ваша DMARC-политикаp=reject.550 Sender address rejected: Domain not found— DNS-запрос для From-домена не удаётся. Проверьте MX и A-записи.421 Try again later— greylist. Подождите, повторите попытку; настоящие отправители всегда проходят.
Добавление домена в FBL-loop
Feedback loop в postmaster.mail.ru пересылает отчёты о жалобах — каждый раз, когда пользователь Mail.ru нажимает «Это спам» на вашем письме, вы получаете ARF-отчёт на назначенный FBL-адрес.
Подписка — это один клик в панели постмастера после проверки домена. Типичная задержка доставки отчётов о жалобах составляет 4–8 часов. Используйте эти отчёты для подавления жалующихся в течение 24 часов — Mail.ru штрафует отправителей, которые продолжают писать пользователям, подавшим жалобу.
После публикации ваших записей запустите живой seed-тест для Mail.ru — вы увидите распарсенные заголовки SPF / DKIM / DMARC, реальную папку доставки и Mail.ru-специфичный код ML-классификатора, если письмо попало в спам.