Mailgun диагностика: от DNS до репутации домена
Если письма через Mailgun уходят в спам или пропадают после статуса delivered, причина чаще всего в одном из четырех мест: DNS-аутентификация домена, Return-Path, репутация домена у провайдеров или общий IP-пул. Ниже: дерево диагностики по шагам, команды dig, разбор логов Mailgun и пороги жалоб Gmail и Mail.ru.
1. Симптомы и дерево диагностики
Начинайте с симптома, а не с настроек. Зафиксируйте, у какого провайдера и после чего возникла проблема: это сократит проверку до одного-двух шагов. Таблица связывает частые ситуации с точкой входа.
| Симптом | С чего начать |
|---|---|
| Письма Gmail в спаме, открываемость упала | Google Postmaster Tools: репутация домена, доля жалоб, доли SPF/DKIM/DMARC |
| Mailgun пишет delivered, но получатель письма не видит | Заголовки доставленного письма, папки Промо и Соцсети, suppression-список |
| Отказы 550 с упоминанием SPF, DKIM или DMARC | DNS-записи отправляющего домена, dig-проверки |
| Проблемы только у части получателей или одного провайдера | IP отправки в логах Mailgun, черные списки, пороги жалоб провайдера |
| Резкое падение доставленных после изменений на домене | История DNS-изменений, кеши записей, CNAME трекинга |
2. Шаг 1: проверка SPF, DKIM и DMARC
Mailgun подписывает письма DKIM-подписью домена, который вы добавили и подтвердили в аккаунте. Но записи публикуете вы: SPF через include в своей зоне, DKIM как TXT-запись на селекторе из настроек домена Mailgun. Проверяйте из консоли: dig TXT mg.example.com +short (SPF), dig TXT <селектор>._domainkey.mg.example.com +short (DKIM), dig TXT _dmarc.example.com +short (DMARC). SPF-запись на домене должна быть одна: две записи одного имени дают permerror.
| Запись | Ожидаемое значение |
|---|---|
| SPF (TXT на mg.example.com) | v=spf1 include:mailgun.org ~all |
| DKIM (TXT на селекторе из панели Mailgun) | k=rsa; p=<открытый ключ> |
| DMARC (TXT на _dmarc.example.com) | v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com |
Настройка DMARC для Mailgun сводится к публикации записи на _dmarc вашего домена: у самого Mailgun включать нечего, подпись DKIM он уже ставит. Начинайте с p=none и тега rua: aggregate-отчеты покажут все источники, которые отправляют письма от вашего домена, и проходят ли они SPF и DKIM. PostmastersTool принимает такие отчеты и раскладывает их по доменам и источникам отправки. История статистики Postmaster при смене селектора не обрывается: она привязана к d= домену подписи, а не к s=.
Если From на основном домене (example.com), а в Mailgun добавлен поддомен mg.example.com, подпись DKIM будет с d=mg.example.com. При политике DMARC relaxed, которая используется по умолчанию, этого достаточно: совпадает организационный домен. При strict потребуется точное совпадение d= с доменом From.
- ✕Две SPF-записи на одном домене, например после добавления другого сервиса: проверка дает permerror
- ✕Ключ DKIM удален при ротации или переносе зоны: подпись ломается у всех писем
- ✕В записи DMARC опечатка в тегах: v=DMARC1 должен идти первым
3. Шаг 2: Return-Path и выравнивание
Return-Path (envelope from) определяет, куда приходят отказы доставки, и по домену из Return-Path проверяется SPF. Жалобы получателей на спам поступают отправителю через отдельный feedback loop провайдера, а не на адрес из Return-Path. Mailgun размещает Return-Path на домене, который вы добавили и подтвердили в аккаунте. Если Return-Path и From лежат в одном организационном домене, SPF проходит relaxed-выравнивание DMARC.
Что проверить: статус верификации домена в панели Mailgun (все записи подтверждены), запись CNAME для трекинга кликов и переходов по ссылкам (в панели по умолчанию указывает на mailgun.org, у аккаунтов EU-региона значение отличается и показывается там же; к SPF и DKIM эта запись отношения не имеет) и строку Authentication-Results в доставленном письме: spf=pass должно стоять для домена из Return-Path.
- •В событии accepted в логах Mailgun: поле envelope sender
- •В заголовках письма: строка Return-Path в самом верху
- •В бесплатном анализаторе заголовков PostmastersTool: разбор идет в браузере, письмо никуда пересылать не нужно
4. Шаг 3: delivered есть, а письма нет
Событие delivered в логах Mailgun означает, что сервер получателя ответил кодом 250 и принял сообщение. Куда его положить, сервер решает уже после приема: спам, Промо, Соцсети или правило пользователя. Поэтому delivered фиксирует факт приема, а не доставку во входящие.
Порядок разбора: 1) попросите получателя поискать письмо по всем папкам и переслать его как вложение; 2) прогоните заголовки через анализатор и посмотрите Authentication-Results и вердикт фильтра; 3) проверьте suppression-списки Mailgun: отписки, жалобы и отскоки блокируют отправку; 4) сравните провайдеров: если проблема только у Gmail, переходите к разделу о репутации, если у Mail.ru, к порогам жалоб.
Рядом в логах смотрите события failed: коды 4xx означают временные ограничения, Mailgun повторяет доставку автоматически; 5xx это постоянные отказы, в тексте ответа сервера будет причина.
- ✕Письмо может лежать в спаме, Промо или под правилом получателя
- ✕Оценивайте не один ящик, а выборку по провайдерам и доменам
- ✕Систематически низкое размещение видно по данным Postmaster Tools, а не по одному письму
5. Шаг 4: репутация домена и доля жалоб
Сам Mailgun не показывает репутацию вашего домена у Gmail. Метрику Low или Bad смотрите в Google Postmaster Tools: при такой репутации письма уходят в спам даже при проходящих SPF, DKIM и DMARC. Типичные причины: доля жалоб выше порога, резкий рост объемов, отправка по старой или несогласованной базе.
Репутацию домена и IP API v2 Google Postmaster Tools не отдает, но отдает долю жалоб, доли SPF/DKIM/DMARC и соответствие требованиям Google. Отправителям от 5000 писем в день Gmail требует и DMARC-запись. PostmastersTool собирает эти метрики по API, хранит историю по дням и присылает уведомление при пересечении порога: для Gmail ориентир 0,1% жалоб, предел 0,3%.
У Mail.ru порог зависит от объема отправок в месяц: справка технических требований задает его явно.
| Объем писем в месяц | Порог доли жалоб Mail.ru |
|---|---|
| до 10 000 | не выше 1,1% |
| до 500 000 | не выше 1% |
| до 10 000 000 | не выше 0,8% |
| до 50 000 000 | не выше 0,5% |
| свыше 50 000 000 | не выше 0,3% |
В кабинете Mail.ru Postmaster есть показатель Репутация (%): это средний процент жалоб за 30 дней, чем меньше, тем лучше. PostmastersTool забирает его вместе с объемами, доставкой и жалобами и показывает в одной панели рядом с Gmail. Рост жалоб у Mail.ru чаще всего останавливается чисткой suppression-списка и снижением частоты кампаний.
6. Шаг 5: общий IP и черные списки
Если аутентификация и репутация домена в норме, проверьте адрес отправки. По умолчанию Mailgun использует общие IP: ими одновременно отправляют другие клиенты сервиса, и репутация адреса зависит от всех сразу. В логах Mailgun для каждого письма виден IP отправки: возьмите его и проверьте в основных черных списках.
При попадании в лист запросите удаление по процедуре самого листа и параллельно снизьте объемы. Если отправки стабильные и крупные, обсудите с Mailgun выделенный IP и его прогрев: собственный адрес дает собственную репутацию, но репутацию домена он не чинит. Переезд на новый IP при слабом домене проблему не решает.
- ✕Чистый IP не гарантирует входящих: решает связка домен плюс IP плюс жалобы
- ✕Черные списки это симптом: листы реагируют на жалобы и спам-ловушки, а не на сам Mailgun
7. Альтернативные причины и ограничения
Когда технический уровень чист, причина часто вне Mailgun: контент и ссылки письма, база без подтвержденных согласий, пересылка писем между доменами (ломает SPF без ARC), а также сбои самого сервиса: статус Mailgun публикуется на официальной странице. Отдельно учитывайте вкладку Промоакции у Gmail: письма попадают туда не из-за ошибок аутентификации, а из-за классификации содержимого.
- •Домены в ссылках письма: свежие домены и цепочки редиректов
- •Долю неактивных адресов в базе и частоту касаний
- •Пересылку внутри компании: поддержку ARC на стороне пересыльщика
- •Страницу статуса Mailgun, если письма не принимаются вовсе
8. Как проверить результат
После исправлений пройдите по контрольному набору и повторите его через 48 часов: записи в DNS обновляются не мгновенно.
| Проверка | Ожидаемый результат |
|---|---|
| dig TXT mg.example.com | одна SPF-запись с include:mailgun.org |
| dig TXT <селектор>._domainkey.mg.example.com | значение совпадает с панелью Mailgun |
| Заголовки доставленного письма | spf=pass, dkim=pass с d= вашего домена, dmarc=pass |
| Логи Mailgun за 48 часов | нет failed с кодами 5xx, жалобы в норме |
| Postmaster Tools Gmail и Mail.ru | доли аутентификации близки к 100%, жалобы ниже порога |
Разбор заголовков делайте в бесплатном анализаторе PostmastersTool: он показывает Return-Path и результаты SPF, DKIM и DMARC целиком. Мониторинг порогов по Gmail и Mail.ru сервис берет на себя: уведомления приходят в Telegram, на почту или другой выбранный канал.
Что сделать дальше
Пройдите диагностику до конца: от бесплатных проверок до аудита с экспертом.
- 1Проверить домен
Бесплатная проверка SPF, DKIM, DMARC, MX и черных списков для отправляющего домена Mailgun.
Проверить домен - 2Разобрать заголовки письма
Анализатор покажет Return-Path и результаты SPF, DKIM и DMARC, разбор идет в браузере.
Открыть анализатор - 3Обсудить аудит
Если после проверок письма все еще в спаме, аудит доставляемости найдет причину по данным провайдеров и логам.
Обсудить аудит