Email
讓 Exim 向外部投遞本地郵件
我們有一個不尋常的郵件設置——前面是 Google Apps/Gmail,Exim 在我們的網路伺服器上執行。Google Apps 中不存在的任何帳戶的郵件都會轉發給 Exim。這兩個都使用相同的域。
問題是,從 Exim 帳戶(或我們的 PHP 應用程序)發送的所有郵件都只在本地發送,而不是通過 Gmail 發送。
為了更好地說明這一點,請看這張高質量的圖表:
[Google Apps] (Tom, Dick, Harry) | v [Exim] (Jane, Mary, Sue)
發送給 Jane 的郵件由 Google 轉發給 Exim。發送給 Tom 的郵件只是由 Google 遞送。這是有效的部分——問題是,Jane 不能給 Tom 發電子郵件,因為就 Exim 而言,它執行了整個節目。
我正在閱讀有關在 Exim 中設置 SmartHost 的資訊,但這需要身份驗證 - 關鍵是,Exim 中的帳戶與 Apps 中的帳戶不匹配。
如何配置 Exim 以通過外部路由傳遞本地郵件?
根據您在問題評論中引用的答案(配置伺服器以將無法路由的電子郵件轉發到另一個電子郵件伺服器),我重寫了邏輯部分以使用整個電子郵件地址,而不僅僅是本地部分。以下似乎在我的測試中起作用。
- 將example.com放入您的 +local_domains 中。
2)添加他推薦的路由器。(後面應該有另一個路由器接受 +local_domains 和具有有效本地郵箱的使用者):
not_local: driver = manualroute domains = +local_domains transport = remote_smtp condition = ${lookup{$local_part@$domain}lsearch{/etc/exim/forward_to_google}} # Use whatever MX is correct for your domain below route_list = +local_domains s7a1.psmtp.com
3)創建
/etc/exim/forward_to_google
並放入它:remote@example.com: yes # Not required if this is a local account, but # shows how flexible this approach can be local@example.com: no
4)您可以使用 exim 的 -bt address 測試選項進行測試(我的配置沒有為有效本地使用者提供的第二個路由器,但您的應該是這樣的,所以第一個使用者會顯示本地傳遞):
$ exim -bt local@example.com local@example.com is undeliverable: Unrouteable address $ exim -bt remote@example.com remote@example.com router = not_local, transport = remote_smtp host s7a1.psmtp.com [64.18.6.10]