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