在某个时间窗口内是否有任何工具可将多个传出的电子邮件聚合成一封电子邮件?

我们正在开发一个在多个主机上运行的应用程序,并在发生问题时通过邮件通知我们(开发人员@ gmail.com),通过后缀服务器。 但是,我们遇到了应用程序快速连续发布数百个这样的错误的问题,导致Gmail反弹我们的信息。 这就是为什么我们首先感兴趣的是扼杀消息,但理想情况下也是将消息汇总成每分钟最多发送一次的定期摘要。 有没有适合我们的工具或Postfix扩展? 谢谢。

错误报告通过电子邮件是一个快速黑客 – 但你发现它远非理想的解决scheme。

充其量,您提出的解决scheme将延迟发送通知。

我build议看看Nagios。 除了在系统上运行计划检查之外,还可以configuration接受来自其他来源(例如电子邮件)的关于系统状态的通知,然后对通知,自动响应和升级做出明智的决定。

像maiilman这样的邮件列表软件能够发送消息摘要,但我想这些是每天发送,而不是一分钟。

为了这个目的而运行你自己的服务器,接受尽可能多的邮件?

你不能写你的应用程序发送错误的日志文件,然后通过电子邮件定期发送该文件,如果它不是空的?

在这个级别上处理这些错误可能是更可取的,因为您可以更好地控制处理。

通常我更喜欢邮件列表软件,比如Mailman或Majordomo,或者Policyd在Postfix中实现发件人配额等,但是这次只是有所不同:

如果您愿意编写一些Perl, 则可以使用Postfix中的content_filter参数将qpsmtpd挂接到Postfix。 只需编写自己的qpsmtpd-plugin,它会跟踪限制和/或排队消息,并在最终发送消息之前将它们组合为单个消息。

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

qpsmtpd已经和许多插件捆绑在一起了,所以只要从这些插件中学习基础知识并编写自己的。 这可能会导致重新发明车轮。