Smtp

GoDaddy:exim4 接收電子郵件但無法發送“無路由到主機”錯誤

  • January 10, 2021

在由 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 中繼”計數器是否正在增加。

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