Внешние Фильтры Сообщений

Подключение и настройка Помощников
Semyon
Support Engeneer
Сообщения: 124
Зарегистрирован: 16:0, 29 июл 2015

Внешние Фильтры Сообщений

Непрочитанное сообщение Semyon » 16:0, 07 авг 2015

Программы - Внешние Фильтры Сообщений используются для фильтрования содержимого (от вирусов и спама).

Протокол Интерфейса Внешнего Фильтра основывается на обычном Протоколе Помощников.
В этом разделе описывается Версия 3 Протокола Внешнего Фильтра.

Программа должна обрабатывать запросы Внешнего Фильтра:

Код: Выделить всё

    seqNum FILE fileName


где fileName является именем файла, который программа должна сканировать.


Если обработка сообщения должна продолжаться, то строка с ответом должна иметь следующий формат:

Код: Выделить всё

    seqNum OK

Если обработка сообщения должна продолжаться, но внешний фильтр желает добавить к сообщению поле заголовка, то строка с ответом должна иметь следующий формат:

Код: Выделить всё

    seqNum ADDHEADER header-field-text


где header-field-text является текстовой строкой с одним или несколькими полями заголовков в RFC822. Этот текст (опционально - из нескольких строк) должен быть помещен в строку ответа в формате Строка


Если сообщение должно быть отвергнуто, то строка с ответом должна иметь следующий формат:

Код: Выделить всё

    seqNum ERROR report


где report - текстовая строка, объясняющая, почему сообщение было отвергнуто. Этот текст (опционально - из нескольких строк) должен быть помещен в строку ответа в формате Строка


Если сообщение должно быть выкинуто, то строка с ответом должна иметь следующий формат:

Код: Выделить всё

    seqNum DISCARD

Если обработка сообщения должна отложена (из-за лицензионных ограничений, например), то строка с ответом должна иметь следующий формат:

Код: Выделить всё

    seqNum REJECTED report


где report - текстовая строка, объясняющая, почему обработка сообщения должна быть отложена.


Если программа получает запрос, который она не может обработать, то она должна возвращать ответ FAILURE:

Код: Выделить всё

    seqNum FAILURE


где seqNum - идентификатор запроса.

Если программа отправила ответ FAILURE или любой другой ответ, то Сервер помещает запись в Журнал работы Сервера и обрабатывает его как ответ OK.
Программа ДОЛЖНА быть готова обрабатывать несколько запросов одновременно (используя несколько нитей). Так как Программа Внешнего Фильтра используется вместе с используется с Правилами, Общими для Сервера (и обрабатывается компонентом Сервера Установка в Очередь), то программа должна быть готова обрабатывать N параллельных запросов, где N - число процессоров (нитей) компонента Установка в Очередь.
Программа МОЖЕТ быть реализована с использованием одной нити - так, что она будет читать следующий запрос только после того, как ею был обработан предыдущий. Однако, такой дизайн может существенно уменьшить производительность всего Сервера: пока программа Внешнего Фильтра сканирует большое сообщение, другие сообщения не могут быть установлены в очередь.

Если внешняя программа заканчивает свою работу аварийно, то CommuniGate Pro приостанавливает процесс Установки в Очередь до тех пор, пока внешняя программа не будет перезапущена.

Вернуться в «Помощники»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость