Отправка писем средствами Postfix с разных доменов от разных IP-адресов

Предположим, что у нас есть два домена dmosk.ru и test.dmosk.ru и почтовый сервер, с которого идет отправка писем для этих доменов. Также на сервере есть два IP-адреса:
- 1.2.3.4
- 5.6.7.8
Нам нужно сделать так, чтобы:
- Домен dmosk.ru отправлял письма с адреса 1.2.3.4.
- Домен test.dmosk.ru отправлял письма с адреса 5.6.7.8.
Это делается в несколько простых этапов.
Теория
В конфигурационном файле master.cf предусмотрена опция smtp_bind_address, с помощью которой можно указать, к какому адресу будет привязана очередь обработки письма.
Таким образом нам нужно просто настроить правило для исходящих писем, которое в зависимости от отправителя будет посылать письма через определенную очередь в master.cf.
Настройка Postfix
Отредактируем основной конфигурационный файл postfix:
vi /etc/postfix/main.cf
Нам нужно добавить или отредактировать опцию sender_dependent_default_transport_maps:
sender_dependent_default_transport_maps = hash:/etc/postfix/sender_transport
* в данном примере мы указываем, что правила для отправки находится в карте /etc/postfix/sender_transport.
Создадим файл с самой картой:
vi /etc/postfix/sender_transport
@dmosk.ru dmosk_smtp:
@test.dmosk.ru test_smtp:
* в данном примере мы будем отправлять письма от разных доменов, каждый через свою очередь. Сами очереди мы создадим в файле master.cf.
И создадим саму карту:
postmap /etc/postfix/sender_transport
Теперь отредактируем файл master.cf:
vi /etc/postfix/master.cf
В самый низ добавим:
dmosk_smtp unix - - n - - smtp
-o smtp_bind_address=1.2.3.4
test_smtp unix - - n - - smtp
-o smtp_bind_address=5.6.7.8
* мы создали две очереди в соответствии с правилами отправки. Для каждой очереди есть только одно правило smtp_bind_address, которое обязывает делать отправку через определенный IP-адрес.
Применяем настройки:
systemctl restart postfix
Готово.