Rayled
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Добрый день. Помогите, пожалуйста, настроить 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}{}}}{}} | Но конечно это не то, что нужно... |