Что такое DKIM и как он работает
DKIM (DomainKeys Identified Mail) — это стандарт криптографической подписи писем, описанный в RFC 6376. Отправляющий сервер подписывает каждое письмо приватным ключом, а принимающий сервер забирает публичный ключ из DNS и проверяет подпись.
Если подпись валидна — это математическое доказательство, что письмо отправлено с домена, заявленного в подписи, и не было изменено в пути. DKIM защищает от подделки и tampering, в отличие от SPF, который проверяет только IP-адрес отправляющего сервера.
Как DKIM подписывает письмо
Отправляющий сервер вычисляет хеш заголовков и тела письма, затем шифрует его приватным ключом. Подпись добавляется в заголовок `DKIM-Signature`, который содержит селектор, домен подписи (`d=`), алгоритм и сами данные.
Принимающий сервер извлекает селектор и домен из заголовка, делает DNS-запрос к `selector._domainkey.domain.com`, получает публичный ключ и проверяет подпись. Если подпись совпадает — DKIM проходит. Любое изменение тела или подписанных заголовков ломает проверку.
Example DKIM-Signature header:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=example.com; s=google;
h=from:to:subject:date:message-id;
bh=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=;
b=KX5vRn3...truncated...Что такое DKIM-селектор
toolPages.dkimChecker.depth.selector_p1
Example DNS record format:
default._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."Частые ошибки DKIM
Запись DKIM не найдена
Самая частая причина — неправильный селектор. Без знания точного имени селектора DKIM-запись невозможно найти. Проверьте документацию провайдера или используйте автообнаружение Nova Uptime по 50+ распространённым селекторам.
Невалидный синтаксис записи
Минимально валидная запись содержит `p=...` (публичный ключ). Согласно RFC 6376, `v=DKIM1` рекомендован, но не обязателен. Проблемы возникают, когда запись разбита на несколько TXT-фрагментов без склейки или содержит пробелы внутри ключа.
Слабая длина ключа
Ключи короче 1024 бит считаются небезопасными в 2026 году. Используйте 2048-битные ключи. Многие почтовые провайдеры по умолчанию выдают 1024-битные — пересоздайте их.
Неверный синтаксис при добавлении в DNS
Многие DNS-панели разбивают длинные значения на части. Для DKIM это критично — каждая часть должна быть в кавычках, а склейка происходит на уровне DNS-сервера. Cloudflare и Route53 справляются автоматически, GoDaddy и Namecheap — нет.
Отсутствие ротации ключей
DKIM-ключи должны ротироваться минимум раз в год. Большинство команд настраивают их единожды и забывают на 5 лет. Рекомендуется иметь два активных селектора и переключаться между ними.
Настройка DKIM за 5 шагов
- 1
Шаг 1. Сгенерируйте пару ключей
Большинство почтовых провайдеров генерируют ключ автоматически — Google, Microsoft 365, SendGrid, Mailgun. Для самостоятельной настройки используйте OpenSSL: `openssl genrsa -out private.key 2048 && openssl rsa -in private.key -pubout -out public.key`.
- 2
Шаг 2. Опубликуйте публичный ключ в DNS
Создайте TXT-запись по адресу `selector._domainkey.yourdomain.com` со значением `v=DKIM1; k=rsa; p=ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ`. Селектор выбирайте сами или используйте рекомендованный провайдером.
- 3
Шаг 3. Настройте отправляющий сервер
Загрузите приватный ключ в почтовый сервер или передайте провайдеру. Большинство провайдеров (SendGrid, Mailgun, Postmark) хранят ключ у себя — вам нужно только опубликовать публичную часть в DNS.
- 4
Шаг 4. Подождите распространения DNS
Изменения DNS обычно распространяются за 5–30 минут, но полная пропагация может занять до 24 часов. Используйте `dig +short TXT selector._domainkey.yourdomain.com` для проверки актуального значения.
- 5
Шаг 5. Протестируйте подпись
Отправьте тестовое письмо на адрес вроде check-auth@verifier.port25.com или используйте бесплатный DKIM-чекер Nova Uptime. Убедитесь, что подпись валидна и не выдаёт ошибок алгоритма или ключа.
DKIM у популярных провайдеров
У каждого провайдера свои селекторы и формат публикации. Ниже — основные:
**Google Workspace** — селектор `google`. Сгенерируйте ключ в Admin Console → Apps → Gmail → Authenticate email.**Microsoft 365** — селекторы `selector1` и `selector2`. Включите DKIM в Microsoft Defender для домена.**SendGrid** — два селектора `s1` и `s2` (для ротации). Настраивается через Sender Authentication → Authenticate Your Domain.**Mailgun** — селекторы `mx`, `mta`, `pic` или собственные. Настройка через Domain Verification.**Postmark** — селектор `20240101pm` (формат `YYYYMMDDpm`). Автоматическая настройка через Domain Settings.**Mailchimp** — селекторы `k1`, `k2`, `k3`. Поддерживается с 2014 года, настраивается в Account → Settings → Domains.**Mandrill** — селектор `mandrill`. Используется тот же ключ, что и в Mailchimp.**Zoho Mail** — селекторы `zoho`, `s1` или `s2`. Настройка через Mail Admin Console.**Constant Contact** — селектор `constantcontact`. Настройка через Account Settings → Authentication.**ConvertKit** — селектор `cm` или собственный. Настройка через Account → Domains.**Mailjet** — селектор `mailjet`. Настройка через Sender Domains → DNS Settings.**Brevo (Sendinblue)** — селектор `mail`. Настройка через Senders & IPs → Domains.
Если вы не уверены, какой селектор у вас, используйте автообнаружение Nova Uptime — оно сканирует 50+ распространённых селекторов и находит настроенные ключи за секунды.
DKIM в 2026: что изменилось
С февраля 2026 Gmail и Yahoo требуют DKIM для всех массовых отправителей (5 000+ писем в день). Без DKIM письма попадают в спам или отбрасываются. Кроме того, новые требования Microsoft 365 (с конца 2025) и приближающиеся стандарты от Apple Mail делают DKIM не опцией, а обязательным элементом инфраструктуры.