我有一台邮件服务器(Debian 12,Postfix),它有两个公共 IPv4 IP,用于两个应用程序。
application A
我必须从 IP1.2.3.4
和application B
IP发送所有电子邮件5.6.7.8
。
两个应用服务器都有本地后缀,可以中继到我的邮件服务器。
我怎样才能轻松地做到这一点?
我已将两个 IP 定义在master.cf
:
127.0.0.1:25 inet n - n - - smtpd
-o smtp_bind_address=1.2.3.4
-o smtp_helo_name=mail1.test.net
-o content_filter=smtp-amavis:[127.0.0.1]:10024
127.0.0.1:2525 inet n - n - - smtpd
-o smtp_bind_address=5.6.7.8
-o smtp_helo_name=mail2.test.net
-o content_filter=smtp-amavis:[127.0.0.1]:10024
但我不知道如何解决应用程序IP映射问题。
我尝试使用不同的端口(25 和 2525)——但没有成功。
第二次尝试是与 Linux 用户一起进行的——同样没有成功。
我尝试映射标题:
# main.cf:
header_checks = regexp:/etc/postfix/header_checks
# /etc/postfix/header_checks:
/^X-Postfix-Transport: my_transport1/ FILTER smtp:[127.0.0.1]:25
/^X-Postfix-Transport: my_transport2/ FILTER smtp:[127.0.0.1]:2525
但我没有成功。
我不需要任何登录、虚拟用户...我将两个应用服务器地址都设置mynetworks
为安全/限制。
我真正需要的是一个直接的解决方案来映射应用程序发送 IP。
这是通过使用 sender_dependent_default_transport_maps 解决的。
1-备份配置文件,这不是我第一次犯错!
编辑
main.cf
:创造
/etc/postfix/sender_transport
:跑步:
这将指示来自 appA 的电子邮件使用 IP 1.2.3.4,而来自 appB 的电子邮件使用 IP 5.6.7.8。
/etc/postfix/main.cf
:/etc/postfix/sender_transport_maps
:/etc/postfix/master.cf
:感谢帮助https://serverfault.com/a/1163954/217975 @stina-andersson