Сервер GateWall Antispam обладает модульной структурой. Каждый модуль предназначен для решения конкретной задачи. Взаимодействие между модулями выполняется через протокол RPC, через специальный модуль-координатор (CSERouter). Для взаимодействия с администратором предусмотрен модуль веб-сервера, с поддержкой протокола XML-RPC. Описание состава и назначения модулей представлено ниже.
Агент, предоставляющий возможность управления (запуск, остановка и перезапуск) модулями GateWall Antispam. Управление осуществляется с помощью соответствующих пунктов контекстного меню. Предусмотрена возможность удаленного управления сервером GateWall Antispam. Для этого при запуске CSETray, в качестве параметра командной строки нужно указать IP-адрес сервера, на котором запущен процесс CSERouter. Поскольку CSERouter является главным модулем GateWall Antispam, CSETray не предоставляет возможности управления этим процессом.
Главный модуль сервера GateWall Antispam. CSEProcessor отвечает за запуск и остановку других модулей сервера, осуществляет их регистрацию и выполняет роль координатора при обмене сообщениями. Обмен сообщениями между модулями выполняется с помощью протокола RPC.
Модуль реализует протокол SMTP и предназначен для обработки входящих почтовых сообщений. SMTP-клиент принимает входящее подключение, реализует некоторые методы антиспам фильтрации (DNSBL, RHSBL, SPF, RFC restrictions, Greylisting, Tarpiting, white/black lists) и выполняет архивацию входящих сообщений. Входящие сообщения сохраняются в файлах с расширением *.qeml и помещаются во входящую очередь "%GWA %\mail\queue\inc" для последующей обработки. При архивации копия сообщения сохраняется в файле "%GWA%\mail\archive\inc\*.qeml.tmp".
Модуль - координатор обработки почтовых сообщений. CSETosser просматривает выходную очередь сообщений "%GWA%\mail\queue\out" и формирует задачи для модуля CSEProcessor.
Модуль выполняет антиспам фильтрацию (SURBL, Cloud Antispam), антивирусную проверку (Cloud Antispam, Kaspersky, Panda) и обработку сообщений с помощью правил, созданных администратором GateWall Antispam. После обработки сообщение (файл с расширением *.xeml) помещается, в зависимости от результата, в выходную очередь "%GWA%\mail\queue\out" или в папку карантина "%GWA%\mail\quarantine". Для сообщений, помещенных в выходную очередь, дополнительно формируется служебный файл с информацией о доставке (*.dlvr). Дополнительно CSEProcessor отвечает за формирование статистики по спам сообщениям для каждого обрабатываемого адреса. Статистика спам сообщений (дата, время, адрес отправителя, тема сообщения) записывается в служебные файлы "%GWA%\mail\statistics\users\*.stat".
Модуль доставки сообщений (Delivery Manager). CSEDM просматривает выходную очередь "%GWA%\mail\queue\out" и выполняет доставку сообщений в соответствии с указанными маршрутами. Дополнительно, CSEDM просматривает папку "%GWA%\mail\queue\import", в которую помещаются почтовые сообщения, ошибочно распознанные как спам.
Сообщения, которые не удается доставить по назначения с первой попытки, перемещаются в папку "%GWA%\mail\queue\out\try" для повторной доставки. Количество попыток повторной отправки и интервалы между ними указываются в разделе "Настройка доставки" на странице "Виртуальный SMTP-сервер - Настройки".
Модуль предназначен для ведения статистики обработки почтовых сообщений. Статистика (дата, время, адреса источника и назначения, модули сервера GateWall Antispam, использованные при обработке, а также результат обработки) записывается во встроенную базу данных формата SQLite3. Файл базы расположен в директории %GWA%\mail\statistics\stat.csdb.
IMAP - клиент, предназначенный для работы с IMAP - папками на удаленном почтовом сервере. CSEImapC поддерживает работу с MS Exchange 2003 и Lotus Domino R7 и отвечает за формирование специальной структуры папок IMAP на удаленном почтовом сервере, а также обрабатывает сообщения в этих папках.
Планировщик, используемый для обновления баз антивирусных модулей, а также за рассылку статистики работы сервера GateWall Antispam. Планировщик поддерживает ежедневное, еженедельное, ежемесячное и произвольное расписание задач. Для произвольного расписания используется строка формата CRONTAB. Строка выглядит как шесть полей разделённых пробельными символами (пробелы и/или знаки табуляции). Поля задают время в следующем виде: (минуты:0-59) (часы:0-23) (дни месяца:0-31) (месяц:0-12) (день недели:0-6, 0-воскресенье) Каждое из первых пяти полей может быть задано следующим образом:
Веб-сервер для администрирования GateWall Antispam. Интерфейс API для веб-сервера (CSESrvCtrl) Модуль, реализующий API для работы с XML-RPC интерфейсом веб-сервера (CSEHTTP).