Проверка SPF / DKIM / DMARC / MX

Введите домен, чтобы увидеть его почтовые серверы MX, запись SPF с раскрытой цепочкой include:, и политику DMARC — а также опциональную проверку DKIM по селектору — всё резолвится live через DNS, без регистрации и API-ключа.

Нет селектора? Популярные варианты:

Проверка SPF / DKIM / DMARC / MX

Аутентификация почты существует потому, что SMTP, протокол на котором работает почта, не имеет встроенного способа доказать, кто на самом деле отправил сообщение — любой может указать любой адрес «От кого» в исходящем письме. SPF, DKIM и DMARC — три отдельные политики, публикуемые через DNS, которые вместе позволяют принимающему почтовому серверу проверить легитимность сообщения: SPF перечисляет, каким серверам разрешено отправлять почту от имени домена, DKIM криптографически подписывает исходящую почту, чтобы её нельзя было изменить в пути, а DMARC говорит получателям, что делать, если сообщение не прошло одну из проверок, и куда отправлять отчёты о сбоях. Домен без этих настроек легко подделать; домен, где все три настроены правильно, — тот, который сложно имитировать злоумышленникам.

SPF (Sender Policy Framework) — это одна TXT-запись DNS, начинающаяся с «v=spf1», которая перечисляет механизмы — ip4:/ip6: для явных диапазонов адресов, include: для делегирования на собственную SPF-запись другого домена (часто используется со сторонними отправителями вроде маркетинговых платформ), a/mx для авторизации хостов, резолвящихся из A/MX-записей самого домена, и финальный механизм «all», чей квалификатор (-, ~, ?, или его отсутствие) решает, что происходит с почтой из неуказанного источника: -all жёстко отклоняет её, ~all мягко отклоняет, а голое «all» или отсутствие «all» вовсе фактически разрешает всё. Этот инструмент рекурсивно раскрывает каждый include:, показывая полное дерево диапазонов, которые реально авторизует SPF-запись домена — одна запись верхнего уровня может скрывать длинную цепочку делегированных отправителей. RFC 7208 также ограничивает число DNS-запросных механизмов (include/a/mx/ptr/exists, плюс модификатор redirect), которые совместимый обработчик SPF выполнит, десятью; превышение делает ВСЮ запись недействительной на реальных почтовых серверах — на удивление частая ошибка конфигурации, которую этот инструмент явно отмечает.

DMARC дополняет SPF и DKIM, а не заменяет их: публикуется как TXT-запись по адресу _dmarc.<домен>, её тег p= задаёт политику для самого домена (none/quarantine/reject), sp= опционально переопределяет её для поддоменов, pct= позволяет постепенно включать применение политики, а rua=/ruf= указывают адреса, куда приходят агрегированные/форензик-отчёты о сбоях — единственная реальная обратная связь, которую владелец домена получает о том, как его домен используется (или используется во зло) в более широкой почтовой экосистеме. Домен с настроенными SPF и DKIM, но без записи DMARC, всё ещё оставляет получателям решать в одностороннем порядке, что делать с не прошедшим проверку сообщением.

DKIM отличается от двух остальных: невозможно узнать селектор(ы) DKIM домена напрямую через DNS-запрос — селектор это произвольная метка, выбранная тем, кто настраивал исходящую почту, и публикуется только как часть имени самой записи (<селектор>._domainkey.<домен>). Этот инструмент никогда не угадывает и не перебирает селекторы автоматически — массовый перебор — это поведение сканера/энумератора, а не то, что должен делать бесплатный, дружелюбный к DNS инструмент без явного запроса. Введите уже известный вам селектор (посмотрите тег s= в заголовке «DKIM-Signature» письма), либо попробуйте один из распространённых селекторов провайдеров, которые подсказывает страница (google, selector1/selector2 для Microsoft 365, k1 для Mailchimp/Mandrill, default, dkim) — каждый из них лишь текстовая подсказка, заполняющая поле ввода, а не автоматический фоновый запрос.

Этот инструмент работает строго через DNS: он читает записи MX, SPF, DMARC и (опционально) одну запись DKIM TXT — и ничего больше. Он не подключается ни к какому почтовому серверу, не отправляет тестовое письмо и не выполняет рукопожатие SMTP — это было бы исходящее TCP-подключение, которое этот инструмент намеренно не делает (полноценная проверка «доставляемости» — отдельная, более тяжёлая возможность, отслеживаемая отдельно).

