| Версия 5.2
Введение
Установка
Администрирование
Сеть
Объекты
Почта
Сигналы
Доступ
Услуги
Справочник
Кластеры
Программы
Разное
Лицензирование
Веб Почта
Pronto!
PBX
Программы | Данные | CLI/API | Правила | CG/PL | PBXApp | XIMSS | WebApp | WSSP | Помощники
# Автоматические Правила Задание Правил Создание, Переименование и Удаление Правил Условия Правил Списки Строк Действия Правил Правила, Общие для Домена Правила, Общие для Кластера Сервер CommuniGate Pro может автоматически обрабатывать Сообщения электронной почты и Сигналы с помощью наборов Автоматических Правил. Общие для Сервера и Общие для Кластера наборы Правил применяются ко всем Сообщениям и ко всем Сигналам, передаваемым через Сервер или через Кластер. Наборы Автоматических Правил уровня Пользователя применяются ко всем Сообщениям электронной почты и ко всем Сигналам, отправляемым Пользователю. Каждое Правило в наборе имеет имя, приоритет, набор условий и набор действий. Сначала проверяются Правила, имеющие более высокий приоритет: Правило с приритетом 9 применяется до Правила, имеющего приоритет 1. Если Сообщение или Сигнал соответствует всем условиям Правила, то выполняются действия этого Правила и автоматическая обработка либо останавливается, либо продолжается проверка других Правил, имеющих более низкий приоритет.

## Задание Правил

Администраторы системы могут задавать Общие для Сервера и Общие для Кластера Правила обработки Сообщений.

Для задания Общего для Сервера Почтового Правила (по обработке Очереди) откройте через Веб Интерфейс Администратора в области Установки страницу Почта, затем откройте страницу Правила.
Для задания Общего для Сервера Правила Сигналов откройте используя Веб Интерфейс Администратора в области Установки страницу Real-Time , затем откройте страницу Правила.

Администраторы системы и Домена могут задавать Правила Пользователя, используя ссылки, находящиеся на странице с Установками Пользователя.

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

Администраторы системы или Домена могут задавать Общие для Домена Правила , используя ссылки, находящиеся на странице с Установками Домена.

## Создание, Переименование и Удаление Правил

При появлении в окне браузера списка Правил, их имена и приоритеты могут быть изменены:

Приоритет | Имя |  |
--- | --- | --- | ---
|  | Изменить |
|  | Изменить |
|  | Изменить |

После того, как вы изменили имена Правил и/или их приоритеты, нажмите на кнопку Модифицировать. Список отображается заново отсортированным по приоритетам.

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

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

Для того, что бы удалить Правило, отметьте для него флажок в столбце Удалить и нажмите на кнопку Модифицировать.

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

## Условия Правил

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

Операции условий `равно` и `не равно` обрабатывают параметры как "картинки" строки: символы звёздочка (`*`) в параметрах обрабатываются как шаблоны подстановки, которым соответствуют ноль или более символов в тестируемой строке. Для того, что бы проверить, что строка содержит подстроку `@thatdomain` должна использоваться операция `равно *@thatdomain*`, а для проверки того, что срока не заканчивается подстрокой `somedomain.com` должна использоваться операция `не равно *somedomain.com`.

Операции условий `среди` и `не среди` обрабатывают параметры как наборы из одной или нескольких "картинок", разделённых символами запятой (`,`). Тестируемая строка сравнивается со всем "картинками" строки. Условие `среди` выполняется, если тестируемая строка соответствует хотя бы одной строке-картинке. Условие `не среди` выполняется, если тестируемая строка не соответствует ни одной строке-картинке из заданного набора.
Обратите внимание: не используйте лишние пробелы вокруг символа запятой: пробелы до знака запятой будут рассматриваться как пробелы, завершающую предыдущую картинку, а пробелы после знака запятой будут рассматриваться как пробелы, с которых начинается следующая картинка.

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

`От сетевого адреса [равно | не равно | среди | не среди] строка`
  Это условие проверяет сетевой адрес Сигнала или Сообщения.
  Если Сообщение или Сигнал были созданы самим Сервером, то его сетевой адрес будет пустым.
  В противном случае строка "От сетевого адреса" содержит имя компонента, который получил или сгенерировал Сообщение электронной почты или Сигнал, отделённый пробелом сетевой (IP) адрес источника Сообщения или Сигнала и, опционально, отделённый двоеточием номер порта.
  Если Сообщение или Сигнал были созданы локально внутренним компонентом Сервера (таким, как Правила), то поле сетевой адрес имеет значение `[0.0.0.0]`.
  Пример (Правило Очереди):

  Пример (Правило Сигналов):

