Как настроить DKIM: запись, селектор и подпись писем
DKIM ставит на каждое письмо криптографическую подпись, по которой получатель проверяет, что письмо действительно отправлено вами и не изменено по дороге. Без неё крупные почтовики режут доверие к отправителю, а с 2024 года для массовых рассылок DKIM стал фактически обязательным. Разберём настройку по шагам — от ключей до проверки — и типичные ошибки, из-за которых подпись не работает.
Если нужен общий обзор, чем DKIM отличается от SPF и DMARC, — начните со статьи SPF, DKIM и DMARC простыми словами. Здесь — практика настройки.
Как работает подпись: селектор и два ключа
DKIM использует пару ключей. Приватный хранится на почтовом сервере и подписывает исходящие письма. Публичный лежит в DNS вашего домена — им получатель проверяет подпись. Связывает их селектор — короткая метка, которая позволяет держать несколько ключей на одном домене (для разных сервисов рассылки).
В заголовке подписанного письма это выглядит так:
Здесь d=example.ru — ваш домен, s=mail — селектор. Получатель по ним строит адрес и запрашивает публичный ключ из DNS: mail._domainkey.example.ru. Схема имени всегда одна: <селектор>._domainkey.<домен>.
Настройка по шагам
<селектор>._domainkey и значением вида v=DKIM1; k=rsa; p=<длинная строка публичного ключа>. Как добавлять записи — в статье про DNS-записи домена.Из чего состоит значение записи
| Параметр | Что означает |
|---|---|
v=DKIM1 | Версия. Всегда DKIM1, ставится первым |
k=rsa | Тип ключа. Обычно RSA |
p=... | Сам публичный ключ — длинная строка. Главная и самая хрупкая часть |
t=y (необяз.) | Тестовый режим — на время отладки; в бою убирают |
Как узнать свой селектор
Селектор задаёт тот, кто настраивает подпись, поэтому он у всех разный: mail, default, google, selector1, mxvar1 и т.п. Самый надёжный способ узнать свой — открыть любое отправленное с домена письмо, посмотреть исходный код (в Gmail — «Показать оригинал») и найти в заголовке DKIM-Signature параметр s=. Это и есть ваш селектор. Зная его, вы сможете проверить публичную запись и убедиться, что подпись валидна.
Частые ошибки
- Запись разбилась на части. Публичный ключ длинный, и некоторые DNS-панели требуют разбивать значение на строки в кавычках. Разбиение допустимо, но лишние пробелы или потерянные символы ломают подпись — сверяйте значение целиком.
- Неверное имя записи. Имя должно быть строго
<селектор>._domainkey. Частая оплошность — добавить домен дважды (панель и так подставляет его), получаетсяmail._domainkey.example.ru.example.ru. - DKIM есть, а SPF или DMARC нет. Три записи работают в связке: одна подпись без SPF и DMARC даёт неполную защиту. Проверьте все сразу.
- Сменили сервис рассылки — забыли ключ. Каждый сервис использует свой селектор; при переезде добавьте новую запись, а старую уберите, только когда отправка со старого сервиса прекратилась.
- Оставили тестовый режим. Флаг
t=yна время отладки — нормально, но забыть его в бою значит ослабить проверку. Уберите, когда всё работает.
DKIM и доставляемость
Подпись сама по себе не гарантирует «входящие», но её отсутствие почти гарантирует проблемы: письмо без DKIM выглядит для почтовика подозрительно и легко уходит в спам или в чёрные списки по репутации. DKIM — часть базовой гигиены отправителя вместе с SPF, DMARC и PTR-записью; полная картина — в статье почему письма попадают в спам. Для массовых рассылок без DKIM сегодня вообще нет смысла стартовать — см. массовую рассылку писем.
Коротко
DKIM подписывает письма приватным ключом на сервере, а публичный ключ вы публикуете в DNS TXT-записью с именем <селектор>._domainkey.<домен>. Чаще всего почтовый сервис генерирует ключи сам — вам остаётся добавить запись. Свой селектор смотрят в заголовке DKIM-Signature отправленного письма. После настройки проверьте, что запись найдена, и что рядом настроены SPF и DMARC — только втроём они дают отправителю полное доверие.