Назад к словарю

DKIM-подпись

Что такое DKIM простыми словами, как добавить запись в DNS, проверить подпись в заголовках и выбрать длину ключа. + 6 ошибок, из-за которых DKIM не проходит.

DKIM (DomainKeys Identified Mail) — цифровая подпись, которую почтовый сервер добавляет к каждому письму. Открытый ключ публикуется в DNS домена, и сервер получателя проверяет по нему, что письмо отправлено с вашего домена и не изменено в пути. Gmail требует DKIM от всех, кто отправляет более 5 000 писем в день.

Ниже — пошаговая настройка и шесть ошибок, из-за которых запись в DNS есть, а DKIM всё равно не проходит. У каждой — признак в заголовках и способ исправить.

Коротко: DKIM в цифрах

ФактЗначениеИсточник
СтандартRFC 6376, 2011IETF
Минимальная длина RSA-ключа1 024 бита, рекомендуется 2 048RFC 8301, 2018
Требование Gmail к ключуне короче 1 024 бит, предпочтительно 2 048Google, 2024
Когда DKIM обязателен в Gmail и Outlookот 5 000 писем в деньGoogle, dmarcian
По какому домену строится статистика Постмастера Mail.ruпо домену из DKIM-подписи (тег d=)Mail.ru

Как работает DKIM-подпись

DKIM работает на паре ключей: закрытый хранится на почтовом сервере, открытый — в DNS.

  1. Сервер отправителя считает хеш тела письма и выбранных заголовков (From, Subject, Date).
  2. Подписывает его закрытым ключом и добавляет заголовок DKIM-Signature с доменом (d=) и селектором (s=).
  3. Сервер получателя берёт открытый ключ по адресу селектор._domainkey.домен.
  4. Проверяет подпись. Если письмо изменили в пути или ключ не подходит — результат fail.

Главное отличие от SPF: DKIM переживает пересылку. SPF проверяет IP сервера, и при пересылке он меняется. Подпись DKIM остаётся в письме, пока его содержимое не изменено.

Из чего состоит DKIM-запись и DKIM-подпись

Запись в DNS — это TXT на поддомене селектор._domainkey:

mail._domainkey.company.ru TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."

Подпись в письме — заголовок с набором тегов:

ТегГдеЧто означает
v=DKIM 1DNSВерсия записи
k=rsaDNSАлгоритм ключа
p=DNSОткрытый ключ; пустое значение означает, что ключ отозван
d=ПисьмоДомен, который подписал письмо
s=ПисьмоСелектор: по нему ищется ключ в DNS
h=ПисьмоПодписанные заголовки
bh= / b=ПисьмоХеш тела и сама подпись

Как настроить DKIM для домена

Настройка занимает 10–15 минут плюс время на обновление DNS.

  1. Сгенерируйте ключ в админ-панели почтового сервиса (Яндекс 360, VK WorkSpace, Google Workspace, Microsoft 365) или сервиса рассылок. Выбирайте 2 048 бит, если есть выбор.
  2. Скопируйте хост и значение TXT-записи целиком, без переносов строк.
  3. Добавьте TXT-запись в DNS: хост вида mail._domainkey, значение v=DKIM1; k=rsa; p=....
  4. Включите подпись в панели почтового сервиса после того, как запись обновилась. Во многих сервисах это отдельная кнопка.
  5. Проверьте результат — см. раздел ниже.

Если письма отправляют несколько сервисов, у каждого будет свой селектор и своя DKIM-запись. В отличие от SPF, их можно иметь сколько угодно.

В Holymailer DKIM вместе с SPF, DMARC и MX настраивается автоматически для каждого домена и проверяется ежедневно.

Как проверить DKIM-подпись

Отправьте письмо на Gmail или Mail.ru и откройте заголовки. Ищите строку Authentication-Results:

Authentication-Results: mx.google.com; dkim=pass header.d=company.ru header.s=mail; spf=pass smtp.mailfrom=company.ru; dmarc=pass header.from=company.ru

Проверяйте две вещи: dkim=pass и что header.d совпадает с доменом в поле «От». Чтобы убедиться, что ключ опубликован, выполните dig TXT mail._domainkey.company.ru +short. Ту же проверку описывает справка Mail.ru.

6 ошибок, из-за которых DKIM не проходит

Запись в DNS есть — ещё не значит, что DKIM работает. Вот что ломается чаще всего.

