@vis0r

Как сконфигурировать exim4 для отправки почты с сайта?

Короче по порядку. Есть один веб сервер...

Сделано так, что php скрипты каждого сайтика исполняются от разных пользователей. То есть один сайтик — один пользователь в системе.

Например есть пользователь site1. И вот допустим с этого сайтика исполняется скрипт с отправкой письма через встроенную функцию mail() (которая вызывает sendmail, который на самом деле симлинк к exim4).

Когда это письмо доходит до адресата, в его заголовках палится локальный пользователь сервера его отправивший (site1). По-сути это логин пользователя в системе из под которого был запущен скрипт для отправки этого письма и локальный хостнейм самой машины.

6rHTaQ5lKAE.jpg

Так вот хотелось бы знать как изменить этот адрес отправки (site1@somesite.ru) на любой другой электронный адрес (в пределах доменов висящих на этом IP) ?

Например чтобы каждый сайт отправлял письмо из под своего домена. Например no-reply@domain-for-site1.ru

UPDATE 1
Нашёл файл /etc/email-addresses в котором можно указать исходящую почту для каждого локального юзера.
Например в моём случае добавление туда такой строки:

# user: email
site1: no-reply@domain-for-site1.ru


изменит заголовки письма (изменения обведены красным), что уже слегка приближает меня к поставленной цели — убрать локальный юзернейм отправителя и имя хоста сервера из заголовков:

kA6BDeCjSSg.jpg

Однако остаётся 2 места где всё ещё палится хостнейм и юзер:

lOah5r5DFR4.jpg

Теперь основной вопрос — как их убрать вовсе, или если это сделать невозможно, то изменить на тот же no-reply@domain-for-site1.ru ?
  • Вопрос задан
  • 852 просмотра
Решения вопроса 1
@vis0r Автор вопроса
Задача решилась редактированием и приведением к нормальному виду дефолтного заголовка Received:
Убираем оттуда имя локального пользователя и версию Exim.
Для этого надо в конфиг /etc/exim4/exim4.conf.template прямо перед секцией begin acl вставить:

received_header_text = Received: \
  by $primary_hostname \
  ${if def:received_protocol {with $received_protocol}} \
  ${if def:sender_address \
  {(envelope-from <$sender_address>)\n\t}}\
  ${if def:tls_in_cipher {($tls_in_cipher)\n\t}}\
  id $message_exim_id\
  ${if def:received_for {\n\tfor $received_for}}


Информация взята с официальной документации Exim по ссылке
https://www.exim.org/exim-html-current/doc/html/sp...
(поиском по странице директивы received_header_text)

Домен somedomain редактируется простым изменением /etc/hostname
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы