是否有任何工具可以在某个时间窗口内将多封外发电子邮件限制/聚合为一封电子邮件?

是否有任何工具可以在某个时间窗口内将多封外发电子邮件限制/聚合为一封电子邮件?

我们正在开发一个可以在多个主机上运行的应用程序,一旦出现问题,它就会通过 Postfix 服务器向我们(开发人员 @gmail.com)发送电子邮件通知。但是,我们遇到了问题,应用程序会快速连续地发出数百个这样的错误,导致 Gmail 退回我们的邮件。这就是为什么我们首先对限制消息感兴趣,但理想情况下还将消息聚合在一起形成一个定期摘要,最多每分钟发出一次。有没有适合我们的工具或 Postfix 扩展?谢谢。

答案1

通过电子邮件报告错误是一种快速的解决方法 - 但正如您所发现的,它远非理想的解决方案。

最好的情况是,您提出的解决方案将延迟发送通知。

我建议你看一下 Nagios。除了安排在系统上运行检查外,它还可以配置为从其他来源(例如电子邮件)接收有关系统状态的通知,然后对通知、自动响应和升级做出明智的决定。

答案2

像 maililman 这样的邮件列表软件能够发送消息摘要,但我猜那些是用于每天发送,而不是每分钟发送一次。

为了这个目的运行您自己的服务器来接收尽可能多的邮件怎么样?

答案3

您能否编写应用程序将错误发送到日志文件,然后如果文件不为空则定期通过电子邮件将该文件发送给您?

最好在此级别处理这些错误,因为这样您可以更好地控制处理。

答案4

通常我更喜欢 Mailman 或 Majordomo 等邮件列表软件,或者政策用于在 Postfix 中实现发件人配额等,但这次有所不同:

如果你愿意写一些 Perl,qpsmtpd可以使用content_filterPostfix 中的参数将其挂接到 Postfix。只需编写您自己的 qpsmtpd 插件,该插件会跟踪节流和/或对消息进行排队,并将它们合并为一条消息,然后最终将其发送出去。

这听起来可能很繁琐,但实际上应该非常简单。几年前,我编写了一个插件,它可以限制通过 PHP 发送的邮件,并在达到一定阈值后开始隔离这些邮件,以防止脚本小子发送垃圾邮件。阈值簿记是在 MySQL 中完成的。整个脚本(包括注释和简短的帮助部分)只有 132 行代码。

qpsmtpd 已经捆绑了许多插件,因此只需从中学习基础知识并编写自己的插件即可。这可能会导致重新发明轮子。

相关内容