#ОшибкаПризнак в заголовкахКак исправить
1Запись опубликована, но подпись не включена в почтовом сервисеdkim=none или нет заголовка DKIM-SignatureНажать «Включить подпись» в админ-панели
2Ключ обрезан или испорчен при копировании: пробелы, переносы, лишние кавычкиdkim=fail или permerrorСкопировать ключ заново; длинный ключ разбить на строки по 255 символов, если так требует DNS-провайдер
3Неверный хост: панель DNS сама дописала домен, и получилось mail._domainkey.company.ru.compan y.rudkim=temperro r или permerror с пометкой «no key for signature»Указать в хосте только mail._domainke y
4Домен в d= не совпадает с доменом в поле «От»dkim=pass, но dmarc=failНастроить подпись своим доменом в сервисе рассылок
5Письма подписывает домен сервиса рассылок, а не вашheader.d= с чужим доменомПодключить собственный DKIM. Иначе репутация и статистика Постмастера Mail.ru уходят домену сервиса
6Короткий ключ: 512 или 768 битdkim=fail или «policy (weak key)» в GmailСгенерировать новый ключ на 2 048 бит

Если DKIM проходит, а письма всё равно в спаме, причина уже не в аутентификации. Пройдите диагностику доставляемости за 15 минут и проверьте, прогрет ли ящик.

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

Что такое DKIM простыми словами?

Это цифровая подпись письма. Она доказывает получателю, что письмо отправлено с вашего домена и никто не изменил его по дороге.

Чем DKIM отличается от SPF?

SPF проверяет, с какого сервера пришло письмо. DKIM проверяет само письмо через подпись и поэтому сохраняется при пересылке. Нужны оба механизма.

Какую длину ключа DKIM выбрать: 1024 или 2048?

2 048 бит. RFC 8301 требует не меньше 1 024 и рекомендует 2 048, Google также советует 2 048, если DNS-провайдер его поддерживает.

Почему DKIM проходит, а DMARC — нет?

Письмо подписано доменом, который не совпадает с доменом в поле «От». Чаще всего это домен сервиса рассылок. Настройте подпись собственным доменом.

Почему DKIM ломается при пересылке?

Подпись ломается, если промежуточный сервер изменил письмо: добавил футер антивируса, переписал тему или ссылки. При обычной пересылке без изменений подпись сохраняется.

Можно ли иметь несколько DKIM-записей на одном домене?

Да. У каждого сервиса свой селектор, например mail._domainkey для почты и crm._domainkey для CRM, и записи не конфликтуют.

Источники

Разметка JSON-LD

{ "@context": "https://schema.org", "@graph": [ { "@type": "Article", "headline": "DKIM-подпись: настройка, проверка и 6 частых ошибок", "author": {"@type": "Person", "name": "[Имя автора]", "jobTitle": "[Должность]"}, "datePublished": "2026-09-30", "dateModified": "2026-09-30", "publisher": {"@type": "Organization", "name": "Holymailer", "url": "https://holymailer.com"} }, { "@type": "HowTo", "name": "Как настроить DKIM для домена", "step": [ {"@type": "HowToStep", "text": "Сгенерируйте ключ 2048 бит в админ-панели почтового сервиса."}, {"@type": "HowToStep", "text": "Скопируйте хост и значение TXT-записи целиком."}, {"@type": "HowToStep", "text": "Добавьте TXT-запись с хостом вида mail._domainkey в DNS."}, {"@type": "HowToStep", "text": "Включите подпись в панели почтового сервиса."}, {"@type": "HowToStep", "text": "Проверьте dkim=pass и совпадение header.d с доменом отправителя в заголовках тестового письма."} ] }, { "@type": "FAQPage", "mainEntity": [ {"@type": "Question", "name": "Что такое DKIM простыми словами?", "acceptedAnswer": {"@type": "Answer", "text": "Это цифровая подпись письма. Она доказывает получателю, что письмо отправлено с вашего домена и никто не изменил его по дороге."}}, {"@type": "Question", "name": "Чем DKIM отличается от SPF?", "acceptedAnswer": {"@type": "Answer", "text": "SPF проверяет, с какого сервера пришло письмо. DKIM проверяет само письмо через подпись и поэтому сохраняется при пересылке."}}, {"@type": "Question", "name": "Какую длину ключа DKIM выбрать: 1024 или 2048?", "acceptedAnswer": {"@type": "Answer", "text": "2048 бит. RFC 8301 требует не меньше 1024 и рекомендует 2048, Google также советует 2048."}}, {"@type": "Question", "name": "Почему DKIM проходит, а DMARC — нет?", "acceptedAnswer": {"@type": "Answer", "text": "Письмо подписано доменом, который не совпадает с доменом в поле «От», чаще всего доменом сервиса рассылок. Настройте подпись собственным доменом."}}, {"@type": "Question", "name": "Почему DKIM ломается при пересылке?", "acceptedAnswer": {"@type": "Answer", "text": "Подпись ломается, если промежуточный сервер изменил письмо: добавил футер, переписал тему или ссылки. При пересылке без изменений подпись сохраняется."}}, {"@type": "Question", "name": "Можно ли иметь несколько DKIM-записей на одном домене?", "acceptedAnswer": {"@type": "Answer", "text": "Да. У каждого сервиса свой селектор, например mail._domainkey и crm._domainkey, и записи не конфликтуют."}} ] } ] }