Как реализовать на сервере подпись DKIM для писем, отправляемых с помощью фукции PHP mail()?
Имеем VPS на CentOS 8 с установленным веб сервером и соответственно настроена почта (Exim + Dovecot + OpenDKIM). Вся почта отправляемая через почтовый клиент, имеет цифровую подпись DKIM и тут все отлично. Но если пользователь отправляет почту по средствам PHP функции mail(), то в этом случае, письмо идет уже без подписи DKIM, со всеми вытекающими последствиями.
Как реализовать подпись DKIM, для писем отправляемых через PHP функцию mail(), именно средствами сервера (дабы не лезть в скрипты)?
я думаю, тег php стоит убрать, а в заголовок добавить слово sendmail
для того чтобы вопрос нашел свою аудиторию
С другой стороны, это стоит делать если ты действительно хочешь "настроить средствами сервера", наивно полагая, что это будет проще, чем "лезть в скрипты".
FanatPHP, я не думаю что это будет проще, но лезть во все скрипты (зачастую не мои) и править в них, не всегда возможно. Поэтому и спрашиваю - как это реализовать именно средствами сервера.
DKIM привязана к домену из поля From. Если почта, которая подписывается, отправляемая через почтовый клиент, расположена на этом же сервере, значит дело в том, что письма, отправляемые через mail(), имеют поле From не на том же домене.
я повторю, если непонятно: не имеет
РНР не умеет отправлять письма.
Ответа на вопрос "как настроить пыхапе" ты не дождешься никогда, потому что он не существует.
Отправкой занимается сендмейл.
Поэтому тебя интересует настройка сендмейла. А из какой ты там программы будешь его вызывать - из баша или из питона - это без разницы.
Дмитрий не очень внимательно прочитал условие задачи.
1. У вас в логах почтового сервера (который с DKIM) появляется что-то при отправке почте через php mail?
2. which sendmail что показывает?
PHP функция mail() вызывает что-то типа "/usr/sbin/sendmail -t -i"
Дмитрий, если у вас как говорите уже настроена на почтовом сервере exim подпись DKIM - то ей все равно откуда на сервер придет письмо - подпись привязана к имени домена и ей подписывается любая почта отправляющаяся с этой сервера.
Что-то типа opendkim должно проксировать через себя всю почту для доменов, для которых в его настройках есть DKIM подпись.
Смотрите что происходит в логах dkim провайдера на сервере, когда отправляете почку.
Нужно настроить почтовый сервер postfix\sendmail\exim с DKIM, который будет слушать на localhost и сможет отправлять письма. Функция аналогична команде mail на сервере.