Domain-Name-System

無法訪問 SMTP 伺服器,郵件程序守護程序沒有錯誤

  • April 15, 2020

我想知道當我嘗試將電子郵件發送到相應伺服器沒有執行有效的 SMTP 守護程序實例的地址時(無論出於何種原因),我應該期待什麼行為。

**我的期望:**負責傳出 SMTP 請求的 Mailer 守護程序應該檢測到有問題,並為發件人生成錯誤消息。

**現實:**郵件沒有錯誤地發出,似乎就消失了。

我知道基本上每個人都應該知道,一封沒有錯誤的電子郵件並不意味著它已經安全到達,但我想我可能在這裡遺漏了一些東西。

細節:

有一個正在執行的 Debian 主機,執行著一些其他守護程序,但據我所知,沒有任何與郵件相關的內容,所以絕對沒有在監聽埠 25。我剛剛完成了一個域的設置,其 DNS A 記錄指向 IP這個主機,但沒有任何 MX 記錄,所以如果我沒記錯的話,它會回退到 A 記錄。

現在不幸的是,電子郵件地址轉發設置或郵件伺服器管理不是我以前有過的經驗,但將來我可能也想使用這個域來處理電子郵件。因此,我認為探索如果沒有任何先前的設置會發生什麼會很有趣,我嘗試將一些東西發送到該域中的一個虛構使用者的地址。它會返回一些合理的錯誤資訊嗎?我已經從 gmail 和 proton 嘗試過,但如上所述,他們沒有任何抱怨。知道埠 25 上沒有服務,這很奇怪。使用 telnet,我得到埠 25 的“無法連接到遠端主機:連接被拒絕”,這是我所期望的。

當然,在這種情況下,無法訪問的原因是顯而易見的,但我認為如果以前工作的 SMTP 守護程序停止或主機離線,情況不會有太大不同。

那麼我錯過了什麼?

如果這是可以預料的事情並且不要驚慌,那麼我認為應該很清楚,在我這樣的情況下,應該設置一個 SMTP 守護程序來明確拒絕任何傳入的內容,對嗎?

更新

正如下面提到的,結果我有點不耐煩,過了一段時間我收到了我失去的通知。

為了將來參考,以下是我嘗試過的這兩種服務的時間間隔。

郵箱:

  • 來自 mailer-daemon 的第一條消息大約在 T+26h 時發出,說系統將嘗試再發送 45 小時。
  • 第二條消息是在 T+53h 發出的,並承諾再嘗試 19 個小時。
  • 最後,第三條消息在 T+75h 出現,說明失敗。

對這種現象感到困惑,我又嘗試了兩次,結果相似:

  • T+25h30m, T+51h, T+75h
  • T+26h, T+50h, T+77h

所有消息都附有描述FAILED_PRECONDITION: connect error (111): Connection refused,這與我之前得到的 telnet 響應一致。

質子郵件:

  • 首先在 T+13h 發送了來自 mailer-daemon 的警告,其中包含將重試傳遞的消息,直到郵件存在 2 天。
  • 第二次也是最後一次通知如承諾的那樣在 T+49h 發出。

同樣,兩條消息都Diagnostic-Code: [...] Connection refused按預期顯示了該聲明。

如果郵件是從正常正確配置的郵件伺服器發送的,您將不會立即看到任何錯誤消息。您可能很快就會收到一個(大約 12 小時後)。

發生了什麼:接受來自使用者的郵件到您的 debian 伺服器的郵件伺服器將此消息放入隊列中。在下一步中,它會嘗試清空此隊列,以初始化與適合收件人域的 smtp 伺服器的連接。你是對的,它將是 MX 或 A。

如果無法立即傳遞消息(如您​​的情況),它將被推遲,並在幾分鐘/幾小時/幾天內進行另一次嘗試。如果這另一次嘗試失敗,您可能會收到郵件程序守護程序的通知,即消息仍在隊列中並且到目前為止無法傳遞,但伺服器將繼續嘗試。

它可能會持續一周左右。一周後,伺服器將假定郵件根本無法投遞,並將向您發送“已退回郵件”通知,表示郵件無法投遞,現在已從隊列中刪除。

我提到的所有這些時間間隔都取決於郵件伺服器的配置,您無法提前告訴您何時將第一個通知郵寄給您,以及伺服器何時停止嘗試。

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