Полезное

DKIM-ключ SMTP

Зачем необходим, как выглядит, как настроить

Что такое DKIM

DKIM (DomainKeys Identified Mail) — технология криптографической подписи email-сообщений. Подпись автоматически добавляет сервер/SMTP-сервис отправки (MTA) в заголовок письма, а почтовый сервер получателя (MTA) и его антиспам-фильтры эту подпись проверяют.

Подпись «привязывает» письмо к домену отправителя и подтверждает, что выбранные заголовки и тело сообщения не были изменены по пути. В DKIM используется пара ключей: приватный (секретный) — для подписи, публичный — для проверки.

Публичный ключ публикуется в DNS в TXT-записи по имени вида <selector>._domainkey.example.com, а приватный ключ хранится на стороне сервиса отправки и используется для вычисления подписи.

Почему DKIM важен в контексте SMTP-сервиса

DKIM напрямую влияет на доставляемость и репутацию домена. Крупные почтовые провайдеры требуют аутентификацию: для массовых отправителей обязательны SPF и DKIM, а также корректно настроенный DMARC — без этого письма чаще попадают в спам или отклоняются.

DKIM критичен для DMARC: если домен в подписи (d=) соответствует домену в From: (либо является его поддоменом — согласно политике DMARC), сообщение проходит DMARC-проверку и реже блокируется.

Из чего состоит и как работает DKIM или при чём тут SMTP

Исходящий почтовый сервер/SMTP-сервис (MTA) формирует заголовок DKIM-Signature и подписывает письмо приватным ключом. В этом заголовке указываются ключевые параметры, включая a= (алгоритм, чаще rsa-sha256), d= (домен), s= (селектор), h= (перечень подписанных заголовков), bh= (хэш тела), b= (подпись); каноникализация задаётся c= (обычно relaxed/relaxed). Принимающий MTA по тегам d= и s= запрашивает из DNS публичный ключ и проверяет подпись; результат фиксируется в Authentication-Results.

Селектор

Селектор — произвольная метка в имени DNS-записи ключа (часть имени хоста), например s1, 2025, mail. Он позволяет держать несколько ключей параллельно и безопасно их ротировать. Публичный ключ публикуется по шаблону: <selector>._domainkey.<домен>.

Длина и алгоритмы ключей

Минимум — RSA 1024 бита; на практике используют RSA 2048 бит как наиболее совместимый вариант. ed25519 определён стандартом, но поддерживается не везде, поэтому RSA-2048 остаётся настройкой по умолчанию.

Пример публичного ключа в DNS

Имя: s1._domainkey.example.com
Тип: TXT
Значение:v=DKIM1;k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAA...QIDAQAB

Как настроить DKIM и «передать» его SMTP-сервису

Есть два типовых сценария:

  1. Сервис генерирует ключи
  • В кабинете SMTP-сервиса создаёте DKIM для домена → он покажет DNS-запись (TXT или CNAME в зависимости от платформы).
  • Вы публикуете запись у своего DNS-провайдера.
  • После распространения DNS сервис начинает подписывать исходящие письма вашим доменом.

2. Вы приносите собственный ключ
  • Вы генерируете пару ключей локально, публикуете публичный ключ в DNS, а приватный — загружаете в SMTP-сервис (если платформа это поддерживает) или используете на своём MTA (opendkim/postfix, exim и т. п.).
  • Сервис/сервер начинает подписывать письма этим ключом. (Общие требования к форматам/алгоритмам и параметрам подписи описаны в RFC 6376/8301.)
Важно: Перед отправкой убедитесь, что письма проходят DKIM.

Отправьте тестовое письмо, откройте письмо, перейдите в оригинал письма. Ищем строку DKIM: PASS и проверяем, что домен в DKIM совпадает с вашим (или его поддоменом). Ниже, в блоке заголовков, найдите Authentication-Results: — там должно быть примерно так:

“Authentication-Results: mx.google.com;
    dkim=pass header.i=@example.com header.s=s1 header.d=example.com header.b=...”
DKIM — базовый «маст-хэв» для любой массовой отправки: он привязывает письмо к вашему домену и напрямую влияет на доставляемость. Раз подключили в SMTP-сервисе — и дальше без вашего участия поддерживает доставляемость и репутацию. Это минимум, который даёт максимум эффекта.
Напишите в поддержку, если нужна помощь.