У нас есть один центральный почтовый сервер postfix и еще несколько серверов приложений позади, тогда как эти серверы ретранслируют почту через центральный почтовый сервер. теперь я хочу настроить центральный, чтобы переписать поле TO с исходного получателя на общий, например test@example.com, но ТОЛЬКО с двух конкретных серверов приложений, поэтому:
postfix должен проверять, с какого сервера приложений приходит почта (либо по IP, либо лучше по именам хостов (FQDN), и если имя хоста совпадает с app1.example.com или app2.example.com, то получателем почты всегда будет test@example.com .
если имя хоста не app1 или app2, то исходный получатель остается (без перезаписи).
мне удалось только переписать все письма TO заголовок, но не отправив имя хоста / ip
Не очень элегантным решением было бы использовать REDIRECT
в проверках заголовков. Он отправит ваше письмо на желаемый адрес, но не перепишет TO
заголовок.
В main.cf раскомментируйте или положите
header_checks = regexp:/etc/postfix/header_checks
если это еще не сделано.
В /etc/postfix/header_checks
поставить что-то вроде:
/^Received:.*app1.example.com.*/ REDIRECT testing@example.com
Если обратный DNS работает некорректно, вам лучше использовать IP.
Не забывай бежать postmap /etc/postfix/header_checks