Задачи почтового сервера FossMail

Состав почтового сервера FossMail

Перечень задач

  • Агент передачи файлов (АПФ) – прием–передача сообщений по каналам связи;
  • Mserver – регистрация прошедших через почтовый сервер сообщений в рабочей базе конвертов и перенос информации с рабочих баз конвертов в архивные;
  • Router – маршрутизация сообщений, т.е. разбор входящей очереди и перекладка сообщений в соответствующие папки (почтовые ящики), для дальнейшей передачи;
  • Fmqueue программа предназначена для построения очередей сообщений в зависимости от приоритетов почтовых ящиков и приоритетов сообщений;
  • FossABS данная задача является дополнительным звеном в обработке и фильтрации сообщений – предназначена для рассылки адресных книг, проверяет правомочность доставки сообщений от/к абонентам, приписанным на данном узле;
  • Exmon – программа предназначена для обеспечения интерфейса между каждой из задач и программой администрирования почтового сервера;
  • Fmstat – программа предназначена для просмотра рабочих и архивных баз данных, распаковки сообщений из архивов и файлов из сообщений;
  • Fmarc – программа предназначена для архивации сообщений, проходящих через узел, в ZIP-файлы для последующего их хранения;
  • Cfg_Client — программа администратора почтового сервера;
  • FossCleaner — вспомогательная программа, позволяющая очищать устаревшие файлы в системе. Например, log-файлы.

Перечень основных папок

  • Папка «Queue» – входящая очередь сообщений почтового сервера;
  • Папка «Box»– исходящая очередь сообщений почтового сервера. В данной папке создаются подпапки, имена которых совпадают с именами пользователей сервера или с именами почтовых серверов, с которыми связывается данный сервер (почтовые ящики);
  • Папка «Be»– в данную папку помещаются сообщения, предназначенные для дальнейшей архивации;
  • Папка «Arc»– в данную папку складываются заархивированные сообщения в виде *.zip-файлов;
  • Папка «Client»– предназначена для хранения адресных книг всех почтовых серверов сети (файлы *.fab).

Алгоритм работы

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

Сообщения через «Агент передачи файлов TcpFoss» (АПФ) поступают от другого почтового сервера или от автоматизированного рабочего места в папку входной очереди Queue, в виде файла. АПФ через оперативную память сообщает об этом маршрутизатору сообщений (Router), который маршрутизирует сообщение в зависимости от адреса(ов) его получателей и помещает это сообщение(я) в исходящую очередь Box.

Исходящая очередь построена по следующему принципу. Папка Box имет N подпапок, имя каждой из которых совпадает с именем почтового сервера, подключенного к данному серверу, или с именем пользователя, обслуживаемого этим сервером. Сообщения могут распараллеливаться в зависимости от того, куда они направляются, т.е. одновременно могут попадать в несколько подпапок.

В момент обработки сообщения маршрутизатором он сообщает о параметрах этого сообщения серверу регистрации сообщений (Mserver) и менеджеру очередей (Fmqueue). Mserver производит запись о конверте этого сообщения в рабочую базу почтовых конвертов, а Fmqueue выстраивает исходящую очередь, в зависимости от приоритета сообщений.

В зависимости от параметров направления, на которое нужно передать сообщение из исходящей очереди, менеджер очереди инициирует установку канала связи АПФ-ом или ожидает сообщение от АПФ, что установлен канал связи по инициативе соседнего почтового сервера или автоматизированного рабочего места. После установки канала связи сообщения в соответствии с их приоритетом передаются АПФ-ом и удаляются из исходящей очереди.

Параллельно, в момент маршрутизации, копия сообщения помещается в папку Be, для дальнейшей его архивации задачей Fmarc. Данная программа архивирует сообщения, находящиеся в этой папке, по заданному расписанию. В результате ее работы создаются минимум один, максимум 24 *.zip-файла в сутки, в которые помещаются сообщения. Количество создаваемых *.zip-файлов задается в настройках. Сообщения, проходящие через почтовый сервер, помещаются в архивы с именами  —  YYMMDDHH-HH.zip. В данный архив попадают файлы со значением времени от HH до -HH в часах.

Задача Mserver регистрирует в базе конвертов не только информацию о самом конверте, но и информацию о его доставке и прочтении. Т.к. отчеты о доставке и прочтении приходят через некоторое время после прохождения самого сообщения, то данные о конвертах сообщения хранятся определенное время, которое обычно достаточно для записи информации об отчетах. Для предотвращения переполнения рабочей базы конвертов информация из нее переносится, по заданному расписанию, в архивную базу конвертов.

Задача Fmstat позволяет производить поиск и просматривать записи о сообщениях в рабочей и архивной базах конвертов. Если нужный конверт найден, то есть возможность получить само сообщение, распаковав его либо из *.zip-файла, либо, если оно еще не запаковано, то из папки Be.

Задача FossAbs служит для создания различных фильтров на проходящие через почтовый сервер сообщения, также она формирует запросы на получение адресных книг и обрабатывает пришедшие ответы, помещая список адресных книг (файлы *.fab) в папку Client. Далее этот список обрабатывается сервером приложений FossDocMail, который строит глобальную адресную книгу.

Задача Exmon управляет всеми задачами узла и обеспечивает единый интерфейс между ними и задачей Cfg_Client, которая является программой администрирования  почтового сервера FossMail.