DKIM (DomainKeys Identified Mail) - это цифровая подпись, которую почтовый сервер добавляет к письмам от отправителей из обслуживаемых им доменов. Для этого сервер использует секретную часть ключа, которая известна только ему. Получатель может проверить подпись письма при помощи публичной части ключа, доступной через DNS-запись домена отправителя.
Нужно понимать, что DKIM не защищает от подделки отправителя и не может являться гарантией того, что письмо является полезным и безопасным, т.е. не содержит спама и вирусов. DKIM лишь удостоверяет, что почтовый сервер уполномочен владельцем домена на обслуживание почты, исходящей из этого домена. Спамеры вполне могут приобрести домен, настроить DNS и почтовый сервер для отправки писем с DKIM-подписью. Однако это требует финансовых затрат, а источник спама при этом легко идентифицировать и заблокировать. Спамеры же стараются зарабатывать деньги, оставаясь анонимными. Поэтому письмо, имеющее правильную DKIM-подпись, можно с высокой степенью достоверности считать полезным и безопасным.
DKIM- подпись — это цифровая подпись, которая добавляется к заголовкам письма сервером отправителя, по которой сервер получателя может удостовериться, что отправитель письма соответствует полю From в заголовках письма. Если сервер получателя проверяет эту подпись, то по результатам проверки сервер может принять решение о том, как поступать с письмом: принять, отправлять в папку «Спам», отправить на дополнительную проверку или вовсе отказаться от приёма. Подписи DKIM проверяют и используют сами все ведущие почтовые службы, включая Яндекс и Mail.ru.
Для правильного функционирования данной системы необходимо прописать публичный DKIM ключ в DNS. DKIM ключ прописывается в DNS записи типа txt. Для примера возьмем домен example.com. txt-запись для домена example.com будет иметь следующий вид:
dkim._domainkey.example.com. IN TXT "v=DKIM1\; k=rsa\; p=Длинный_публичный_ключ"
где dkim - это название селектора (идентификатора), прописанного в конфигурационном файле почтового сервера. По имени этого идентификатора и будет изъят публичный ключ из DNS для проверки подписи. Таких идентификаторов может быть несколько, например, если в домене существует несколько отправляющих и подписывающих почтовых серверов. _domainkey - специальное зарезервированное имя для dkim.
p=MIGfMA0GCSqGSIb3DQBAQUA4GNADCBIIiQKBgQDLRJM6ZpDXglJf/+oxfD1sE6beXps5Nv9p/VIM4AaGiGiTCDWWmUOoxUaY9vML0g68ITS2xXxhbINRMmHZ2zB7qVTwIul1Dw6lBEiBt8Z+x1hV6enW7byJc1QSssLJNpbx+j0yF1ROlKmqqYydkx96n/KESg/szh4k9p0tu/gJE2QIDAQAB |
Для провеки правильности DKIM подписи можно воспользоваться DKIM-чекером от сервиса www.port25.com. Отправляем тестовое письмо на адрес Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. и ждем от него обратно результат проверки.
---------------------------------------------------------------------------------------------------------------------------------------------------
По материалам: https://wiki.dieg.info/dkim и не только
Также хорошая статья: https://blog.bissquit.com/mail-servers/tehnologiya-dkim-dlya-pochtovogo-servera/