Для писем, отправляемых с сервера функцией php mail(), указать DKIM-подпись очень сложно. На помощь в данном случае приходит библиотека PHPMailer или же специальные плагины для отправки писем в CMS.
В этом случае для того, чтобы письма, отправляемые с сервера виртуального хостинга, проходили проверку DKIM, необходимо выполнить следующую настройку:
1. Подключиться к своему аккаунту по SSH.
2. Сгенерировать закрытый ключ командой ниже, указав вместо domain.ru имя вашего домена:
openssl genrsa -out domain.ru.private 1024
3. Сохранить путь к сгенерированному ключу — файлу domain.ru.private (путь потребуется ввести в процессе настройки далее). Файл будет создан в той же директории, откуда выполнялась команда.
4. Сгенерировать открытый ключ командой ниже, указав вместо domain.ru имя вашего домена:
openssl rsa -in domain.ru.private -out domain.ru.public -pubout
Содержимое файла domain.ru.public после генерирования ключа будет следующим:
-----BEGIN PUBLIC KEY----- ключ -----END PUBLIC KEY-----
5. В разделе «Домены и поддомены» в настройках домена создать TXT-запись для поддомена mail._domainkey.domai
n.ru
со следующим содержимым:
v=DKIM1; k=rsa; p=ключ_из_предыдущего_пункта
Ключ должен быть указан в одну строку, без BEGIN и END.
6. В настройках скрипта библиотеки PHPMailer или используемого для отправки писем плагина CMS указать полный путь к файлу domain.ru.private, который был сгенерирован в пункте 2 (например, /home/u/user/domain.ru.private).
В случае если вы используете PHPMailer, необходимо указать путь в параметре DKIM_private
; в параметре DKIM_selector
указать mail
.