Проверка DKIM TXT-записи по домену и селектору
DKIM (DomainKeys Identified Mail) — метод аутентификации электронной почты, позволяющий получателю убедиться, что письмо действительно отправлено с данного домена и не было изменено в процессе доставки. Отправляющий сервер подписывает заголовки и тело письма приватным ключом, а получатель верифицирует подпись по публичному ключу из DNS.
При отправке письма почтовый сервер вычисляет криптографическую подпись по выбранным заголовкам (обычно From, To, Subject, Date) и телу письма, используя приватный ключ. Подпись помещается в заголовок DKIM-Signature вместе со списком подписанных полей (h=), алгоритмом (a=rsa-sha256) и селектором (s=). Принимающий сервер извлекает селектор и домен из заголовка, формирует DNS-имя вида {селектор}._domainkey.{домен}, запрашивает у него TXT-запись с публичным ключом и проверяет подпись. Если хеш заголовков и тела совпадает с тем, что зашифровано в подписи — письмо не было изменено в пути, и DKIM-проверка проходит (dkim=pass в заголовке Authentication-Results).
DKIM решает только одну задачу — подтверждает целостность письма и его связь с доменом подписи. Он не проверяет, с какого IP отправлено письмо (это делает SPF) и не задаёт политику для получателя при провале проверок (это делает DMARC). Полноценная защита домена от подделки писем требует всех трёх механизмов одновременно: SPF ограничивает список серверов, имеющих право отправлять почту от имени домена, DKIM подтверждает подлинность содержимого, а DMARC связывает результаты SPF и DKIM с доменом в заголовке From и указывает получателю, что делать с письмом, не прошедшим проверку (принять, поместить в спам или отклонить). Крупные почтовые провайдеры — Gmail и Yahoo — с 2024 года требуют настроенных SPF, DKIM и DMARC для доменов, отправляющих более 5000 писем в день.
Публичный ключ DKIM почти всегда генерируется на стороне почтового сервиса (Google Workspace, Microsoft 365, Яндекс 360, собственный сервер на Postfix/OpenDKIM) — вручную придумывать пару ключей не нужно, сервис сам предоставит готовую строку для TXT-записи и укажет имя селектора. Задача администратора — правильно перенести эту запись в DNS-зону домена под именем {селектор}._domainkey и подождать распространения (обычно от нескольких минут до нескольких часов в зависимости от TTL). После добавления стоит отправить тестовое письмо на любой ящик Gmail и посмотреть заголовок Authentication-Results в исходном коде письма — там будет явно указано dkim=pass или dkim=fail с причиной ошибки, либо воспользоваться данным инструментом, указав домен и селектор напрямую.
Селектор — метка, позволяющая использовать несколько DKIM-ключей для одного домена. Он указывается в заголовке письма DKIM-Signature в поле s=. Найти его можно в исходнике любого письма от этого домена. Частые: google, default, mail, s1, selector1/selector2 (Microsoft 365), k1 (Mailchimp).
Минимум 1024 бита, рекомендуется 2048. Ключи 512 бит считаются небезопасными с 2012 года. Современные ESP (Google Workspace, Microsoft 365) используют 2048-битные ключи. Ed25519 обеспечивает эквивалентную безопасность при значительно меньшей длине.
DKIM — только один из факторов. Проверьте также SPF-запись и DMARC. Репутация IP-адреса и домена, содержание письма, соотношение текст/HTML — всё влияет на доставляемость. Используйте /email-security/ для комплексной проверки SPF+DKIM+DMARC.