我如何告诉 Postfix“边缘”MTA 假装它是 DSN 的最终目的地?

我如何告诉 Postfix“边缘”MTA 假装它是 DSN 的最终目的地?

我的问题是关于我的入站 Postfix 邮件服务器实例的传递状态通知 (DSN) 处理。然而,这个问题的解决方案可能完全超出了 DSN 的范围。

假设这是到达我的域的邮件流程。DEF在我的控制之下,而ABC属于发件人。

 A
  +----------+
  |          |
  |   MUA    |
  | (sender) |
  |          |
  +----+-----+
       |
       |
B      |            C                   D                  E
 +-----v-------+     +-----------+       +------------+     +------------+
 |             |     |  Outbound |INTERNET Inbound    | LAN | Local mail |
 | Submission  +----->  gateway  +-------> gateway    +---->+ storage    |
 | (MTA)       |     |  (MTA)    |       | (MTA)      |     | delivery   |
 |             |     |  sender   |       | recipient  |     | (MTA)      |
 +-------------+     +-----------+       +------------+     +-----+------+
                                                                  | LMTP
                                                             LAN  | (final
                                                                  | delivery)
                                                           F      |
                                                            +-----v------+
                                                            |            |
                                                            | Mailbox    |
                                                            | devlivery  |
                                                            | (MDA)      |
                                                            +------------+

D(边缘、面向互联网、高可用性)和E(内部、预算 SLA)是独立的机器,因为我想将可扩展性、安全性和可用性分开。这样,如果D廉价E网络/集群在灾难情况下发生故障,邮件可以排队数天。

发件人可以在其邮件客户端应用程序中请求 DSN(例如在 Thunderbird 中,在撰写视图菜单中启用 DSN),并且使用 Postfix 的默认设置,它会在将邮件E发送到 后立即通知发件人邮件已成功发送F在此 DSN 消息中,发件人会了解很多有关我的内部网络的信息,而这正是我想要避免的。

从 的角度来看D, 本身并不是邮件的最终目的地(因为E被配置为域的中继)。此外,当它中继到 时E,它在中继邮件后仍然不是最终目的地。这使得它只能在E通知发件人。

C我发现 Gmail 有一个非常优雅的方法。它在提交时以某种方式触发 DSN DDGmail 的边缘 MTA 在哪里)。我想知道如何配置我的 Postfix 实例,就像 Gmail 面向互联网的 MTA 一样。这将使发件人的出站 MTA 负责将传递状态通知远程 MTA。

由于我没有设置条件投递,因此沿此路径的退回被关闭,所有在 接受的邮件D都将以某种方式投递到邮箱。因此,我想在此时告诉远程 MTA 投递成功,并且我想禁用我自己的服务器上的任何进一步 DSN 处理。这应该可以让C发件人知道投递成功。

smtpd_discard_ehlo_keywords = silent-discard, dsn我已经尝试D按照Postfix 的 DSN 自述文件,但正如预期的那样,发件人根本就得不到任何通知,这实在是难以关闭。

简而言之;我怎样才能让 Postfix 告诉(欺骗)远程 MTACD是该消息的最终传送?
...试图模仿 Gmail 的处理方式。

相关内容