Назад | Перейти на главную страницу

Существуют ли какие-либо инструменты для ограничения / объединения нескольких исходящих писем в одно письмо в течение некоторого временного окна?

Мы разрабатываем приложение, которое работает на нескольких хостах и ​​отправляет нам (разработчикам @ gmail.com) уведомления по электронной почте, когда что-то идет не так, через сервер postfix. Однако мы столкнулись с проблемами, когда приложение выдает сотни таких ошибок в быстрой последовательности, что приводит к тому, что Gmail отклоняет наши сообщения. Вот почему нас интересует в первую очередь регулирование сообщений, но в идеале также объединение сообщений в периодический дайджест, который отправляется не чаще одного раза в минуту. Подходят ли нам какие-либо инструменты или расширения Postfix? Спасибо.

Программное обеспечение списков рассылки, такое как maiilman, способно отправлять дайджесты сообщений, но я думаю, они предназначены для ежедневной отправки, а не раз в минуту.

А как насчет того, чтобы запустить для этой цели собственный сервер, который принимает столько писем, сколько необходимо?

Отправка сообщений об ошибках по электронной почте - это быстрый способ, но, как вы понимаете, это далеко не идеальное решение.

В лучшем случае предлагаемое вами решение задержит отправку уведомлений.

Я бы рекомендовал взглянуть на Nagios. Помимо планирования проверок для запуска в системах, его также можно настроить для приема уведомлений о состоянии системы из других источников (например, электронной почты), а затем принятия интеллектуальных решений об уведомлениях, автоматических ответах и ​​эскалациях.

Не могли бы вы написать свое приложение для отправки ошибок в файл журнала, а затем периодически отправлять этот файл вам по электронной почте, если он не пустой?

Возможно, будет предпочтительнее обрабатывать эти ошибки на этом уровне, поскольку у вас будет больше контроля над обработкой.

Обычно я предпочитаю программное обеспечение для списков рассылки, такое как Mailman или Majordomo, или Политический для реализации квот отправителей и т. д. в Postfix, но на этот раз просто иначе:

Если вы хотите написать немного Perl, qpsmtpd можно подключить к Postfix с помощью content_filter параметр в Postfix. Просто напишите свой собственный qpsmtpd-плагин, который отслеживает регулирование и / или ставит сообщения в очередь и объединяет их в одно сообщение перед окончательной отправкой.

Это может показаться трудоемким, но на самом деле должно быть на удивление легко. Пару лет назад я написал плагин, который ограничивал почту, отправляемую через PHP, и начинал помещать ее в карантин после определенного порога, чтобы предотвратить рассылку спама скриптами. Учет пороговых значений производился в MySQL. Весь сценарий, включая комментарии и небольшой раздел справки, состоял всего из 132 строк кода.

qpsmtpd уже связан со многими плагинами, поэтому просто изучите основы из них и напишите свой собственный. Это может привести к изобретению колеса.