Exim

如何重定向本地主機郵件?- “遠端主機地址是本地主機”(exim)

  • February 16, 2015

我剛剛在 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 <root@mail.onlythebible.com>: remote host address is the local host

我實際上有點困惑(請原諒我的無知)root@mail.onlythebible.com(我的郵件伺服器)是否與 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

我在Google上嘗試過別名、~/.forward 和其他一些東西,但到目前為止還沒有運氣。

有什麼建議麼?

需要告知 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 作業可以向自身(或別名)發送電子郵件。它可以很容易地對文件進行查找或作為域的靜態列表。您需要確保所有域都在此列表中,或者可以通過此列表執行的任何查詢進行查找。

引用自:https://serverfault.com/questions/666964