DKIM selector: как узнать, где посмотреть и что делать, если запись не найдена
DKIM selector (тег s= в подписи) это имя, по которому приемный сервер ищет публичный ключ в DNS: запись вида selector._domainkey.example.com. Узнать селектор проще всего в заголовке DKIM-Signature любого отправленного письма, затем проверить запись командой dig. Ниже разбираем, где искать селектор, почему возникает ошибка "селектор не найден" и как безопасно менять селекторы.
1. Что такое селектор DKIM и теги d= и s=
Когда ваш сервер или ESP подписывает письмо, он добавляет заголовок DKIM-Signature. В нем два ключевых тега: d= (домен, который отвечает за подпись) и s= (селектор, то есть имя конкретного ключа внутри этого домена). Приемный сервер склеивает их в DNS-имя s._domainkey.d и запрашивает TXT-запись с публичным ключом.
Пример заголовка: DKIM-Signature: v=1; a=rsa-sha256; d=example.ru; s=mail2024; bh=...; b=... Здесь приемник будет искать TXT-запись mail2024._domainkey.example.ru.
| Тег | Что означает |
|---|---|
| d=example.ru | Домен подписи. К нему привязана статистика в Postmaster и выравнивание DMARC |
| s=mail2024 | Селектор: имя ключа. Полное DNS-имя записи: mail2024._domainkey.example.ru |
| a=rsa-sha256 | Алгоритм подписи |
| b=..., bh=... | Сама подпись и хеш тела письма |
Один домен может иметь сколько угодно ключей с разными селекторами. Селектор выбирает отправитель (ваш сервер или ESP), получателю его знать заранее не нужно: он всегда берет s= из заголовка письма.
2. Где посмотреть селектор DKIM в письме
Самый надежный способ узнать свой селектор: открыть любое письмо, отправленное с нужного домена, и посмотреть его исходник. В Gmail: откройте письмо, меню "Показать оригинал", найдите блок DKIM-Signature и тег s=. В Яндекс Почте: меню письма, "Свойства письма". В Mail.ru: "Еще", "Служебные заголовки". В Outlook на десктопе: "Файл", "Свойства", поле "Заголовки Интернета".
Если письмо уже дошло до получателя, там же виден результат проверки в заголовке Authentication-Results: строка вида dkim=pass header.i=@example.ru header.s=mail2024 показывает и домен, и селектор, и итог проверки. Формат этого заголовка описан в RFC 8601.
Ручной разбор заголовков можно заменить инструментом: вставьте полный текст заголовков в анализатор, и он покажет d=, s= и результат DKIM-проверки в читаемом виде.
3. Как проверить DKIM запись по известному селектору
Зная селектор и домен, проверьте DNS-запись напрямую. Команда для Linux или macOS: dig TXT mail2024._domainkey.example.ru +short. Для Windows: nslookup -type=TXT mail2024._domainkey.example.ru.
Корректный ответ выглядит примерно так: "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A...". Тег p= содержит публичный ключ. Если вместо этого приходит NXDOMAIN (такого имени в DNS нет вовсе) или ответ без единой TXT-записи (имя существует, но нужной записи в нем нет), в обоих случаях ключ не опубликован, и DKIM-проверка у получателей будет падать с ошибкой вида "no key for signature".
Проверьте ответ с разных резолверов, чтобы исключить локальный кеш: dig TXT mail2024._domainkey.example.ru @8.8.8.8 и dig ... @1.1.1.1. Если запись только что добавили, подождите истечения TTL предыдущего отрицательного ответа: резолверы кешируют отсутствие записи.
Быстрая альтернатива командной строке: онлайн-проверка DKIM, куда вводятся домен и селектор, либо комплексная проверка DNS домена, где заодно видны SPF, DMARC и MX.
4. Дерево диагностики: DKIM selector не найден, запись не найдена
Ошибка "selector not found" или "no key for signature" означает, что по имени s._domainkey.d нет рабочего ключа. Идите по дереву сверху вниз.
| Симптом | Причина и действие |
|---|---|
| dig возвращает NXDOMAIN | Запись не создана или создана не в той DNS-зоне. Проверьте, что запись добавлена в зону именно домена из d=, а не в зону поддомена |
| Запись есть у 8.8.8.8, но нет у вашего резолвера | Кеш DNS. Подождите TTL или проверяйте через внешние резолверы |
| Ответ есть, но без p= или с p= пустым | Ключ отозван или запись испорчена при копировании. Опубликуйте полный ключ заново |
| Ошибка "key syntax error" | Лишние пробелы, переносы строк или кавычки в значении TXT. Уберите форматирование, оставьте одну строку |
| У провайдера DNS запись видна, в dig нет | Опечатка в имени хоста: часто селектор добавляют с лишним доменом (mail2024._domainkey.example.ru.example.ru) |
| Селектор в письме отличается от созданного | ESP поменял селектор или письмо идет через другой поток. Сверьте s= в свежем письме с кабинетом ESP |
| DKIM pass в заголовках, а Postmaster ругается | Подпись есть, но домен d= не совпадает с доменом From. Это вопрос выравнивания DMARC, а не селектора |
- ✕Запись создана у регистратора, а зона домена делегирована на другие NS (например, на хостинг или CDN). TXT нужно добавлять там, где реально обслуживается зона: сверьте NS домена командой dig NS example.ru +short.
5. Несколько селекторов и ротация ключей
Несколько селекторов на одном домене это норма. Типичные случаи: разные ESP для разных потоков (рассылки через одного провайдера, транзакционные письма через другого), параллельная работа старого и нового ключа при ротации, отдельный ключ для корпоративной почты.
Ротация (смена ключа) делается в четыре шага. Шаг 1: сгенерируйте новую пару ключей и опубликуйте новый селектор в DNS, например k2025._domainkey.example.ru. Шаг 2: убедитесь через dig, что запись отвечает. Шаг 3: переключите отправителя на подпись новым селектором. Шаг 4: держите старую запись еще несколько дней: письма, отправленные до переключения, могут дойти до проверки позже, и если старый ключ уже удален, они получат dkim=fail.
- •Статистика Postmaster привязана к домену d= в подписи, а не к селектору. В PostmastersTool смена селектора не обнуляет историю: доля DKIM-авторизации продолжит считаться по домену. Репутацию домена ротацией сбросить нельзя, и терять ее при смене ключа вы тоже не рискуете.
6. Как проверить DKIM, если селектор неизвестен
Ситуация "как проверить DKIM без селектора" возникает, когда письма настраивал кто-то до вас. Порядок действий такой.
Первое: отправьте тестовое письмо с боевого потока на свой адрес в Gmail или Mail.ru и откройте исходник. Селектор всегда виден в заголовке DKIM-Signature, искать его перебором почти никогда не нужно.
Второе: посмотрите кабинет ESP. В разделе аутентификации домена (название отличается: "DKIM", "Домены", "Отправители") сервис показывает, какой селектор и какую TXT-запись он ожидает. Если запись "не подтверждается", сверьте символ в символ имя хоста и значение: проблема почти всегда в опечатке или в лишнем суффиксе домена, это отмечают и справки ESP.
Третье: посмотрите DMARC-отчеты. В агрегированных XML-отчетах по каждому источнику виден домен подписи dkim и результат; если у части потоков dkim=fail, вы поймете, где искать проблемный селектор.
Четвертое (крайний случай): перебор типовых селекторов через dig. ESP используют предсказуемые имена: google для Google Workspace, selector1 и selector2 для Microsoft 365, mail, k1, s1, dkim и похожие у разных рассыльщиков. Проверка десятка вариантов командой dig TXT имя._domainkey.example.ru +short занимает минуту.
7. Как проверить результат после настройки
Отправьте письмо с каждого потока, который трогали, на адреса в Gmail и Mail.ru. В исходнике письма найдите Authentication-Results: нужна строка dkim=pass с вашим доменом в header.i=. Если там dkim=fail с пометкой "no key for signature" или "bad signature", вернитесь к дереву диагностики из раздела 4.
Затем проверьте агрегатную картину. В Google Postmaster Tools смотрите долю писем, прошедших DKIM: для массовых отправителей Google требует DKIM-подпись как часть требований к отправителям. В PostmastersTool эта доля собирается через API Google Postmaster Tools и Mail.ru Postmaster и хранится по дням, поэтому видно, когда именно DKIM сломался: после смены DNS, смены ESP или ротации ключа.
Разовой проверки мало: DKIM чаще всего ломается незаметно, при правках DNS-зоны. Настройте мониторинг DNS домена и уведомления, чтобы узнавать о пропавшей записи раньше, чем это заметят фильтры получателей.
Что сделать дальше
Проверьте текущее состояние DKIM и настройте контроль на будущее.
- 1Проверить DKIM запись домена
Введите домен и селектор и узнайте, опубликован ли по этому имени рабочий ключ.
Открыть проверку DKIM - 2Разобрать заголовки тестового письма
Вставьте полный исходник письма и увидите d=, s= и результат dkim=pass или fail без ручного поиска.
Анализатор заголовков - 3Поставить DNS домена под мониторинг
PostmastersTool проверяет SPF, DKIM, DMARC, MX и черные списки, а при пересечении порогов присылает уведомление в выбранный канал.
Зарегистрироваться - 4Обсудить аудит настройки
Если DKIM не подтверждается после всех проверок или потоков несколько, закажите аудит: найдем, где цепочка подписи рвется.
Аудит доставляемости