`Время Суток [равно | не равно | меньше чем | больше чем | среди | не среди] строка`
  Это условие проверяет текущее время суток и дату в часовом поясе пользователя (для Правил уровня Пользователя) или в часовом поясе Сервера (для Правил, Общих для Системы).

  Это условие позволяет вам создавать правила, применяемые только в определённое время суток.

  Строка времени должна быть указана как `hh:mm` или как `hh:mm:ss`, где hh - часы, mm - минуты, ss - секунды.
  Строка времени может содержать суффиксы `am` или `pm`.

  Для условий `среди` и `не среди` строка-параметр должна содержать пару строк времени, разделённых символом минус (`-`).
  Если второе значение времени не меньше, чем первое (как в `08:30-5:15pm`), то условие `среди` выполняется в любое время после 8:30 и до 17:15.
  Если второе значение времени меньше, чем первое (как в `22:30-5:15`), то условие `среди` выполняется любое время после 22:30 и любое время до 5:15.

  Пример (Правило Очереди):

`Текущая Дата [равно | не равно | меньше чем | больше чем ] строка даты`
  Это условие проверяет текущее время и дату. Это условие позволяет вам создавать правила, применяемые к Сообщениям или Сигналам до или после заданных даты и времени.

  Для сравнения только дат, укажите строку с датой в следующем формате:
  - `DD MMM YYYY`

  Для сравнения даты и времени, укажите строку с датой в одном из следующих форматов:
  - `DD MMM YYYY hh:mm`
  - `DD MMM YYYY hh:mm:ss`
  - `DD MMM YYYY hh:mm:ss +ZZZZ`
  - `DD MMM YYYY hh:mm:ss -ZZZZ`
  где:
    `DD` - день месяца
    `MMM` - месяц (как трехбуквенная английская аббревиатура):
    `Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec`
    `YYYY` - год
    `hh` - час
    `mm` - минута
    `ss` - секунда
    `+ZZZZ` или `-ZZZZ` - часовой пояс; если часовой пояс не указан, то для Правил уровня Пользователя используется часовой пояс пользователя, а для Правил, Общих для Сервера и Правил, Общих для Кластера, используется часовой пояс Сервера.
  Пример:

`Текущий День [равно | не равно | среди | не среди] строка дня`
  Это условие проверяет текущий день недели. Оно позволяет вам создавать правила, применяемые к Сообщениям или Сигналам только по определённым дням недели.
  Дни должны быть указаны либо как номера (`0` для Воскресенья, `6` для Субботы), либо как аббревиатуры согласно RFC822 (`Mon`, `Tue`, `Wed`, `Thu`, `Fri`, `Sat`, `Sun` ).
  Пример:

`Настройка [равно | не равно | среди | не среди] строка`
  Строка должна содержать имя Настройки Пользователя и образец данных из настройки, разделённых символом двоеточие (`:`). Это условие сравнивает значение Настройки Пользователя с образцом данных.
  Пример:

`Календарная Занятость [равно | не равно | среди | не среди] строка статуса`
  Это условие не должно использоваться в Правиле, Общем для Сервера или Общем для Кластера. Условие получачает информацию о календарной занятости и получает значение статуса для текущего времени. Это значение статуса сравнивается со строкой статуса.
  Пример:

`Имеется Папка [равно | не равно] строка`
  В параметре указывается имя папки и условие проверяет, что такая Папка существует (или не существует). Папка "существует", если возможно открыть Папку с указанным именем и добавить в неё сообщение. Если этот условие используется в Правилах уровня Пользователя и в параметре указана Папка другого Пользователя, и эта Папка существует, но текущий пользователь не может добавлять в неё сообщения, то в этом Правиле Папка считается несуществующей.
  Пример:

  Это условие полезно в Правилах, Общих для Домена: Правило может проверять существование у текущего Пользователя специальной Папки и копировать определённые Сообщения в эту Папку только в том случае, если она существует.

### Списки Строк

Сервер CommuniGate Pro может хранить именованные списки строк как подмножества Набора Данных Пользователя.

Каждый список может содержать ноль, одну или несколько строк. Операции Условий Правил могут ссылаться на эти списки в случаях, если:

- Правило является Правилом Уровня Пользователя (или Общее для Домена).
- Операцией условия является операция `среди` или `не среди`.
- Параметр операции задан как строка.
- Параметр операции начинается с символа решётка (`#`).

Например, операция Условия

  `Отправитель среди #Blocked`

проверяет, является ли адрес отправителя Сообщения или Сигнала включённым в Список Строк, называемый `Blocked`.

Подмножества из Списка Строк могут использоваться как Записные Книги в Веб Интерфейсе Пользователя.

## Действия Правил

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

Параметры Действия Правила могут содержать комбинации Макро Символов (`^X`, где X - буква).
Обрабатываются различные наборы Макро Символов.
Смотрите раздел Правила Сигналов и Правила Почты для информации о возможных комбинациях Макро Символов.

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

