GoDaddy:exim4 接收電子郵件但無法發送“無路由到主機”錯誤
在由 GoDaddy 託管的 Ubuntu 16.04 VPS 上,我希望能夠使用我的域名發送電子郵件。
我通過 Vestacp 創建了一個郵件使用者
noreply@webtest.domain.com
,安裝了 Roundcube 並檢查了我是否可以從我的一個個人地址接收電子郵件(嘗試使用 gmail 和 hotmail)。但是,當我想回复時,exim4 無法發送,並給我一個“沒有到主機的路由”錯誤。
# cat /var/log/exim4/mainlog exim 4.86_2 daemon started: pid=2310, -q30m, listening for SMTP on port 25 (IPv4) port 587 (IPv4) port 2525 (IPv4) and for SMTPS on port 465 (IPv4) Start queue run: pid=2311 1iDCy2-00021u-SM H=gmail-smtp-in.l.google.com [172.217.197.27] No route to host 1iDD5o-0000bk-Gt <= noreply@webtest.domain.com U=admin P=local S=795 id=337cb2f63221d64985700e25c2074569@webtest.domain.com 1iDCy2-00021u-SM H=alt1.gmail-smtp-in.l.google.com [64.233.186.27] No route to host 1iDCy2-00021u-SM H=alt2.gmail-smtp-in.l.google.com [74.125.193.27] No route to host [...] 1iDCy2-00021u-SM == recipient@gmail.com R=dnslookup T=remote_smtp defer (110): Connection timed out 1iDCzB-0002B3-PK ** root@webtest.domain.com: Unrouteable address 1iDCzB-0002B3-PK Frozen (delivery error message) 1iDD8s-0000gq-H3 <= <> R=1iDD8s-0000go-GN U=Debian-exim P=local S=1211
我嘗試對其中一個 ip 執行 tracepath,我可以看到預設情況下它採用 GoDaddy 內部網路的介面,而不是具有 Internet IP 的介面:
# tracepath 172.217.218.27 1?: [LOCALHOST] pmtu 1500 1: 10.217.15.252 0.262ms [...] 8: ash-b1-link.telia.net 54.953ms asymm 12 9: no reply 10: no reply
因此,我嘗試在 中添加介面指令
/etc/exim4/conf.d/transport/30_exim4-config_remote_smtp
,並重新啟動 VPS。remote_smtp: debug_print = "T: remote_smtp for $local_part@$domain" driver = smtp interface = 148.72.xx.xx
但我仍然遇到同樣的錯誤。我不知道現在該往哪裡看。
問題不是我所期望的,它“簡單地”是提供商 GoDaddy 要求我使用他們的中繼伺服器。我知道通過用 測試埠 25
$ telnet portquiz.net 25
,令我驚訝的是,即使它沒有任何連接,或者防火牆阻止它,它也無法連接。修復:
這將使您的郵件通過 GoDaddy 的郵件伺服器,但這是最簡單的解決方案 afaik。我編輯了配置模板文件**
/etc/exim4/exim4.conf.template
**,並更新了以下部分:###################################################################### # ROUTERS CONFIGURATION # # Specifies how addresses are handled # ###################################################################### begin routers smarthost: driver = manualroute transport = remote_smtp route_list = !+local_domains dedrelay.secureserver.net
然後我**
# dpkg-reconfigure exim4-config
*再次執行(我不確定我輸入的配置是否是唯一有效的配置,但它適用於我)*:- Internet site; - System mail name: xxx.secureserver.net (find yours in GoDaddy's My Hosting > Server > YourVPS > Settings tab > Hostname) - 127.0.0.1 ; ::1 - mydomain.com - Domain to relay: empty - Machines to relay: empty - DNS dial on demand: no - mbox - Split config: no
當然,您可能已經在 Internet 上看過一千次了,您可以使用以下命令測試配置:
echo "hello" | mail -s "Title" recipient@mail.com
但是,電子郵件可能需要大約 5 分鐘才能送達。了解電子郵件是否得到正確處理的更快方法是檢查 GoDaddy 網站上伺服器儀表板中的“SMTP 中繼”計數器是否正在增加。