当发件人的域、收件人的域和服务器主机名全部匹配时,如何配置 exim4 以通过第三方 SMTP 服务器路由所有电子邮件?
我跟着这个很好的答案并且已经exim4
测试过从 Ubuntu 服务器向其他域的地址发送电子邮件,并且一切正常。我唯一的问题是,如果发件人和收件人共享与服务器主机名相同的域,则电子邮件永远不会离开服务器(这是预期的行为)。
例如,从发送[电子邮件保护]-->[电子邮件保护]工作正常,但发送自[电子邮件保护]-->[电子邮件保护]仅将邮件本地路由到/var/mail/account2
,而无需经过第三方 SMTP 服务器。
我在自己的域中使用 Google Apps,并希望从[电子邮件保护]到[电子邮件保护]来自主机名为 example.com 的机器。
我想通过 Google 的 SMTP 服务器路由它们,这样我就可以在其他电子邮件客户端中看到它们。这可以吗?
答案1
如果你遵循我的问题中链接的指南你有大约十几个不同的“路由器”(简单的文本文件)/etc/exim4/conf.d/router/
。要编辑的是 200_exim4-配置-主,像这样:
sudo nano /etc/exim4/conf.d/router/200_exim4-config_primary
底部有一个“smarthost:”部分,如下所示:
smarthost:
debug_print = "R: smarthost for $local_part@$domain"
driver = manualroute
domains = ! +local_domains
transport = remote_smtp_smarthost
route_list = * DCsmarthost byname
host_find_failed = defer
same_domain_copy_routing = yes
no_more
从“域”行中删除感叹号和空格,使其看起来像这样:
domains = +local_domains
只需编辑这两个字符,一切就都正常工作了。在 Ubuntu Server 12.04 + Exim 上,在我的域中测试并使用 Google Apps,并感谢 Stefan 提供的线索!
答案2
看看设置和使用
domainlist local_domains
在事情变得有趣之前,你应该在访问列表中找到一些用途路由器部分。我家里的盒子里有这个第一的路由器:
send_to_gateway:
driver = manualroute
domains = ! +local_domains
transport = remote_smtp_smarthost
route_list = * SMARTHOST
澄清:以下路由器将适用于发送到 ˋlocal_domainsˋ 内容的所有电子邮件
send_to_gateway:
driver = manualroute
domains = +local_domains
transport = remote_smtp_smarthost
route_list = * SMARTHOST
使用的传输在 exim 配置的传输部分中定义,您应该已经有一个(可能使用不同的名称),它将您的邮件推送到其他地方。route_list 变量告诉 exim 将此路由器的所有邮件推送到服务器 SMARTHOST。
你应该花点时间阅读一下详细的 exim 手册。它将帮助你完成超出 ubuntu 简化配置能力范围的非标准设置。
答案3
将您的主机添加到dc_relay_domains
配置参数中,例如:
dc_relay_domains='example.com'
并删除!
之前的符号+local_domains
,或者如果你不使用拆分配置( )dnslookup_relay_to_domains
则看起来像:router/200_exim4-config_primary
exim4.conf.template
dc_use_split_config='false'
dnslookup_relay_to_domains:
debug_print = "R: dnslookup_relay_to_domains for $local_part@$domain"
driver = dnslookup
domains = +local_domains : +relay_to_domains
transport = remote_smtp
same_domain_copy_routing = yes
no_more
或者简单地!
从dnslookup
部分中删除以将所有内容发送到外面:
dnslookup:
debug_print = "R: dnslookup for $local_part@$domain"
driver = dnslookup
domains = +local_domains
transport = remote_smtp
same_domain_copy_routing = yes