Email

mutt:無法連接到 <smtp_url>(沒有到主機的路由)

  • August 27, 2019

我最近安裝neomutt了我全新的 Arch 安裝。我設置我的 .muttrc 如下:

# Receive mail
set imap_user   = name@example.org
set folder           = imap://imap.example.org/
set spoolfile      = +INBOX

# Send mail
set realname    = 'name'
set from            = name@example.org
set use_from    = yes
set smtp_url     = smtp://$imap_user:$imap_pass@smtp.example.org
set ssl_starttls  = yes
set editor          = nano
set record         = +Sent


mailboxes =INBOX


# Store message headers locally to speed things up.
# If hcache is a folder, Mutt will create sub cache folders for each account which may speeds things up even more.
set header_cache = ~/.cache/mutt

# Allow Mutt to open a new IMAP connection automatically.
unset imap_passive

# Keep the IMAP connection alive by polling intermittently (time in seconds).
set imap_keepalive = 300

# How often to check for new mail (time in seconds).
set mail_check = 120

注意:根據neomutt的文件,可以呼叫rc文件.muttrc,所以這不是問題

我可以毫無問題地接收電子郵件。當我嘗試發送電子郵件時,問題就來了。我收到以下錯誤消息:

Could not connect to smtp.example.org (No route to host).

當我這樣做時,ping smtp.example.org我得到:

PING example.org (11.111.111.111) 56(84) bytes of data.
64 bytes from vn.example.org (11.111.111.111): icmp_seq=1 ttl=52 time=92.7 ms
64 bytes from vn.example.org (11.111.111.111): icmp_seq=2 ttl=52 time=93.4 ms
64 bytes from vn.example.org (11.111.111.111): icmp_seq=3 ttl=52 time=94.6 ms
64 bytes from vn.example.org (11.111.111.111): icmp_seq=4 ttl=52 time=95.1 ms
64 bytes from vn.example.org (11.111.111.111): icmp_seq=5 ttl=52 time=92.9 ms
64 bytes from vn.example.org (11.111.111.111): icmp_seq=6 ttl=52 time=93.3 ms
64 bytes from vn.example.org (11.111.111.111): icmp_seq=7 ttl=52 time=91.8 ms

這告訴我這一定是我這邊的問題,而不是伺服器的問題。我已經嘗試更改我的配置,檢查 smtp url 上的任何不可見字元,重置我的 PC 和路由器,但問題仍然存在。

有人可以告訴我為什麼會發生這種情況以及如何解決它以發送電子郵件?

非常感謝你!

“這告訴我這一定是我這邊的問題,而不是伺服器的問題。”

沒有。這告訴您存在一台名為 smtp.example.org 的機器,它有 11.111.111.111,平均往返延遲約為 91 毫秒。僅此而已。

一旦你嘗試做一些比發送 icmp echo 請求更複雜的事情,example.org 防火牆上的一些安全觸發器可能會告訴你的機器 smtp.example.org 不存在,因此你從 mutt 得到錯誤消息。

但您使用的語法很可能是錯誤的

set smtp_url     = smtp://$imap_user:$imap_pass@smtp.example.org

neomutt 的手冊

如果這些協議以“s”後綴表示“安全通信”,NeoMutt 可以嘗試加密與遠端伺服器的通信。

嘗試在網址中添加“s”。這將嘗試使用 ssl/tls 進行連接。

set smtp_url     = smtps://$imap_user:$imap_pass@smtp.example.org

但首先檢查是否編譯了 smtp(可選功能!)和 ssl 支持(可選功能!)

neomutt -v

如果它不起作用,您應該查看您的提供商的資訊。是否支持 SASL?如果通過 SASL 進行身份驗證,則必須配置SASL 部分

乾杯

引用自:https://unix.stackexchange.com/questions/537591