Мы разрабатываем приложение, которое работает на нескольких хостах и отправляет нам (разработчикам @ gmail.com) уведомления по электронной почте, когда что-то идет не так, через сервер postfix. Однако мы столкнулись с проблемами, когда приложение выдает сотни таких ошибок в быстрой последовательности, что приводит к тому, что Gmail отклоняет наши сообщения. Вот почему нас интересует в первую очередь регулирование сообщений, но в идеале также объединение сообщений в периодический дайджест, который отправляется не чаще одного раза в минуту. Подходят ли нам какие-либо инструменты или расширения Postfix? Спасибо.
Программное обеспечение списков рассылки, такое как maiilman, способно отправлять дайджесты сообщений, но я думаю, они предназначены для ежедневной отправки, а не раз в минуту.
А как насчет того, чтобы запустить для этой цели собственный сервер, который принимает столько писем, сколько необходимо?
Отправка сообщений об ошибках по электронной почте - это быстрый способ, но, как вы понимаете, это далеко не идеальное решение.
В лучшем случае предлагаемое вами решение задержит отправку уведомлений.
Я бы рекомендовал взглянуть на Nagios. Помимо планирования проверок для запуска в системах, его также можно настроить для приема уведомлений о состоянии системы из других источников (например, электронной почты), а затем принятия интеллектуальных решений об уведомлениях, автоматических ответах и эскалациях.
Не могли бы вы написать свое приложение для отправки ошибок в файл журнала, а затем периодически отправлять этот файл вам по электронной почте, если он не пустой?
Возможно, будет предпочтительнее обрабатывать эти ошибки на этом уровне, поскольку у вас будет больше контроля над обработкой.
Обычно я предпочитаю программное обеспечение для списков рассылки, такое как Mailman или Majordomo, или Политический для реализации квот отправителей и т. д. в Postfix, но на этот раз просто иначе:
Если вы хотите написать немного Perl, qpsmtpd можно подключить к Postfix с помощью content_filter
параметр в Postfix. Просто напишите свой собственный qpsmtpd-плагин, который отслеживает регулирование и / или ставит сообщения в очередь и объединяет их в одно сообщение перед окончательной отправкой.
Это может показаться трудоемким, но на самом деле должно быть на удивление легко. Пару лет назад я написал плагин, который ограничивал почту, отправляемую через PHP, и начинал помещать ее в карантин после определенного порога, чтобы предотвратить рассылку спама скриптами. Учет пороговых значений производился в MySQL. Весь сценарий, включая комментарии и небольшой раздел справки, состоял всего из 132 строк кода.
qpsmtpd уже связан со многими плагинами, поэтому просто изучите основы из них и напишите свой собственный. Это может привести к изобретению колеса.