Postfix:如何根据收到的消息的频率触发 body_check?

Postfix:如何根据收到的消息的频率触发 body_check?

我们有一个商业的、闭源的、重要的服务器设备,其基本的电子邮件通知机制有很多不足之处。Postfix 作为内部中继器做得很好,可以将服务器的电子邮件通知转发给我们的员工 (gmail)。

有时,根据发生的事件,服务器可能会生成数百条相同的通知 - 我在 15 分钟内看到过 800 封相同的电子邮件。当然,这是一个很大的麻烦,我怀疑 Gmail 对此也不太高兴;我想使用 Postfix 来智能地过滤这些情况。

这不是您通常的“防范垃圾邮件发送者”的情况。常见的速率限制器 smtpd_error_sleep_time 和 smtpd_soft_error_limit 可处理错误的客户端。

  1. 如何设置一个根据传入消息的频率触发 body_check 的过滤器?

  2. 我认为有几种方法可以解决此问题:

  • 如果在过去 X 秒内发送了相同的正文消息,则丢弃(丢弃?)该消息。
  • 比较所有消息并根据相同正文进行合并
  • 将相同的消息合并为摘要(每封电子邮件只有 4 行,我宁愿收到 8 封电子邮件,每封 400 行,而不是 800 封 4 行电子邮件。)

但是我是 Postfix 新手,考虑到此功能和优先级,我会选择简单、直接的解决方案。例如,部署“真实内容过滤程序”来进行高强度的队列后检查似乎有点过头了。希望内置的内容检查流程能够满足要求。

答案1

本来想顶一下……但我越来越明白,作为 MTA,postfix 并不真正处理这类事情。我发现一个解决方案是安装 Dovecot 和 Sieve/Pigeonhole。它有一个重复数据删除扩展

当我仔细思考时,听起来对于我想要实现的目标来说仍然很复杂,例如设置 IMAP 和中间电子邮件帐户(Gmail 将接受)... 而且 Postfix 确实有内置内容检查功能

相关内容