Отправляющий сервер подписывает выбранные заголовки и тело письма закрытым ключом и добавляет заголовок DKIM-Signature. В заголовке указаны подписывающий домен (d=) и селектор (s=). Получатель берёт открытый ключ из TXT-записи по имени selector._domainkey.domain и проверяет подпись.
Селекторы позволяют иметь несколько ключей одновременно: по одному на каждый отправляющий сервис или старый и новый ключ на время ротации. Это же означает, что DKIM нельзя обнаружить по одному только имени домена. Инструмент может проверить DKIM-запись, только если знает селектор, а он находится в заголовке DKIM-Signature реального письма.
В отличие от SPF, подпись DKIM обычно переживает пересылку, потому что путешествует вместе с письмом. Она ломается, когда посредник, как правило список рассылки, меняет тему или тело. Разумный выбор сегодня — ключи длиной 2048 бит. Сам по себе DKIM не говорит получателям, что делать с неподписанной почтой; эту политику задаёт DMARC.
Пример
sel1._domainkey.example.com. 3600 IN TXT "v=DKIM1; k=rsa; p=<public key>"
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=sel1; h=from:to:subject; bh=...; b=...