Как стать автором
Поиск
Написать публикацию
Обновить

Подменить адрес 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 не удается. Замкнутый круг получается…
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.