Courier 如何處理無法投遞的消息?
週三,我們的主機出現了一個不相關的電子郵件問題,他們進行了一些更改,包括
foo.com
從/etc/local_domains
.這有一些深遠(且難以診斷)的影響,我們實際上直到週四才注意到郵件根本沒有送達。我在星期四錯誤地試圖找出我們的電子郵件 cronjobs 出了什麼問題,但在星期五我終於找到了真正的問題並修復了它。
現在的問題是過去兩天失去了**很多電子郵件。**如果可能的話,我需要找到那些失去的消息,但不幸的是,Google搜尋“失敗的電子郵件去哪裡”會導致一堆關於肉類空間運輸的新聞報導。我已經檢查過了,
/var/mail
但裡面的文件是空的——我猜 cPanel 或 Courier 做了我不希望用電子郵件做的事情。**我的問題是:**那個時期無法投遞的郵件會去哪裡?有沒有可能它們仍然存在於某個地方並且我可以恢復它們?
cpanel /etc/local_domains 可能用於配置 exim,而不是 courier。傳入的電子郵件通過 smtp 傳遞,而不是 pop 或 imap。
所以這就是發生的事情:
- 遠端郵件伺服器為您的域尋找 MX 伺服器
- 您的 dns 配置可能已設置為使您的 cpanel 伺服器是您的域具有最佳優先級的 MX 伺服器
- 連接到伺服器上 exim 的遠端郵件伺服器。由於您的域未在 exim 上配置,exim 將連接解釋為 RELAY 請求,並且很可能告訴遠端郵件伺服器被塞滿。
所以電子郵件不在您的伺服器上,抱歉。
那麼希望就很小了:如果 Exim 拒絕了帶有 5xx 錯誤消息的傳入電子郵件,那麼遠端伺服器保留該消息的可能性很小。但是,如果 Exim 拒絕了帶有 4xx 錯誤消息的傳入電子郵件,那麼可能會發生 2 件事:
- 您已經為您的域配置了多個 MX 伺服器。去看看其他郵件伺服器是否有任何機會收到電子郵件並將它們儲存起來以備將來發送。
- 4xx 錯誤消息應該是“臨時的”,因此這意味著遠端郵件伺服器會將消息保留在隊列中並在一段時間內再次嘗試,具體取決於它們的配置。也許您目前收到的“舊”電子郵件在您的配置錯誤時被拒絕。
因此,為了查找是否為您的域配置了其他 MX 伺服器:
dig foo.com mx
然後為了檢查您的 SMTP 伺服器對中繼請求的回答:
- 在遠端客戶端上(重要的是要有一個外部 IP 地址):
遠端登錄您的伺服器 IP 地址 25
HELO samu.com
發件人:
<anything@anything.com>
RCPT 至:
<someone@gmail.com>
在每一行(HELO、MAIL FROM、RCPT TO)之後,您將得到伺服器的答复。RCPT TO 的答案:應該是 5xx .. 或 4xx .. 。如果是 4xx 你還有一點希望。