`Отвергать errorMessage`
  Это действие должно быть последним в Правиле. Выполнение этого Правила останавливается и другие (с более низкими приоритетами) Правила для этого сообщения не проверяются.
  Если Правило является Правилом обработки Сигналов, то Сигнал отвергается с указанным кодом ошибки.
  Если Правило является Правилом обработки Сообщений, то Сообщение отвергается, а отправителю сообщения отправляется обратно уведомление о недоставке сообщения.
  Если параметр действия не пустой, то он используется как текст уведомления об ошибке.
  Правила обработки Сообщений все же позволяют вам сохранить отвергнутое Сообщение путём использования действия Сохранить до действия Отвергнуть.
  Пример:

    | Пожалуйста, не отправляйте сюда больше такие сообщения.

`Обратиться по URL URL```
  Устанавливается HTTP соединение с удалённым Веб сервером, указанным в URL и по этому URL на сервер отправляется HTTP запрос GET.
  Если был получен какой-нибудь ответ, то он выкидывается. Если ответа не было получено в течении 10 секунд, то HTTP соединение закрывается.
  Когда параметр URL обрабатывается с использованием Макро Подстановок, то вычисленные значения сначала перекодируются таким образом, что бы они представляли собой корректный URL.
  Пример:

    | http://www.server.dom/file.xyz?parameter=tt

`Послать IM messageText`
  Отправляется Мгновенное сообщение с указанным текстом сообщения.
  Если текст сообщения начинается со строки
    `To: user@domain`
  то Мгновенное сообщение отправляется на указанный адрес. В противном случае сообщение отправляется текущему Пользователю (для Правил уровня Пользователя) или не отправляется вообще (для Правил, Общих для Сервера/Кластера).
  Пример:

    | To: assistant@domain.dom You've got mail!

`Уведомить через Finger [адрес]`
  Сервер соединяется с компьютером по указанному сетевому адресу, порт 79 (порт finger) и отправляет на этот компьютер строку `nm_notifyuser`. Если адрес не указан и действие выполняется в Правиле уровня Пользователя, то используется тот сетевой адрес, с которого пользователь входил на сервер в последний раз.
  Это действие может использоваться совместо с Finger-утилитами (такими, как NotifyMail®), установленными на клиентских компьютерах.
  Пример:

    | 206.40.74.198

  Пользователи могут указывать это действие только в том случае, если им разрешено указывать действия типа `Программы`.

  Системный Администратор может использовать Веб Интерфейс Администратора для конфигурирования Finger-уведомлений. Откройте в области Установки страницу Общее, затем откройте страницу Прочее и найдите там панель Finger-уведомление:

  Finger-уведомление
  Уровень Журнала: |  | Размер Очереди: |

`Записать в Журнал recordText`
  В Системный Журнал помещаются записи уровня Основные (уровень 2), содержащие ID Сообщения или Сигнала и указанную строку recordText.
  Только Администратор Сервера может задавать это действие.
`Запомнить 'От кого' в stringList`
  Это действие может использоваться только в Правилах уровня Пользователя. Параметр операции указывает имя списка строк, которое либо уже существует, либо должно быть создано в Наборе Данных Пользователя. Адрес автора Сообщения или отправителя Сигнала (`От Кого`) добавляется в указанный список.
  Если в списке существует 500 или более элементов, то новый элемент не добавляется.

## Правила, Общие для Домена

Администраторы Домена могут задавать Правила, Общие для Домена.

Когда сообщение доставляется Пользователю модулем Местной Доставки или когда Сигнал направляется любому Пользователю Сервера, то применяется "актуальный" набор Правил уровня Пользователя.
Первыми Правилами в актуальном наборе являются Правила, Общие для Домена с приоритетом 5 и выше, дальше идут Правила уровня Пользователя, а затем - все оставшиеся Правила, Общие для Домена и имеющие приоритет 5 или ниже.

Этот метод гарантирует, что все Правила, Общие для Домена с приоритетом 5 и выше будут применены до любого из Правил Пользователя. Если такое Правило, Общее для Домена использует действие Прекратить Обработку, то Правила Пользователя не применяются.

Обратите внимание: Правила, Общие для Домена "смешаны" с Правилами Пользователя и применяются в той же среде, что и Правила Пользователя "от имени" Пользователя.

## Правила, Общие для Кластера

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

Если вы изменяете набор Правил, Общих для Кластера на любом из членов Кластера, то набор автоматически обновляется на всех членах Кластера.

Актуальный набор Правил, Общих для Сервера для каждого члена Кластера - это объединение Правил, Общих для Сервера, явно заданных в настройках этого члена Кластера с Правилами, общими для Кластера.

Правила из обоих наборов применяются совместно, в порядке, заданном согласно приоритетов Правил. Например, Сообщение может быть обработано высокоприоритетным Правилом, Общим для Кластера, затем Правилом, Общим для Сервера, имеющим средний приоритет, а затем Правилом, Общим для Кластера с низким приоритетом.

Руководство CommuniGate® Pro. Copyright © 1998-2009, Stalker Software, Inc.