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