В этой статье добавлю варианты как можно разделить по IP адресам почтовые домены.
Очень мало воды и много конфигов.
Выбор SSL сертификата на основании домена 1 2 tls_certificate = ${if exists{/etc/ssl/${tls_sni}.crt}{/etc/ssl/${tls_sni}.crt}{/etc/ssl/default_domain.crt}} tls_privatekey = ${if exists{/etc/ssl/${tls_sni}.key}{/etc/ssl/${tls_sni}.key}{/etc/ssl/default_domain.key}} где сертификаты должны лежать по пути /etc/ssl/domain.com.crt, а ключи — /etc/ssl/domain.com.key. В случае, если для какого-то домена не будет сертификата, то будет использоваться сертификат по умолчанию — /etc/ssl/default_domain.crt (и соответствующий ключ /etc/ssl/default_domain.key)
Обращаю внимание что этот вариант может корректно не работать со STARTTLS.
Выбор SSL сертификата на основании сравнения IP адреса и домена 1 2 tls_certificate = ${lookup{$received_ip_address}lsearch{/etc/exim/ips_in.conf}{/opt/mail/ssl/$value.pem}{/opt/mail/ssl/domain.com.cer}} tls_privatekey = ${lookup{$received_ip_address}lsearch{/etc/exim/ips_in.conf}{/opt/mail/ssl/$value.key}{/opt/mail/ssl/domain.com.key}} Используется файл вида:
1 2 3 # cat /etc/exim/ips_in.conf 8.140.110.229: mail2.domain.com 8.140.110.228: mail2.domain2.com Что бы сервер представлялся нужным доменом, правим transports remote_smtp (указывем helo_data): 1 2 3 4 5 remote_smtp: driver = smtp ... helo_data = $sender_address_domain ... Ещё варианты будут описаны ниже.
Для выбора IP во время отправки почты и для представления сервера можно использовать конфигурацию 1 2 3 4 remote_smtp: driver = smtp + interface = ${if exists {/etc/exim/ips_out.conf}{${lookup{$sender_address_domain}lsearch{/etc/exim/ips_out.conf}{$value}{}}}{}} + helo_data = ${lookup dnsdb{ptr=$sending_ip_address}{$value}{$primary_hostname}} Здесь мы выбираем какой интерфейс использовать при отправке почты на основании данных в файле, который описан ниже. А так же представляемся именем домена из PTR этого IP адреса.
...