+![]() |
Автоматическая обработка входящих сообщений (Фильтры) |
||||||||||||||||||||||||||||||||||||||||||||
|
|
Используя Web-интерфейс, сам пользователь почтового ящика также может устанавливать фильтры на получаемые им сообщения. Но действия этих фильтров могут быть ограничены Администратором сервера.
В разделе Фильтры Web-интерфейса (используйте ссылку главного меню Фильтры) представлены все созданные фильтры. Непосредственно с этой странички вы можете изменять их имена и приоритеты.
Чтобы сохранить новое имя и приоритет фильтра, нажмите на кнопку Изменить. После этого список фильтров будет обновлен и пересортирован в соответствии с новыми установленными приоритетами.
Чтобы изменить не только имя и приоритет, но и условия и действия фильтра,
щелкните на
Чтобы отключить фильтр, но не удалять его, поставьте ему приоритет Отключено.
Для создания нового фильтра введите имя в поле справа от кнопки Добавить и затем щелкните на этой кнопке.
Если вы хотите удалить фильтр, пометьте его, поставив галочку напротив имени этого фильтра в колонке Удалить, и затем щелкните на кнопке Изменить.
Термин действие фильтра означает действие, которое выполняется, в случае, если сообщение
удовлетворяет условию этого фильтра.
Пример, если письмо оказалось больше чем 2 Kb, то оно может быть автоматически
отослано обратно с сообщением "Ваше письмо слишком большое для моего ящика" или перенаправлено
на какой-то другой адрес электронной почты.
Каждый фильтр может иметь одно условие, несколько условий и даже ни одного условия (в этом случае действие фильтра будет применяться ко всем входящим сообщениям). При получении письма условия этого фильтра будут проверяться в том порядке, в котором они указаны. И только если сообщение удовлетворяет всем условиям фильтра, то по отношению к нему выполняются действия этого фильтра.
При операциях равно и не равно параметры обрабатываются как "шаблоны",
так символ звездочка (*) обрабатывается как метасимвол,
который заменяет собой любое количество любых символов в строке.
Чтобы проверить некую строчку на содержание в ней подстроки @thatdomain, выберите операцию
равно, а шаблоном должно быть выражение *@thatdomain*.
Если же вы, напротив, хотите проверить, что в некой строке не содержится подстроки *@thatdomain*,
то при том же шаблоне выберите операцию не равно.
При операциях сравнения содержит и не содержит параметры обрабатываются как набор
"шаблонов", разделенных запятой (,). Сравниваемая строка сравнивается со всеми подстроками из указанного
набора. При операции содержит условие считается выполненным, если в сравниваемой строке найдена
При операции не содержит условие считается выполненным, если проверяемая строка не содержит ни одной
из указанных в шаблоне подстрок.
Замечание: не ставьте пробелов около запятой, т.к. наличие пробелов будет также проверяться
в сравниваемой строке.
Рассмотрим следующее условие:
Адрес отправителя (From) [равно | не равно | равно одному из | не равно одному из] строка-образец
Ниже приведены другие образцы возможных условий.
Поле Sender [ равно | не равно | равно одному из | не равно одному из ] строка-образец
Кому отвечать (Reply-To) [ равно | не равно | равно одному из | не равно одному из ] строка-образец
Кому (To) [ равно | не равно | равно одному из | не равно одному из ] строка-образец
Если у сообщения имеется более одного адреса в поляхКопия (Cc) [ равно | не равно | равно одному из | не равно одному из ] строка-образец
Любое поле To или Cc [ равно | не равно | равно одному из | не равно одному из ] строка-образец
Каждый To или Cc [ равно | не равно | равно одному из | не равно одному из ] строка-образец
Обратный путь [ равно | не равно | равно одному из | не равно одному из ] строка-образец
Имя в поле From [ равно | не равно | равно одному из | не равно одному из ] строка-образец
Тема сообщения (Subject) [ равно | не равно | равно одному из | не равно одному из ] строка-образец
Поле Message-ID [ равно | не равно | равно одному из | не равно одному из ] строка-образец
Размер сообщения [равно одному из | не равно одному из | меньше чем | больше чем] размер (в байтах)
Написано человеком
Произвольное поле заголовка [ равно | не равно | равно одному из | не равно одному из ] строка-образец
Любой получатель [ равно | не равно | равно одному из | не равно одному из ] строка-образец
Адреса обрабатываются в том виде, который они имеют до преобразования таблицей маршрутизации. Если почтовый ящик имеет несколько синонимов (псевдонимов), то это условие позволяет проверить, на какой из них послано сообщение.
Сообщение могло быть получено сервером по протоколу ESMTP с параметром ORCPT. Этот параметр указывает, каким образом был составлен адрес при отправлении, перед тем, как при пересылке/ответе этот адрес был заменен системой на другой адрес. В таком случае сервер может использовать параметр ESMTP ORCPT, чтобы определить изначальный адрес.
Если сервер domain1.com достаточно продвинутый, то он "сообщит"
В противном случае будет сравниваться строка <user2@domain2.com>.
Условие считается выполненным, если оно оказалось справедливым по крайней мере для одного из адресов "конверта".
Каждый получатель [ равно | не равно | равно одному из | не равно одному из ] строка-образец
Время суток [ равно одному из | не равно одному из | меньше чем | больше ] строка-образец, указывающая время
Строка-шаблон должна указать время в следующем формате
Пример:
Текущая дата/время [равно одному из | не равно одному из | меньше чем | больше чем ] строка, указывающая текущую дату/время
Дата и время, указываемые в шаблоне, должны быть представлены в следующей форме:
где:
Пример:
Текущий день недели [ равно | не равно | равно одному из | не равно одному из ] строка, указывающая день недели
либо числами (0 - для воскресенья, 1 - для понедельника, 6 - для субботы), либо в соответствии со стандартом RFC822 (Sun, Mon, Tue, Wed, Thu, Fri, Sat).
Пример:
Источник сообщения [ равно | не равно | равно одному из | не равно одному из ] строка
Пример:
Адрес источника [ равно | не равно | равно одному из | не равно одному из ] строка
Пример:
Нижеследующие условия могут быть использованы только в глобальных фильтрах.
Any Route [ равно | не равно | равно одному из | не равно одному из ] строка-образец
Условие считается справедливым, если оно справедливо по крайней мере для одного из адресов "конверта".
Замечание: Проверяется, только "локальная часть" разобранного и смаршрутизированного адреса. Так, например, если указанный на "конверте" адрес <user@client.com> был преобразован записью таблицы маршрутизации
Если вы хотите использовать этот вид правил, сначала посмотрите, как преобразуется тот или иной адрес, с помощью кнопки TEST на странице Router интерфейса администратора.
Each Route [ равно | не равно | равно одному из | не равно одному из ] строка-образец
Web-интерфейс CGP предоставляет возможность осуществлять следующие действия фильтров:
Замечание: следующие действия не подразумевают выполнение действия "Уничтожить". Поэтому, если вы не хотите, чтобы сообщения сохранялись в вашем почтовом ящике, например, после переадресации, то следующим действием после действия Перенаправить установите действие Уничтожить.
Также к заголовку будут добавлены поля
Вы можете добавить текст к заголовку письма. Для этого в начале строки поставьте знак "+".
При этом знак "+" должен быть указан после строки, указывающей кодировку
Если вы добавляете что-то к заголовку сообщения, то поля заголовка
В заголовке сообщения-ответа в поля To, Cc и Bcc могут быть
добавлены адреса, по которым будет отправлено это письмо. При отправлении
поле Bcc будет удалено из заголовка.
Если вы явно не указываете значение поля From, то автоматически его значению будет присвоен ваш электронный адрес на этом сервере. Если же вы прописали поле From, то ваш электронный адрес будет указан в поле Sender.
Добавляемый вами текст может содержать макро-символы, которые заменяют реальные данные на тот момент, когда будет составляться письмо.
Ниже приведен пример текста, добавляемого к заголовку и к телу письма, и использующего макросимволы.
Текст как для заголовка, так и для тела сообщения может содержать макро-символы.
Сообщение (текст и заголовок) будет отправлено на стандартный вход (stdin) программы.
Замечание: программа должна считать весь поток стандартного ввода, иначе задача
завершится с ошибкой.
Строка с командой может начинаться со специальных префиксов.
Префикс [FILE]: [FILE] myprogram param1ist
Префикс [RETPATH]: [RETPATH] myprogram parm1ist
Префикс [RCPT]: [RCPT] myprogram parm1ist
В локальном правиле перед командой
можно использовать префикс [ACCNT]:
Префикс [ORCPT]: [ORCPT] myprogram parm1
Префикс [STDERR] будет описан ниже.
В командной строке можно задать несколько префиксов, указанных в любом порядке. При этом первым идет флаг -f и его параметры, затем флаг -p с параметрами и после него флаг -r со своими параметрами.
После выполнения задачи проверяется, ее код завершения.
Если значение кода завершения равно 0, то действие фильтра считается
выполненным
удачно и система переходит к выполнению действий следующего фильтра.
Если же значение кода завершения не равно 0, то система выдаст сообщение об
ошибке
"automated processing failed", а данные со стандартного вывод ошибок
этой задачи будут записаны в Log-файл вместе с кодом завершения.
Вы можете указать префикс [STDERR] для того, чтобы направить в стандартный вывод
ошибок запись об ошибке (данные задачи и код завершения).
Данные, подаваемые на стандартный выход задачи, не должны превышать 4 Kb, иначе они будут сокращены. В этом случае в Log-файл будет сделана соответствующая запись.
Если задача не завершается в течение 2 минут, то CGP сервер прекращает ее выполнение.
Если выполняемая задача является задачей локального фильтра, то будет составлено имя пользователя операционной системы на основании идентификатора владельца данного почтового ящика, и задача будет выполняться в пространстве локального окружения пользователя с таким именем.
Задача глобального фильтра выполняется в собственном пространстве CGP, и текущим каталогом будет базовый каталог.
Это действие должно быть использовано совместно с установленной на клиентском компьютере утилитой NotifyMail®.
Это действие разрешается применять только тем пользователям, которым разрешено использовать действия типа execute.
Вы можете установить настройки Уведомлений со странички Obscure раздела Settings интерфейса администратора (WebAdmin).
Только администратор сервера может использовать это действие.
Этот фильтр имеет условия:
и действия:
Для этого фильтра может быть изменен только текст сообщения автоответчика:
Даже если Администратор не дал вам право устанавливать фильтры, вы, тем не менее, можете включить автоответчик и записать в него свой текст.
Если нажать кнопку "Очистить список адресов, кому послано сообщение", то список RepliedAddresses будет удалён. Если автоответчик выключен, то появляется кнопка "Включить". При нажатии на неё автоответчик включается, при этом список адресов RepliedAddresses тоже очищается.
Для этого фильтра правило должно быть либо пустым (тогда он применяется ко всем входящим сообщениям), либо письмо должно быть создано человеком, а действие фильтра, по выбору, одно из следующих:
Измененным может быть только список адресов для переадресации:
Если вы не являетесь администратором, то вы можете установить этот фильтр только если вам дано право на настройку перенаправляющего фильтра. Иначе только Администратор имеет право установить этот фильтр в вашем почтовом ящике.
Работа локального фильтра документируется в log-файл модулем Local Delivery. При этом степень подробности log-записей может быть изменена от Low-Level до All Info.
Таким образом, гарантируется, что все правила для домена (кроме отключенных) будут проверены до локальных. Если доменное правило содержит действие "Прекратить обработку", то локальные правила проверяться не будут.
Замечание: доменные правила добавляются в начало локальных, поэтому они выполняются в том же окружении, что и локальные (т.е. "под тем же пользователем").
Для использования внешних фильтров содержания откройте основной раздел
страницы Settings интерфейса администратора (WebAdmin) и щелкните на ссылке Helpers
(программы помощники).
Страничка Helpers выглядит таким образом:
Чтобы установить опцию "Фильтрация содержимого" во включенное состояние, поставьте галочку в чекбоксе, находящемся в заголовочной панели. Если этот чекбокс не выбран, то операция не выполняется.
После того, как программа фильтрации содержимого была успешно установлена и указана, вы можете фильтровать содержимое сообщений, используя действие глобального фильтра ExternalFilter. Если вы хотите фильтровать все сообщения, создайте фильтр, указав только действие ExternalFilter и не указывая какого-либо условия.
Текущим каталогом программы при ее старте должен быть основной каталог CGP.
В случае падения внешней программы, сервер CGP приостанавливает работу процессов модуля Enqueuer до тех пор, пока внешняя программа не будет перезапущена.