如何重定向本地主机邮件? - “远程主机地址是本地主机”(exim)

如何重定向本地主机邮件? - “远程主机地址是本地主机”(exim)

我刚刚在 Ubuntu 14.04 上使用 VestaCP 设置了一个 VPS,并且正在使用默认的 exim 邮件服务器。

我希望能够将发给 root@ 的邮件转发到另一个电子邮件地址。但我的日志中收到大量(我的意思是一大堆)这些错误消息:

2015-02-12 02:08:02 H=(mail.onlythebible.com) [106.187.53.43] sender verify defer for <[email protected]>: remote host address is the local host

我其实有点困惑(请原谅我的无知)[电子邮件保护](我的邮件服务器)与 root@localhost 相同吗?为什么电子邮件会发送到那里?

该命令:exim -bt root@localhost返回以下内容:

LOG: MAIN
  remote host address is the local host: localhost (while routing <root@localhost>)
root@localhost cannot be resolved at this time: remote host address is the local host

我尝试过别名、~/.forward 和 Google 上的其他一些方法,但到目前为止还没有成功。

有什么建议么?

答案1

Exim 需要被告知它将接受来自哪些域的电子邮件,通常在配置文件早期的域列表设置中。有两种一般方法可以完成:1. 静态域名列表 2. 在本地文件或数据库中查找

例如,在我管理的一些以前的系统中,它根据信封发件人的域执行 sql 查找。由于它是数据库查找,因此它会根据需要执行查找,而不是“在 exim 启动时创建列表”。它如下所示:

domainlist local_domains = @ : localhost : LOCAL_HOST_NAME : \
  ${lookup mysql {SELECT d.name \
  FROM  domain AS d \
  JOIN  user AS u ON d.user_id=u.id \
  JOIN  website AS w on u.id=w.user_id \
  WHERE d.name="${quote_mysql:${domain}}" AND \
        d.active=1 AND \
        w.status_id <= 4 AND \
        w.active=1 \
  LIMIT 1}}

在上面的代码中,LOCAL_HOST_NAME 是一个宏定义,它被设置为完整主机名(又名完全限定域名,又名 FQDN),因此 cron 作业可以向其自身(或别名)发送电子邮件。它可以轻松地对文件进行查找,也可以是静态域列表。您需要确保所有域都在此列表中,或者可以通过此列表执行的任何查询进行查找。

相关内容