我想用 Postfix 3.5 容器替换旧版 Windows 电子邮件网关软件,但似乎无法同时使用这两种功能:
- 如果地址在其中,它应该接受来自任何 IP 的传入邮件(@ourdomain.com)
relay_recipient_maps
并将其转发到交换服务器。 - 它应该只接受来自特定 IP 地址的外发邮件(例如 @anydomain.net),并且[电子邮件保护]并通过交易所进行传递。
这是我当前正在使用的配置:
# differences from postconf -d
compatibility_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
header_size_limit = 4096000
inet_protocols = ipv4
local_transport = error:local mail delivery is disabled
manpage_directory = /usr/share/man
message_size_limit = 50000000
mydestination =
mydomain = ourdomain.com
myhostname = smtp-demo.ourdomain.com
mynetworks = /etc/postfix/mynetworks
myorigin = ourdomain.com
parent_domain_matches_subdomains = debug_peer_list smtpd_access_maps
process_id = 137
readme_directory = /usr/share/doc/postfix/readme
relay_domains = ourdomain.com
relay_recipient_maps = hash:/etc/postfix/relay_recipients
relayhost = exchange.ourdomain.com
smtp_tls_security_level = may
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks,reject_invalid_helo_hostname,permit
smtpd_recipient_restrictions = permit_auth_destination,reject_non_fqdn_recipient, reject_unknown_recipient_domain, check_sender_access hash:/etc/postfix/allowed_senders, reject
smtpd_relay_restrictions = permit_mynetworks,reject_unauth_destination
smtpd_sender_restrictions = permit_mynetworks
# /etc/postfix/mynetworks
10.176.204.50
10.176.201.100
...
# /etc/postfix/relay_recipients
[email protected] OK
[email protected] OK
...
# /etc/postfix/allowed_senders
ourdomain.com OK
每次我更改某些内容smtpd_recipient_restrictions
或smtpd_relay_restrictions
使两个目标中的一个实现,然后又破坏了另一个。使用当前配置,在从不在 mynetworks 文件中的客户端 RCTP 到外部地址后,我不会收到任何错误。容器网络设置正确,我测试的客户端的正确 IP 显示在日志中,因此 mynetworks 应该可以正常工作。
我究竟做错了什么?
答案1
如果你无法想出同时满足两个要求的设置,你可以参考在单个主机上管理多个 Postfix 实例。您可以配置提交通过不同的设置master.cf
,例如
submission inet n - y - - smtpd
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_relay_restrictions=permit_mynetworks,reject
-o smtpd_recipient_restrictions=reject_unknown_recipient_domain,permit_mynetworks,reject
这将打开提交587
出站中继的端口。
如果必须25
对两者使用端口,那么您也可以将实例绑定到不同的 IP 地址。