后缀:回到有互联网访问的SMTP中继

我有一个场景,我有:

  1. Postfix服务器M(存储邮件)
  2. Postfix服务器A(使用Internet连接IA继续邮件)
  3. Postfix服务器B(使用Internet连接IB继续邮件)
  4. 内部DNS服务器(本地名称parsing)

服务器M,A和B位于同一个networkingLAN,这意味着即使互联网连接IA和IB掉线,M&A和M&B之间的通信也不一定会下降,所以我不能使用Postfix的smtp_fallback_relay选项为了这。

现在,我需要服务器M只提交到中继到它将有互联网连接的服务器。

我们怎样才能做到最好?

我们尝试了什么

我的同事和我分享了两个select(不详尽):

  1. 创build脚本,使邮件存储(M)感知中的“LAN”使中继邮件脱机,以使其回退到其回退中继
  2. 在dns服务器(D)上创build一个脚本(或者在M上的etc主机上,不pipe哪个更好,但是M的基本DNS),改变mail-relay.ourdomain.com指向具有Internet的服务器邮件中继A或B用足够小的TTL访问(比如说5秒)

这两个选项大部分工作,我需要的是为什么他们不会工作(使用其中之一的危险)?

两种方法的问题都是赛车状况 ,即您的互联网正在工作A或B承认成功交付给他们,但是,当A或B试图将其转发到互联网时,连接已经消失。

以上情况是可能的,因为电子邮件如何在后缀中stream动。

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

服务器A中的Postfix将发送确认邮件已经排队的电子邮件已被A接受。 所以,当postfix尝试发送电子邮件到互联网时,连接被切断,您的电子邮件将排队,直到连接再次返回。

注意:这种行为在典型的MTA中是预期的。 请记住,SMTP是存储和转发协议。