Как пользоваться проверкой

  1. Введите домен

    Введите домен, который хотите проверить, например example.com — не полный email-адрес.

  2. Опционально добавьте селектор DKIM

    Если вы знаете селектор DKIM (или хотите попробовать распространённый), введите его — DKIM проверяется только если селектор указан.

  3. Проверить домен

    Нажмите «Проверить домен», чтобы резолвить MX, SPF (со всеми раскрытыми include:) и DMARC live через DNS.

  4. Изучите результаты

    Каждый раздел показывает, что было найдено, либо честное «не найдено» — отсутствующая запись это нормальный результат, а не ошибка.

Глоссарий

SPF
Sender Policy Framework — TXT-запись DNS, перечисляющая, каким почтовым серверам разрешено отправлять почту от имени домена.
DKIM
DomainKeys Identified Mail — криптографическая подпись, добавляемая к исходящей почте, проверяемая по публичному ключу, опубликованному в DNS по имени, специфичному для селектора.
DMARC
Политика в DNS, которая говорит принимающим почтовым серверам, что делать с почтой, не прошедшей SPF или DKIM, и куда отправлять отчёты о сбоях.
Запись MX
Перечисляет почтовые серверы, отвечающие за приём почты для домена, каждый с числовым приоритетом — сначала пробуются меньшие значения.
SPF include:
Механизм SPF, делегирующий на собственную SPF-запись другого домена — часто используется, когда домен пользуется сторонним отправителем.
Селектор DKIM
Произвольная метка, выбранная тем, кто настраивал исходящую почту, входящая в DNS-имя записи DKIM — её нельзя обнаружить, не зная заранее.

Эквивалент через API

Эта страница под капотом вызывает наш собственный публичный tools-эндпоинт — вы можете вызвать тот же эндпоинт напрямую, без авторизации, с учётом лимита запросов на клиента. `selector` опционален; при его отсутствии поле dkim полностью отсутствует в ответе:

curl
curl "https://ip.xakki.pro/api/v1/tools/mail?domain=example.com&selector=google"

Пример ответа:

{
  "domain": "example.com",
  "mx": [{"host": "mail.example.com", "priority": 10}],
  "spf": {
    "found": true,
    "record": "v=spf1 include:_spf.example.com -all",
    "includes": [{"host": "_spf.example.com", "ip4": ["1.2.3.0/24"]}],
    "lookupCount": 2,
    "spfLookupLimitExceeded": false
  },
  "dmarc": {"found": true, "policy": "reject", "pct": 100},
  "dkim": {"selector": "google", "found": true}
}

Читать полную документацию API

Часто задаваемые вопросы

Почему инструмент не находит мою запись DKIM автоматически?
Селекторы DKIM нигде не публикуются, кроме как в составе DNS-имени самой записи, и обратного поиска для них не существует. Автоматический перебор десятков селекторов на каждый клик превратил бы бесплатный инструмент в сканер для перебора доменов — вместо этого введите уже известный вам селектор либо попробуйте один из распространённых вариантов провайдеров, которые подсказывает страница.
Что значит «превышен лимит запросов SPF»?
RFC 7208 ограничивает число DNS-запросных механизмов (include/a/mx/ptr/exists, плюс модификатор redirect), которые совместимый почтовый сервер выполнит при проверке SPF, до десяти. Превышение делает всю SPF-запись недействительной на реальных почтовых серверах — не частичный проход, а полный сбой — поэтому инструмент явно отмечает это, а не просто показывает сырую цепочку.
Отправляет ли этот инструмент тестовое письмо или подключается к моему почтовому серверу?
Нет — он только читает записи DNS (MX, SPF, DMARC и опционально одну запись DKIM). Он никогда не открывает SMTP-соединение, не отправляет почту и никак иначе не обращается напрямую к вашему почтовому серверу.
Почему у моего домена показано больше одной записи SPF?
Публикация более одной TXT-записи v=spf1 — реальная и довольно частая ошибка конфигурации: принимающие почтовые серверы обязаны считать несколько SPF-записей постоянным сбоем SPF, даже если каждая отдельная запись выглядит корректной сама по себе. Вместо этого объедините их в одну запись.
Является ли отсутствие записи DMARC ошибкой?
Нет — многие домены просто ещё не опубликовали её. Инструмент сообщает об этом как о нормальном результате «не найдено», а не как о сбое, хотя отсутствие записи DMARC означает, что принимающие почтовые серверы сами решают, что делать с почтой, не прошедшей SPF или DKIM для вашего домена.
Есть ли лимит запросов у этого инструмента?
Да — эта страница и её API-эндпоинт используют общий лимит запросов бесплатной полосы tools на клиента, независимо от суточной квоты нашего основного API поиска IP. Если вам нужен больший объём или программный доступ, наша документация API описывает платные тарифы.

Понравился инструмент? Бесплатный аккаунт нашего API даёт 1000 запросов в день.Смотреть документацию API →