Postfix:依靠具有 Internet 存取權限的 SMTP 中繼

Postfix:依靠具有 Internet 存取權限的 SMTP 中繼

我有一個場景:

  1. Postfix 伺服器 M(儲存郵件)
  2. Postfix 伺服器 A(使用網際網路連線 IA 中繼郵件)
  3. Postfix 伺服器 B(使用網際網路連線 IB 中繼郵件)
  4. 內部 DNS 伺服器(進行本機名稱解析)

伺服器M、A和B位於同一個網路LAN中,這意味著即使網路連線IA和IB斷開,M&A和M&B之間的通訊也不一定會斷開,所以我不能使用Postfix的smtp_fallback_relay選項為了這。

現在,我需要伺服器 M 僅提交到在中繼到它時具有互聯網連接的伺服器。

我們怎樣才能做到最好?

我們嘗試了什麼

我和我的同事分享了兩種選擇(並非詳盡無遺):

  1. 建立腳本以使中繼郵件在郵件儲存 (M) 的感知中從「LAN」離線,以便它回退到回退中繼
  2. 在dns 伺服器(D) {或M 上的等主機中,任何更好,但M 的基本DNS} 上建立腳本,該腳本將mail-relay.ourdomain.com 更改為指向具有互聯網的伺服器郵件中繼A 或 B使用足夠小的 TTL 進行存取(例如 5 秒)

這兩個選項在大多數情況下都有效,我需要的是為什麼它們不起作用(使用其中一個有任何危險)?

答案1

這兩種方法的問題都是賽車狀況,即您的互聯網正在運行,A 或 B 確認已成功傳送給他們,但是當 A 或 B 嘗試將其轉發到互聯網時,連接就消失了。

上述場景是可能的,因為電子郵件在 postfix 中的流動方式。

Email from client ---> Received ---> Queued -> Sent

當電子郵件已排隊時,伺服器 A 中的 Postfix 會向 M 發送確認電子郵件已被 A 接受的訊息。因此,當 postfix 嘗試向網路發送電子郵件時,連線可能會被切斷,並且您的電子郵件將排隊直到連線再次恢復。

注意:這種行為在典型的 MTA 中是預料之中的。請記住,SMTP 是儲存並轉發協定.

相關內容