У нас есть коммерческое, важное серверное устройство с закрытым исходным кодом, чей элементарный механизм уведомлений по электронной почте оставляет желать лучшего. Postfix прекрасно работает в качестве внутреннего ретранслятора для пересылки уведомлений по электронной почте с сервера нашим сотрудникам (gmail).
Время от времени, в зависимости от происходящих событий, сервер может генерировать сотни одинаковых уведомлений — я видел 800 одинаковых писем за 15 минут. Конечно, это большая неприятность, и я сомневаюсь, что Gmail тоже этому рада; Я хотел бы использовать Postfix для интеллектуальной фильтрации таких ситуаций.
Это не обычная ситуация с "защитой от спамеров". Общие ограничители скорости smtpd_error_sleep_time и smtpd_soft_error_limit имеют дело с ошибочными клиентами.
Как настроить фильтр, который запускает body_check на основе
частота входящих сообщений?
Я вижу несколько способов сделать это:
- Отбросить (отбросить?) сообщение, если идентичное тело сообщения было отправлено за последние X секунд.
- Сравните все сообщения и объедините их на основе идентичного тела
- Объедините одинаковые сообщения в дайджест (каждое письмо состоит всего из 4 строк, я бы предпочел получить 8 писем по 400 строк каждое вместо 800 писем по 4 строки).
Однако я новичок в Postfix и, учитывая эту функцию и приоритеты, я бы выбрал простое и понятное решение. Например, развертывание «реальной программы фильтрации содержимого» для усиленной проверки после очереди кажется излишним. Надеюсь, встроенного процесса проверки контента будет достаточно.