我目前已将来自 Exim 的所有电子邮件转发到我们网络上的出站 STMP 服务器。以下是我的 Exim 配置中用于发送邮件的部分:
send_to_gateway: driver = manualroute transport = remote_smtp route_list = * outbound-stmp.domain.com
这对于从我们的 Web 服务器发送到外部地址的电子邮件非常有效。当 cron 作业向本地 root 帐户发送电子邮件时,它不起作用。这些本地电子邮件被发送到我们的出站服务器并被退回,因为它们无法发送到“root@localhost”之类的服务器。
是否可以通过 Exim 将发往本地帐户的电子邮件保留在本地机器上,而将非本地的电子邮件通过中继发送?
答案1
您需要为网关定义一个路由器,为本地传送定义另一个路由器,以及它们的使用条件。
因此,要本地传递发往后缀的邮件,请定义包含“localhost”的*.localhost
域列表,并在第一个路由器中包含一个子句。Exim 将检查该子句以决定是否应使用路由器。local_domains
domains
domains
exim.conf:
...
# MAIN CONFIGURATION SETTINGS #
domainlist local_domains = @ : localhost : localhost.localdomain : mydomain.com
...
begin routers
...
send_to_gateway:
driver = manualroute
domains = !+local_domains
transport = remote_smtp
route_list = * outbound-stmp.domain.com
...
localuser:
driver = accept
check_local_user
transport = local_delivery
cannot_route_message = Unknown user
...
该domains = !+local_domains
条件的意思是“当域名为不是在local_domains
列表中。”!
意思是不是,+
表示取消引用以下变量/列表