指定多个传输目的地后缀

指定多个传输目的地后缀

我的问题类似于这个,但这并不意味着我希望电子邮件始终发送到两个目的地。相反,我试图找到一种方法,为每个收件人域提供多个下一跳目的地,这样,如果我将邮件转发到具有多个 MX 的外部目的地,并且其中一个发生故障,它会尝试下一个。

我发现这个问题的“解决方案”在这里不起作用:

  1. 密件抄送:: 如果我尝试以不同的方式发送到同一地址,这无法解决问题
  2. 创建新协议像这样):: 我认为这个解决方案体现了问题,因为 postfix 确实似乎允许回退传输,但仅限于全球范围(阅读:如果收件人的主传输发生故障,则将所有邮件(无论收件人是谁)发送到以下服务器)。我的设置中的新协议不切实际,因为我可能有许多域需要中继。
  3. 任何这是:: 这似乎谈论我想要实现的目标,但我再次感觉这仅适用于全球容量。这也令人困惑,因为它似乎暗示您可以指定多个传输,但如果您尝试,Postfix 当然不会有这些:

    使用多行:

    postmap: warning: duplicate entry
    

    使用同一行:

    fatal: garbage after "]" in server description
    

    我不知道,也许我只是误解了语法或者其他什么。

  4. DNS:: 一些建议涉及设置内部 DNS 并设置 MX 记录以指向多个目的地。这也是一个不切实际的解决方案。

我觉得很奇怪,Postfix 没有能力允许定义多个传输,因为拥有多个 MX 的域是如此常见,所以我只是假设 Postfix 确实有这种我尚未找到记录或理解的能力,并且那些奇怪的“变通方法”是不必要的。

是否有人知道我的假设是正确的(在这种情况下,我该如何进行设置?)还是错误的(在这种情况下,您是否找到了可扩展的解决方案?)?

###编辑###

为了解释我的设置,这是一个入站垃圾邮件过滤器(还有其他用途),使用它的域会将其 MX 记录设置为指向此服务器以进行邮件过滤,然后在过滤后将其转发到目标传输。因此,简单地要求 Postfix 执行 MX 记录的 DNS 查找是行不通的,因为它只会得到自己作为结果。

答案1

您的编辑注释中的前提是错误的。MX 协议/决策树/无论什么都是为处理此问题而设计的。

为了解释我的设置,这是一个入站垃圾邮件过滤器(还有其他用途),使用它的域会将其 MX 记录设置为指向此服务器以进行邮件过滤,然后在过滤后将其转发到目标传输。因此,简单地要求 Postfix 执行 MX 记录的 DNS 查找是行不通的,因为它只会得到自己作为结果。

MX 记录的工作方式是,给定类似

MX    10 mail.example.com.
MX    20 backupmx.example.com.
MX    30 mail.virusco.com.
MX    40 backupmx.virusco.com.

mail.example.com设置为仅接受来自其他 3 个服务器的传入 SMTP 连接(例如防火墙和连接到端口 25)。该backupmx.example.com服务器设置为仅接受来自 2 个 virusco.com 服务器的邮件。两个 virusco.com 服务器配置为作为 MX 服务器接受来自世界各地的邮件,例如 example.com

我的服务器 - foo.org - 无法访问 mail.example 或 backupmx.example(根据配置设计),因此它将邮件发送到 mail.virusco,后者配置为通过正常 SMTP MX 决策将邮件转发到 mail.example。

这意味着如果 mail.example 宕机,并且 backupmx.example 也宕机,mail.virusco 只会保留邮件并“稍后”重试

如果 mail.virusco 暂时瘫痪,邮件将发送到 backupmx.virusco,进行扫描,然后 backupmx.virusco 按照 MX 决策树尝试按顺序投递给 mail.example、backupmx.example、mail.virusco,如果均未成功,它也会在邮件中停留“一段时间”,然后重试投递。

您甚至可以将 backupmx.example 完全从系统中移除,它仍会以那种方式工作。优先级较低(值较高)的 MX 服务器将尝试向优先级最高(数字最低)的服务器发送邮件,直到到达自身,此时它将停留在自身上并稍后重试。

答案2

Postfix 不支持此功能。在此之前,请将您的传输设置为指向 smtp 或 lmtp 负载均衡器。

相关内容