Добрый день. Помогите, пожалуйста, настроить exim.
Имеется VDS-сервер с CentOS 7. На нём:
1. Домен domain.ru, IP-адрес IP1, значение PTR: domain.ru
На нём работает сайт с CMS, включая все PHP-скрипты отправки писем
Часть скриптов отправляет письма с ящиков вида *@domain.ru (регистрация, восстановление пароля и т.д.)
Часть отправляет письма с ящиков вида: *@subdomain.domain.ru (рассылка разных типов по пользователям)2. Поддомен subdomain.domain.ru, IP-адрес IP2, значение PTR: subdomain.domain.ru
Пустой поддомен, имеется только стартовая страница HTML, создавался, чтобы от его имени проводить рассылку сайта, как рекомендуют почтовые сервисы яндекс, мэйл и т.д.
Оба домена имеют каждый свой DKIM, DMARC, SPF.
При отправке из CMS писем с ящиков вида *@domain.ru всё в порядке:
- IP = IP1
- HELO = domain.ru
- Message-ID: id@domain.ru
- From: *@domain.ru
- и т.д.
При отправке из CMS писем с ящиков вида *@subdomain.domain.ru проблемы:
- IP = IP1, а нужно IP2
- HELO = domain.ru, а нужно subdomain.domain.ru
- Message-ID: id@domain.ru а нужно id@subdomain.domain.ru
- From: *@subdomain.domain.ru, тут всё в порядке
Хотелось бы, чтобы при отправке писем с *@subdomain.domain.ru в заголовках были IP2, HELO=subdomain.domain.ru, Message-ID: id@subdomain.domain.ru
Я создал файл /etc/exim/interfaces, куда вписал:
domain.ru: IP1
subdomain.domain.ru: IP2
А в /etc/exim/exim.conf в блоке remote_smtp: указал:
helo_data = ${lookup dnsdb{ptr=$sending_ip_address}{$value}{$primary_hostname}}
interface = ${if exists {/etc/exim/interfaces}{${lookup{$sender_address_domain}lsearch{/etc/exim/interfaces}{$value}{}}}{}}
Но это не помогло. Если правильно понимаю, то так как отправка идёт из CMS с сайта domain.ru, то exim'ом берётся IP1 и $sender_address_domain = domain.ru, хотя в письме отправителем и указывается *@subdomain.domain.ru
Я пробовал указывать так
helo_data = ${domain}
interface = ${if exists {/etc/exim/interfaces}{${lookup{${domain}}lsearch{/etc/exim/interfaces}{$value}{}}}{}}
и так
helo_data = $original_domain
interface = ${if exists {/etc/exim/interfaces}{${lookup{$original_domain}lsearch{/etc/exim/interfaces}{$value}{}}}{}}
Но это не сработало, и в нужных местах стал прописываться домен почтового сервиса получателя например: Message-ID: id@mail.ru, HELO=mail.ru, а IP1 остался неизменным. Я так понимаю это потому, что те параметры относятся к локальным.
Единственный вариант, который сработал для поддомена, это когда я вручную добавил его имя:
helo_data = subdomain.$sender_address_domain
interface = ${if exists {/etc/exim/interfaces}{${lookup{subdomain.$sender_address_domain}lsearch{/etc/exim/interfaces}{$value}{}}}{}}
Но конечно это не то, что нужно...