Smtp

如何設置 MX 記錄,使投遞導致臨時失敗

  • March 8, 2020

我正在將 SMTP 伺服器從一台主機移動到另一台主機。為了使事情對我來說盡可能簡單(因為我不在乎電子郵件是否會延遲幾個小時),我想採用這種策略:

  1. 我將該域的 MX 記錄設置為某個值,以確保每次傳遞嘗試都會導致臨時失敗,並等待 TTL 過期。這樣,嘗試發送的發件人將開始保留他們的消息,直到我完成為止。
  2. 我將郵箱和相關內容從舊主機複製到新主機。我測試新主機是否正常工作。發件人預計會保留幾天的延遲消息,所以我有足夠的時間。
  3. 我更新了 MX 記錄,使其指向新主機。只要發件人想要重試,他們就會在新主機上成功。

難點是#1:如何設置 MX 記錄,以便不嘗試實際傳遞並且消息延遲?設置 no MX 不起作用,因為那時會嘗試 A 或 AAAA 解析,並且我想將 A 和 AAAA 保留到舊主機以避免中斷其他服務。將其設置為不存在的域可以解決我的問題嗎?我不明白這樣的錯誤會被解釋為暫時的還是永久性的。

我不確定這是一個好的策略,如果可以避免的話,我不會在 DNS 級別嘗試。但是要實現它,只需找到您控制的 IP 地址,確保它沒有在埠 25 上偵聽任何內容,並將 A 記錄中的 MX 記錄指向該地址。如果您有時間,請為此記錄設置較低的優先級(較高的數字)和較低的 TTL。也將主 MX 的 TTL 設置為低。

您可以使用舊的 MX 伺服器並簡單地停止其上的 SMTP 服務 - 這可能是實現目標的最簡單方法,但不是 DNS 級別的解決方案。

您正在尋找實現遠端電子郵件排隊的伺服器是沒有在埠 25 上應答的伺服器或返回錯誤(例如 421)的伺服器。

我可能會嘗試不同的方法,或者通過設置伺服器來接受電子郵件並將其排隊,以便我可以在它再次啟動時將其刷新到主伺服器,或者(如果使用 maildir 格式)通過使用讓新消息立即進入伺服器並同步舊版本。理想情況下,您需要在此期間關閉 POP/IMAP。

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