Карантин

Письма попадают в Карантин как по запросу от основного модуля drweb-maild, так и по запросу от любого из используемых подключаемых модулей. Далее они сохраняются в каталоге /quarantine/path/def/name/, где name – название модуля, запросившего сохранение.

При сохранении письма в Карантине создаются два файла:

Первый файл с именем name (которое формируется в соответствии с настройками FilenamesMode и FilenamesPrefix) содержит оригинальное тело сообщения (при этом все символы "_" заменяются на ".").

Второй файл с именем name.envelope содержит оригинальный конверт сообщения в следующим формате:

oint4_t - длина адреса отправителя;

osN - адрес отправителя;

oint4_t - число получателей;

oint4_t sN - для каждого получателя, где int4_t - 4-байтовое число со знаком в сетевом порядке байтов.

Также необходимо отметить, что если значение параметра MoveAll установлено в Yes, то вся проходящая через программный комплекс почта будет сохраняться в каталоге /path/def/backup/.

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

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

Можно задать максимальный срок хранения писем в каталоге Карантина через настройку параметра StoredTime, а также ограничить Карантин по максимальному размеру (с помощью параметра MaxSize) и максимальному числу хранимых сообщений (с помощью параметра MaxNumber). Если одновременно задано несколько ограничений, то все они будут поддерживаться одновременно.

Ограничения на максимальный размер Карантина и число сообщений в нем проверяются при каждом сохранении сообщения в Карантин. Ограничение  максимального времени хранения писем в Карантине проверяется периодически - период устанавливается через настройку параметра PulseTime.

Удалением устаревших сообщений и перемещением их во внешнее хранилище DBI занимается внешняя утилита drweb-qp, путь к которой указывается в настройке PathToDrwebQp. Для ее работы необходим Perl (версии не ниже 5.0). Запуск данной утилиты происходит с периодичностью, указанной в настройке PulseTime. Если значение параметра PulseTime установлено равным 0 и выключено использование управляющих писем, то запуск производится не будет.