Правила обработки писем

Назначение Правил обработки писем

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

Могут быть заданы как общие Правила, проверяемые для всех обрабатываемых писем, так и Правила, связанные с конкретными пользователями, их алиасами и группами пользователей.

Общие Правила обработки писем задаются в основном конфигурационном файле Dr.Web MailD, в секции [Rules], а Правила обработки писем, связанные с пользователями и группами пользователей, задаются во встроенной базе данных.

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

Порядок обработки писем и просмотра Правил

При обработке письма некоторым подключаемым модулем или другим компонентом, он может запросить у MailD core значение какого-либо параметра. В этом случае подходящее значение параметра выбирается согласно следующему алгоритму:

Просматриваются Правила, имеющиеся во встроенной базе данных и связанные с получателем данного письма (получатель определяется по заданному отправителем RCPT TO).

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

Просматриваются Правила, заданные в секции [Rules].

Обратите внимание на порядок обхода Правил:

oВсе Правила в текущей просматриваемой группе Правил всегда проверяются в порядке их задания.

oДля каждого проверяемого Правила проверяется условие CONDITION – и если оно истинно, то значение требуемого параметра ищется среди элементов секции SETTINGS этого правила.

oЕсли условие CONDITION оказалось ложно, то просмотр Правила заканчивается и происходит переход к поиску значения в следующем Правиле.

oЕсли условие CONDITION истинно и после него стоит директива cont, то происходит переход к проверке следующего Правила. Если же после истинного CONDITION стоит директива stop, то просмотр Правил заканчивается вне зависимости от того, было найдено значение требуемого параметра или нет.

Значение параметра по результатам просмотра Правил всегда определяется следующим образом:

Если искомый параметр встретился в одном из сработавшем правил, то используется его значение, извлеченное из части SETTINGS (обратите внимание, что при срабатывании нескольких Правил для одного и того же параметра, результирующее значение этого параметра зависит от его семантики. Подробнее об этом см. в подразделах Формат Правил и Особые случаи Правил).

Если Правила отсутствуют, или ни одно Правило не сработало, или ни в одном из сработавших Правилах параметр не нашелся, то извлекается значение этого параметра, заданное в соответствующей секции конфигурационного файла.

Если в конфигурационном файле искомый параметр не задан, то используется его значение по умолчанию.

Формат записи Правил обработки писем рассмотрен в подразделе Формат Правил.

Особые случаи Правил (включая Правила с отсутствующей частью SETTINGS, а также Правила, использующие клонирующие параметры) рассмотрены в подразделе Особые случаи Правил.

Обработка ошибок и проверка корректности Правил рассмотрены в подразделе Обработка ошибок и проверка корректности Правил.