Exim 發送失敗“421 SMTP 傳入數據超時” - 消息正文末尾缺少 ’n'
我試圖弄清楚這個問題是如何發生的以及如何阻止它。不知何故,消息正在進入我們的入站 Exim 假離線,最後沒有任何 \n。當我們的出站 Exim 程序嘗試傳遞這些郵件時,它們會失敗,因為 Exim 輸出 ‘.’ 與剛剛發送的那一行在同一行。我已經通過使用 tcpdump 擷取雙方的 SMTP 對話來驗證這一點
tcpdump 顯示最後發送以下內容:
<!–www。https://example.com-- ><!–www. https://example.com-- >。
這不是 DATA 的正確終止。最終接收 MTA 響應
421 失去的傳入連接
通過 spool 傳遞消息
od
,我在消息正文的末尾看到:0011700 電子。com - - >
沒有\ns。這些卡在假離線中的消息似乎只是垃圾郵件。我在出站日誌中看到的,
1NLolk-0003aD-3V == email@example.com R=Storage T=Storage defer (-46):數據結束後來自遠端郵件伺服器的 SMTP 錯誤:主機 192.168.1.3
$$ 192.168.1.3 $$: 421 mda.local SMTP 傳入數據超時 - 關閉連接。
有沒有人有任何想法?“message_suffix”參數聽起來像是一個很好的創可貼,但它只適用於 appendfile 和 pipe。
我就此諮詢了 Exim 郵件列表,看起來問題出在 MailScanner 的內容過濾器上。我們有 MailScanner 為我們進行病毒/垃圾郵件掃描,當它清理郵件的尾部時,它似乎在某些郵件上,
\n
被遺漏了,並且郵件被放入出站 Exim 隊列中,處於使 Exim 無法傳遞的狀態它。Exim 沒有斷言它\n
在嘗試結束 SMTPDATA
傳輸之前已經發送了.
,一些 Exim 開發人員目前正在爭論這個問題。