Exim, hot to route local mail to other address
我在我的 debian wheezy 伺服器上設置了一個 Exim4 伺服器。此郵件伺服器僅發送來自本地主機的郵件。目的是為我的網站發送郵件。
我有 cron 任務和其他為
root
使用者生成郵件的服務。這些郵件並沒有/var/mail
像以前那樣儲存在,而是由 exim 發送到root@mydomain.com
.我嘗試讓 exim 為
root
to`mypersoaddress@gmail.com而不是發送郵件
root@mydomain.com`。我嘗試添加
.forward
in/root
with`mypersoaddress@gmail.com作為內容。我也嘗試
/etc/aliases用
root: mypersoaddress@gmail.com. 事實是路由適用於
root@localhost但不適用於
root解決為
root@mydomain.com`我測試了路由是如何解決的
exim -bt
:root@srv02:~# exim -bt root@localhost R: system_aliases for root@localhost R: dnslookup for mypersoaddress@gmail.com mypersoaddress@gmail.com <-- 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 root@mydomain.com root@mydomain.com 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
?- 如何
root@mydomain.com
路由到mypersoaddress@gmail.com
?
您正在使用的調試輸出表明您正在使用 Debian 風格的配置系統。我將把它稱為exim4以便清楚地表明除了源中的預設 exim 配置之外還有一些額外的配置魔法。稍後閱讀本文的任何人都需要清楚地了解,除非他們正在執行 Debian 風格的 exim 配置,否則其中一些建議並不適用。
-bt 輸出的差異提供了一個線索:
root@srv02:~# exim -bt root@localhost R: system_aliases for root@localhost R: dnslookup for mypersoaddress@gmail.com mypersoaddress@gmail.com root@srv02:~# exim -bt root R: dnslookup for root@mydomain.com root@mydomain.com
在第一個中,它知道在 system_aliases 路由器中查找,因為“localhost”被配置為允許在別名文件中查找的域之一。但在第二個中,它跳過了該別名文件,因為“mydomain.com”不在該列表中。在 exim4 中,該列表是MAIN_LOCAL_DOMAINS宏。
據我估計,其中一件事可能會解決您的問題。第 2 項及以後的項目是對您的 exim.conf 的潛在調整。由於您執行 exim.4,您需要調整 /etc/exim/ 中的 Debian 郵件配置文件,然後執行 exim4-conf.conf 或類似的東西以讀取這些更改並生成新的配置文件(/var/ exim4 實際使用的 lib/exim4/config.autogenerated*)。:
- 確保exim 使用者可以讀取**/root/.forward**文件。
- 將 mydomain.com 添加到名為 +local_domains 的域列表中,這將使 exim4 查找 $HOME/.forward 文件。聽起來您已經正確設置了此設置。
- 將 userforward 路由器移動到 dnslookup 路由器之前(它已經這樣做了,但也許您已經更改了預設路由器佈局?)
- 將 mydomain.com 添加到允許搜尋別名文件的域列表中。(可能這會破壞其他東西)