【问题标题】:Do not send mails with duplicate subjects不要发送主题重复的邮件
【发布时间】:2011-01-16 16:54:21
【问题描述】:

我们有不同的流程在遇到问题时发送邮件(例如,没有足够的权限对​​某个订单项目执行操作)。这可以正常工作,有时每 5 分钟发送一次相同的消息。在我们的环境中,在应用层同步邮件发送是非常困难的(实际上有不同的应用程序发送邮件,所以如果我们要在应用层实现这个,我们必须接触每个应用程序)。

对我来说,最好在电子邮件层中过滤掉邮件(按重复的主题)似乎是合乎逻辑的,例如接收 SMTP 请求的应用程序。

然而,我们也不希望自己深入到 SMTP 层,而是使用现有的服务/应用程序。

是否有人知道进行这种过滤的网络邮件程序(如 googlemail)?对我们来说,为这种服务付费是可以的,所以“像啤酒一样免费”会很好,但不免费并不是一件好事。

提前致谢 霍尔格

【问题讨论】:

    标签: email smtp duplicates


    【解决方案1】:

    我发现通过Subject: 标头过滤重复电子邮件的想法非常令人担忧。如果它们是由多个应用程序生成的,您如何确定消息的内容是重复的,并且您不会无意中丢弃重要通知?

    邮件的唯一独特功能可用于过滤掉重复邮件是其Message-ID: 标头。如果两条消息的标头相同,则通常可以合理地假设它们是相同原始消息的副本 - 例如一份直接收到,一份抄送至邮寄名单。

    也就是说,您几乎可以在大多数 SMTP 服务器上做任何您想做的事情 - 至少是那些基于类 Unix 操作系统的服务器。例如,Postfix can use custom shell scripts for filtering

    例如,您可以使用formail 提取每条消息的正文并生成其 MD5 哈希。同时比较邮件正文哈希与Date:Subject:From:To:Cc: 标头是检测真正重复的良好开端。

    【讨论】:

    • 我不认为所描述的消息是 bytewise 相等的,只是它们在功能上是重复的。 (如果它们是由不同的来源生成的,那么最终很难得到字节重复。)但是答案的其余部分似乎是合理的,即使它只是基于Subject 进行重复数据删除。
    • 嗨,感谢 cmets;内容将相同,因为它们涉及相同类型的问题。
    • 抱歉,我的网络连接损坏了之前的评论 --- 嗨,感谢大家的时间和 cmets。我会看看 postfix,虽然我宁愿不要在我们这边安装任何邮件传输代理(出于安全原因)。我的 cmets 与您的 cmets:就技术支持必须完成的工作而言,发送的电子邮件将是相同的(“功能相同”)。但是,邮件肯定会有不同的 message-id。
    • 术语“多个应用程序”可能会让人感到困惑。一方面,在不同的服务器上运行相同的二进制文件。这些应用程序做同样的事情,但正如我所说,可能在不同的硬件甚至不同的网络上。这就是为什么很难在一个应用程序中同步消息的原因。 otoh 我们有不同类型的应用程序,例如自动离线流程、网站或监控。其中一些应用程序是我们自己开发的,但不是全部。这就是为什么我宁愿寻找 SMTP 级别的解决方案,而不是修改这些应用程序中的每一个。
    • 为什么可以忽略重复的电子邮件?首先或最重要的是,我们对主题负责,我们可以修改它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 2017-03-30
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 2022-06-30
    • 1970-01-01
    相关资源
    最近更新 更多