我已经在我的 debian wheezy 服务器上设置了一个 Exim4 服务器。此邮件服务器仅发送来自本地主机的邮件。目的是为我的网站发送邮件。
我有 cron 任务和其他服务为root
用户生成邮件。这些邮件不像以前那样存储在 中/var/mail
,而是由 exim 发送到[email protected]
。
我尝试让 exim 发送邮件给root
而[email protected]
不是[email protected]
。
.forward
我尝试在内容/root
中添加[email protected]
。我也尝试将其更改/etc/aliases
为。事实是,路由适用于但不适合被解析为root: [email protected]
root@localhost
root
[email protected]
我测试了如何使用以下方法解决路由问题exim -bt
:
root@srv02:~# exim -bt root@localhost
R: system_aliases for root@localhost
R: dnslookup for [email protected]
[email protected]
<-- root@localhost
router = dnslookup, transport = remote_smtp
host gmail-smtp-in.l.google.com [173.194.67.27] MX=5
host alt1.gmail-smtp-in.l.google.com [74.125.143.27] MX=10
host alt2.gmail-smtp-in.l.google.com [74.125.25.27] MX=20
host alt3.gmail-smtp-in.l.google.com [173.194.64.27] MX=30
host alt4.gmail-smtp-in.l.google.com [74.125.142.27] MX=40
root@srv02:~# exim -bt root
R: dnslookup for [email protected]
[email protected]
router = dnslookup, transport = remote_smtp
host aspmx.l.google.com [173.194.78.27] MX=1
host alt1.aspmx.l.google.com [74.125.143.27] MX=5
host alt2.aspmx.l.google.com [74.125.25.27] MX=5
host alt4.aspmx.l.google.com [74.125.142.27] MX=10
host alt3.aspmx.l.google.com [173.194.64.27] MX=10
我敢打赌,这与我的服务器配置方式有关(而不是 exim 的配置方式)。但为了更好地理解,我希望为两者提供一个解决方案:
- 如何
root
解决root@localhost
? - 如何
[email protected]
路由至[email protected]
?
答案1
您使用的调试输出表明您正在使用 Debian 风格的配置系统。我将其称为exim4为了清楚地说明,除了源代码中提供的默认 exim 配置之外,还有一些额外的配置魔法。稍后阅读本文的任何人都需要清楚地了解,除非他们运行的是 Debian 风格的 exim 配置,否则本建议中的一些内容不适用。
-bt 输出中的差异给出了一个线索:
root@srv02:~# exim -bt root@localhost
R: system_aliases for root@localhost
R: dnslookup for [email protected]
[email protected]
root@srv02:~# exim -bt root
R: dnslookup for [email protected]
[email protected]
在第一个示例中,它知道查看 system_aliases 路由器,因为“localhost”被配置为允许在别名文件中查看的域之一。但在第二个示例中,它跳过了该别名文件,因为“mydomain.com”不在该列表中。在 exim4 中,该列表是主本地域宏。
据我估计,其中一种方法可能可以解决您的问题。第 2 项及后续内容是对您的 exim.conf 的潜在调整。由于您运行的是 exim.4,因此您需要调整 /etc/exim/ 中的 Debian 邮件配置文件,然后运行 exim4-conf.conf 或类似程序以读取这些更改并生成 exim4 实际使用的新配置文件 (/var/lib/exim4/config.autogenerated*)。:
- 确保/root/.转发exim 用户可读取该文件。
- 将 mydomain.com 添加到名为 +local_domains 的域列表中,然后 exim4 会查找 $HOME/.forward 文件。听起来您已经正确设置了此项。
- 将 userforward 路由器移至 dnslookup 路由器之前(它已经这样做了,但也许您更改了默认路由器布局?)
- 将 mydomain.com 添加到允许搜索别名文件的域列表中。(这可能会破坏其他事情)