在 Exim 中限制向某些域发送邮件(使用 Debian 特定的配置方法)

在 Exim 中限制向某些域发送邮件(使用 Debian 特定的配置方法)

我有一些基于 Debian 的虚拟机,它们应该将邮件交给中央主机(smarthost/satellite)。

这仅适用于通过本地主机或sendmail命令接收的本地生成的邮件,但有一个变化:我不希望本地虚拟机能够将邮件发送到互联网,而只是发送到一些指定的域。(有点像阻止本地主机的开放中继)。

如果不是因为它没有监听本地主机上的正常 SMTP 端口,我本来会使用 ssmtp,所以我使用 Exim。

我在用着update-exim4.conf

% cat update-exim4.conf.conf 

dc_eximconfig_configtype='satellite'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1 ; ::1'
dc_readhost=''
dc_relay_domains='mydomain1.com ; mydomain2.net'
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='mailsrv1.mydomain2.net:mailsrv2.mydomain2.net'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'

我在本地宏中有这个:

% cat exim4.conf.localmacros 
CHECK_RCPT_LOCAL_ACL_FILE = /etc/exim4/local_CHECK_RCPT_LOCAL_ACL_FILE.conf

相关 ACL 片段:

% cat local_CHECK_RCPT_LOCAL_ACL_FILE.conf 
deny
    message  = relay not permitted
    log_message = XXXXXXXXXXXXXXXXX
    !domains = mydomain1.com : mydomain2.net

现在的问题是,它在中继和本地域CHECK_RCPT_LOCAL_ACL_FILE之后被包含在内,因此在到达我的本地宏之前就完成了。acceptacl_smtp_rcpt

当然,我可以用 替换整个acl_smtp_rcptMAIN_ACL_CHECK_RCPT但我不想这样做——我必须复制现有的acl_smtp_rcpt部分,如果在未来升级时它与新自动生成的配置不同步怎么办?

相关内容