Exim:如何通过SMTP中继在本地发送邮件

我目前已将所有来自Exim的电子邮件转发到我们networking上的出站STMP服务器。 这是我发送邮件的Eximconfiguration的一部分:

send_to_gateway: driver = manualroute transport = remote_smtp route_list = * outbound-stmp.domain.com

这适用于从我们的Web服务器发送到外部地址的电子邮件。 在cron作业发送电子邮件到本地root帐户时,它不起作用。 这些本地电子邮件正在发送到我们的出站服务器,因为无法发送到“root @ localhost”之类的内容而被popup。

是否可以通过Exim发送目的地为本地帐户的电子邮件留在本地机器上,以及任何不是本地的电子邮件都通过中继?

您需要为网关定义路由器,为本地交付定义另一个路由器,以及使用它们的条件。

因此,要在本地传递发往*.localhost后缀的邮件,请定义包含“localhost”的domains列表local_domains ,并在第一个路由器中包含domains子句。 Exim检查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列表中时使用此路由器”。 ! 意思不是+表示取消引用下面的variables/列表