Exim,如何将本地邮件路由到其他地址

Exim,如何将本地邮件路由到其他地址

我已经在我的 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@localhostroot[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 的配置方式)。但为了更好地理解,我希望为两者提供一个解决方案:

答案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*)。:

  1. 确保/root/.转发exim 用户可读取该文件。
  2. 将 mydomain.com 添加到名为 +local_domains 的域列表中,然后 exim4 会查找 $HOME/.forward 文件。听起来您已经正确设置了此项。
  3. 将 userforward 路由器移至 dnslookup 路由器之前(它已经这样做了,但也许您更改了默认路由器布局?)
  4. 将 mydomain.com 添加到允许搜索别名文件的域列表中。(这可能会破坏其他事情)

相关内容