Pull to refresh

Подменить адрес e-mail FROM POSTFIX

Доброго дня!
Имеется установленный почтовый сервер, где в качестве МТА работает postfix. Подключен внешний фильтр содержимого — amavisd-new:
content_filter = smtp-amavis:[127.0.0.1]:10024
Далее я реализовал следующее, как описано здесь
То есть происходит ротация Ай-Пи адресов при отправке
master.cf

127.0.0.1:2527 inet n n n - 0 spawn
 user=nobody argv=/etc/postfix/random.pl
# random smtp
rotate1  unix -       -       n       -       -       smtp
          -o smtp_bind_address=185.14.28.20
          -o smtp_helo_name=mail1.oni4you.ru
          -o myhostname=mail1.oni4you.ru
          -o syslog_name=postfix-rotate1
 
rotate2  unix -       -       n       -       -       smtp
          -o smtp_bind_address=185.14.28.21
          -o smtp_helo_name=mail2.oni4you.ru
          -o myhostname=mail2.oni4you.ru
          -o syslog_name=postfix-rotate2

rotate3  unix -       -       n       -       -       smtp
          -o smtp_bind_address=185.14.30.83
          -o smtp_helo_name=oni4you.ru
          -o myhostname=mx.oni4you.ru
          -o syslog_name=postfix-rotate3 


main.cf
transport_maps = tcp:127.0.0.1:2527
127.0.0.1:2527_time_limit = 3600s


ну а сам файл
/etc/postfix/random.pl
нет смысла приводить, там описана функция ротации
На сервере установлена php-программа для рассылки e-mail. Основной поток исходящих сообщений идет от этой программы через /usr/sbin/sendmail
Причем, эта программа использует в качестве e-mail адреса FROM: (от кого) — адрес Return-Path: и в рамках одной сессии этот адрес один и тот же для всех писем. В нашем случае он @oni4you.ru
Теперь перехожу к своему вопросу.
Мне необходимо в процессе ротации подменять в заголовках писем адрес Return-Path: на тот адрес, с которого в данный момент идет отправка. Например, если в данный момент идет отправка через rotate2, то необходимо подменить адрес @oni4you.ru на @mail2.oni4you.ru, а если отправка идет через rotate1, то адрес @oni4you.ru надо подменить на @mail1.oni4you.ru
Смысл данной операции — правильное формирование DKIM подписания в заголовках входящих писем у почтовых провайдеров. Вот здесь я более подробно объясняю причину того, для чего надо подменять адреса.
Я для этого прописал дополнительно sender_canonical_maps:
127.0.0.1:2527 inet n n n - 0 spawn
 user=nobody argv=/etc/postfix/random.pl
# random smtp
rotate1  unix -       -       n       -       -       smtp
          -o smtp_bind_address=185.14.28.20
          -o smtp_helo_name=mail1.oni4you.ru
          -o myhostname=mail1.oni4you.ru
          -o syslog_name=postfix-rotate1
          -o sender_canonical_maps=hash:/etc/postfix/canonical_maps1.cf
 
rotate2  unix -       -       n       -       -       smtp
          -o smtp_bind_address=185.14.28.21
          -o smtp_helo_name=mail2.oni4you.ru
          -o myhostname=mail2.oni4you.ru
          -o syslog_name=postfix-rotate2
          -o sender_canonical_maps=hash:/etc/postfix/canonical_maps2.cf

rotate3  unix -       -       n       -       -       smtp
          -o smtp_bind_address=185.14.30.83
          -o smtp_helo_name=oni4you.ru
          -o myhostname=mx.oni4you.ru
          -o syslog_name=postfix-rotate3 

Создал два файла canonical_maps1.cf и canonical_maps2.cf
canonical_maps1.cf
@oni4you.ru  @mail1.oni4you.ru

canonical_maps2.cf
@oni4you.ru  @mail2.oni4you.ru

Выполнил
# postmap hash:/etc/postfix/canonical_maps

для каждого по отдельности.
Дело в том, что вышеприведенный код работает, ротация происходит. Но не работает эта самая строчка sender_canonical_maps, то есть подмены не происходит.
Подскажите пожалуйста, почему не работает подмена адресов?
Причем, если прописать в main.cf
sender_canonical_maps=hash:/etc/postfix/canonical_maps1.cf, hash:/etc/postfix/canonical_maps2.cf 

то подмена начинает работать. Но работать неправильно, потому что постфикс читает только первую карту canonical_maps1.cf и подменяет адреса согласно этой карты всем подряд.
Складывается такая ситуация, что без указания опции sender_canonical_maps
в main.cf (только лишь в master.cf) постфикс отказывается подменять адреса. Но указать правильно ротацию в main.cf не удается. Замкнутый круг получается…
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.