+
 

Автоматическая обработка входящих сообщений (Фильтры)

Intro
Installation
SysAdmin
Objects
Transfer 
Router 
Rules
SMTP 
Local 
RPOP 
LIST 
PIPE 
Access
Directory
Data Files
Clusters
WebApp
WebMail
Miscellaneous
Licensing
HowTo
HelpMe
  • Глобальные и локальные фильтры
  • Создание, изменение и удаление фильтров
  • Условия применения фильтров
  • Действия, осуществляемые фильтром
  • Автоответчик
  • Упрощенный фильтр для переадресации
  • Log-записи при работе фильтров
  • Правила для всего домена
  • Фильтрация сообщений по их содержимому и проверка сообщений на вирусы
  • Интерфейс для фильтрации по содержимому писем
  • CGP позволяет осуществлять фильтрацию входящих сообщений, т.е. у них будут проверяться, например, тема, отправитель и на основании этой проверки к письму будут применены определенные действия - пересылка другому адресату, моментальное удаление, автоматический ответ вроде "не хочу получать от тебя письма" и т.п.

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

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

    Для каждого фильтра определяется имя, приоритет, и набор тех условий, которые будут проверяться при получении сообщения, а также набор действий, осуществляемых в случае верности проверяемого условия фильтра. Например, фильтр проверяет, является ли отправителем сообщения Василиса, и, если это письмо отправлено Василисой, то к нему и будут применены действия указанные в этом фильтре.
    Для входящего письма первым применяется фильтр с более высоким приоритетом. Самым высоким уровнем приоритета является 9-ый уровень, самым низким - 1-ый.

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


    Глобальные и локальные фильтры

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

    Используя Web-интерфейс, сам пользователь почтового ящика также может устанавливать фильтры на получаемые им сообщения. Но действия этих фильтров могут быть ограничены Администратором сервера.


    Создание, изменение, удаление фильтров.

    В разделе Фильтры Web-интерфейса (используйте ссылку главного меню Фильтры) представлены все созданные фильтры. Непосредственно с этой странички вы можете изменять их имена и приоритеты.

     
    Приоритет Название Редактировать Удалить
    Изменить правило
    Изменить правило
    Изменить правило

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

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

    Чтобы отключить фильтр, но не удалять его, поставьте ему приоритет Отключено.

    Для создания нового фильтра введите имя в поле справа от кнопки Добавить и затем щелкните на этой кнопке.

    Если вы хотите удалить фильтр, пометьте его, поставив галочку напротив имени этого фильтра в колонке Удалить, и затем щелкните на кнопке Изменить.


    Условия применения фильтров

    Термин условие фильтра означает, то условие, выполнение которого Проверяется, у входящих сообщений. Условие фильтра состоит из трех элементов:
    Например, условием может быть то, что отправителем сообщения, должна быть Василиса, а может быть и то, что размер сообщения не должен превышать, к примеру, 2 Kb.
    При этом, в первом случае, Что проверяется является адресом отправителя, операцией является равно, а шаблоном здесь является "vasilisa@something.ru". Во втором случае, Что проверяется является размером сообщения, операцией является меньше, шаблон - 2 Kb.

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

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

    При операциях равно и не равно параметры обрабатываются как "шаблоны", так символ звездочка (*) обрабатывается как метасимвол, который заменяет собой любое количество любых символов в строке.
    Чтобы проверить некую строчку на содержание в ней подстроки @thatdomain, выберите операцию равно, а шаблоном должно быть выражение *@thatdomain*. Если же вы, напротив, хотите проверить, что в некой строке не содержится подстроки *@thatdomain*, то при том же шаблоне выберите операцию не равно.

    При операциях сравнения содержит и не содержит параметры обрабатываются как набор "шаблонов", разделенных запятой (,). Сравниваемая строка сравнивается со всеми подстроками из указанного набора. При операции содержит условие считается выполненным, если в сравниваемой строке найдена хоть одна из указанных подстрок.
    При операции не содержит условие считается выполненным, если проверяемая строка не содержит ни одной из указанных в шаблоне подстрок.
    Замечание: не ставьте пробелов около запятой, т.к. наличие пробелов будет также проверяться в сравниваемой строке.

    Рассмотрим следующее условие:

    Адрес отправителя (From) [равно | не равно | равно одному из | не равно одному из] строка-образец
    При таком условии будет проверятся справедливость следующего выражения: Отправитель является/не является тем, кто указан в строке-образце.

    Например:
    Фильтр с таким условием будет применяться ко всем сообщениям, приходящим с любого из поддоменов домена stalker.com.

    Ниже приведены другие образцы возможных условий.

    Поле Sender [ равно | не равно | равно одному из | не равно одному из ] строка-образец
    Кому отвечать (Reply-To) [ равно | не равно | равно одному из | не равно одному из ] строка-образец
    Кому (To) [ равно | не равно | равно одному из | не равно одному из ] строка-образец
    Копия (Cc) [ равно | не равно | равно одному из | не равно одному из ] строка-образец
    Если у сообщения имеется более одного адреса в полях To/CC/Reply-To (Кому/Копия/Кому отвечать), то условие считается выполненным, если адрес, указанный в строке-образце, совпадает хоть с одним из них.
    Любое поле To или Cc [ равно | не равно | равно одному из | не равно одному из ] строка-образец
    На совпадение с шаблоном проверяются все адреса, указанные в полях To, Cc. Если у сообщения нет полей To/Cc, то условие считается не выполненным.
    Каждый To или Cc [ равно | не равно | равно одному из | не равно одному из ] строка-образец
    На совпадение с шаблоном проверяются все адреса, указанные в полях To, Cc. Условие считается выполненным, если оно справедливо для каждого из адресов в полях To, Cc, а также если у сообщения нет To, Cc.
    Пример:
    Это условие будет выполненным для тех сообщений, у которых все To и CC являются адресами домена mycompany.com или домена mydept.mycompany.com.
    Обратный путь [ равно | не равно | равно одному из | не равно одному из ] строка-образец
    "Обратный путь", указанный на "конверте" письма, сравнивается со строкой-образцом (шаблоном).
    Имя в поле From [ равно | не равно | равно одному из | не равно одному из ] строка-образец
    Реальное имя - "address comment" (содержится в поле From) сравнивается со строкой-образцом (шаблоном).
    Пример:
    Такому условию удовлетворят все сообщения, поле From: которых содержит:
    From: jsmith@company.com (John J. Smith)
    From: "Bill J. Smith" b.smith@othercompany.com
    From: Susan J. Smith <susan@thirdcompany.com>
    Тема сообщения (Subject) [ равно | не равно | равно одному из | не равно одному из ] строка-образец
    Тема сообщения сравнивается со строкой-образцом (шаблоном).
    Пример:
    Такому условию удовлетворят, к примеру, сообщения со следующими темами:
    Subject: Срочно требуется ваша помощь
    Subject: Срочно!
    Поле Message-ID [ равно | не равно | равно одному из | не равно одному из ] строка-образец
    Message-ID (ID-сообщения) сравнивается с Message-ID, указанным в шаблоне.
    Пример:
    Этому условию удовлетворяют все сообщения, у которых нет поля Message-ID и сообщения, у которых в Message-ID отсутствует знак @.
    Размер сообщения [равно одному из | не равно одному из | меньше чем | больше чем] размер (в байтах)
    Проверяется, является ли размер сообщения больше/меньше указанного в шаблоне размера (числа байт).
    Пример:
    Все сообщения размером больше 100 Килобайт удовлетворяют такому условию.
    Написано человеком
    Проверяется, было ли сообщение создано человеком или же оно было сгенерированным автоматически.
    Для этого проверяется, содержит ли заголовок следующие поля:
    Precedence: bulk
    Precedence: junk
    Precedence: list
    X-List*
    X-Mirror*
    X-Auto*
    X-Mailing-List
    При этом условии также происходит проверка на то, чтобы обратный путь (поле Return-Path) был не пустым.
    Произвольное поле заголовка [ равно | не равно | равно одному из | не равно одному из ] строка-образец
    Проверяется, содержит/не содержит заголовок RFC822 сообщения указанное в шаблоне поле. Дополнительные поля заголовка, добавляемые командой Add Header, также проверяются.
    Пример:
    Любой получатель [ равно | не равно | равно одному из | не равно одному из ] строка-образец
    Адреса, указанные на "конверте" SMTP, сравниваются с адресом/адресами, указанными в строке-образце (шаблоне). Если этот фильтр является локальным, то сравнению подлежат только те адреса "конверта", которые маршрутизируются в этот почтовый ящик.

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

    Сообщение могло быть получено сервером по протоколу ESMTP с параметром ORCPT. Этот параметр указывает, каким образом был составлен адрес при отправлении, перед тем, как при пересылке/ответе этот адрес был заменен системой на другой адрес. В таком случае сервер может использовать параметр ESMTP ORCPT, чтобы определить изначальный адрес.

    Пример:
  • Письмо отправлено на адрес user1@domain1.com, где оно было создано неизвестно ;
  • Сервер domain1.com получил сообщение и при перенаправлении преобразовал адрес "конверта" на user2@domain2.com;
  • domain1.com сервер переслал сообщение на ваш CGP сервер domain2.com;
  • CGP сервер domain2.com получил сообщение;
  • CGP сервер domain2.com "выяснил", что user2 является псевдонимом для user3, и тогда сервер направляет сообщение уже в почтовый ящик user3.

    Если сервер domain1.com достаточно продвинутый, то он "сообщит" CGP серверу domain2.com о том, что исходный адрес был user1@domain1.com, и тогда, при проверке условия Получатель будет проверяться строка <user1@domain1.com>.

    В противном случае будет сравниваться строка <user2@domain2.com>.

  • Условие считается выполненным, если оно оказалось справедливым по крайней мере для одного из адресов "конверта".

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

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

    Пример:

    Текущая дата/время [равно одному из | не равно одному из | меньше чем | больше чем ] строка,
                                           указывающая текущую дату/время
    Текущая дата и время сравниваются с датой и временем, указанными в шаблоне. Использование такого условия позволяет вам создавать фильтры, применяемые к сообщениям, приходящим на ваш адрес в определенный промежуток времени.

    Дата и время, указываемые в шаблоне, должны быть представлены в следующей форме:

  • DD MM YYYY
  • DD MM YYYY hh:mm
  • DD MM YYYY hh:mm:ss
  • DD MM YYYY hh:mm:ss +ZZZZ
  • DD MM YYYY hh:mm:ss -ZZZZ
    где:
    DD - день месяца;
    YYYY - год;
    hh - час;
    mm - минуты;
    ss - секунды;
    +ZZZZ или -ZZZZ - временная зона (временной пояс). Если временной пояс не указывается, то время будет рассматриваться во временном поясе, установленном на сервере;
    MM - месяц. Для указания месяца используйте обозначения:
    Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.

    Пример:

  • Текущий день недели [ равно | не равно | равно одному из | не равно одному из ] строка,
                                            указывающая день недели
    Текущий день недели (в соответствии с временными настройками, принятыми на сервере) проверятся с днем недели указанным в шаблоне. Использование этого условия позволит вам создать фильтры, применяемы для сообщений, получаемых в определенный день недели.
    Дни недели в шаблоне следует указывать в одном из двух форматов:

    либо числами (0 - для воскресенья, 1 - для понедельника, 6 - для субботы), либо в соответствии со стандартом RFC822 (Sun, Mon, Tue, Wed, Thu, Fri, Sat).

    Пример:

    Источник сообщения [ равно | не равно | равно одному из | не равно одному из ] строка
    Это условие проверяет, было ли получено сообщение из "доверительного" источника (по SMTP с сервера, IP адрес которого есть в списке IP адресов клиентов), или из "авторизованного" источника (по SMTP, через Web-интерфейс, MAPI, POP XMIT, Правила - когда автор сообщения прошёл процедуру проверки и авторизации).

    Пример:

    Адрес источника [ равно | не равно | равно одному из | не равно одному из ] строка
    Это условие проверяет адрес источника сообщения. Если сообщение создано самим сервером (автоматическими правилами и т.п.), этот адрес пустой. В противном случае, он содержит имя модуля, который получил сообщение, и отделённый пробелом сетевой (IP) адрес, с которого поступило сообщение.

    Пример:

    Нижеследующие условия могут быть использованы только в глобальных фильтрах.

    Any Route [ равно | не равно | равно одному из | не равно одному из ] строка-образец
    Это условие проверяет, что адрес из SMTP-конверта маршрутизируется на указанный в шаблоне адрес.

    Условие считается справедливым, если оно справедливо по крайней мере для одного из адресов "конверта".

    Замечание: Проверяется, только "локальная часть" разобранного и смаршрутизированного адреса. Так, например, если указанный на "конверте" адрес <user@client.com> был преобразован записью таблицы маршрутизации

    client.com = relay.host.smtp,
    то адрес на конверте (для отправки на машину relay.host) будет иметь локальную часть user, а не user@relay.host.

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

    Each Route [ равно | не равно | равно одному из | не равно одному из ] строка-образец
    Условие аналогично вышеописанному, но оно считается верным только в случае, если оно выполняется для всех адресов SMTP-конверта.


    Действия, осуществляемые фильтром

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

    Web-интерфейс CGP предоставляет возможность осуществлять следующие действия фильтров:

    Прекратить обработку
    Выполнение этого действия прекращает проверку оставшихся условий этого фильтра, а также условий фильтров с меньшими приоритетами. Сообщение будет сохранено в папке "ВХОДЯЩИЕ" ("INBOX").
    Уничтожить
    Прекращает проверку оставшихся условий этого фильтра, а также условий фильтров с меньшими приоритетами. Сообщение не сохраняется в вашем почтовом ящике. Если отправителем было запрошено уведомление о результате доставки, то ему будет отправлено извещение об успешной доставке.
    Пример:
    IF From is *that_annoying_guy@*
    THEN
    Discard
    Отвергнуть с диагностикой
    Это действие останавливает проверку оставшихся условий этого фильтров, а также условий фильтров с меньшими приоритетами. При этом отправителю этого письма будет отослано сообщение о неудачной доставке его сообщения. Текст, указанный как параметр для этого действия (в поле для ввода текста), будет частью сообщения об ошибке, отсылаемом обратно отправителю исходного письма. Само сообщение вы можете все же сохранить в своем почтовом ящике, для этого перед действием Отвергнуть с диагностикой установите действие Сохранить в.
    Пример:
    IF Subject is *UCE*
    THEN
    Reject   please do not send such messages here
    Пометить operation [, operation...]
    Это действие устанавливает/сбрасывает указанную пометку у сообщения. Изначально у сообщения никаких пометок не установлено. Сообщение можно пометить одним из следующих образов:
  • Прочитано / Не прочитано
  • Пометить флажком / Отменить пометку флажком
  • Отвечено / Не отвечено.
    Независимо от того, каким действием фильтра сообщение было сохранено в одну из папок вашего почтового ящика, оно будет сохранено со всеми указанными флагами.
    Пример:
    IF Sender is *list*
    THEN
    Mark Flagged
    Добавить заголовок
    Это действие добавляет заголовок в соответствии с RFC822. Изначально, набор дополнительных заголовков состоит только из заголовка Return-Path.
    Независимо от того, каким действием сообщение было сохранено в одну из папок вашего почтового ящика, оно будет сохранено со всеми указанными дополнительными заголовками.
    Пример:
    IF Subject is *purchase*order*
    THEN
    Add Header X-Special-Processing: order
    Действие "Добавить заголовок" можно использовать для добавления специального заголовка X-Color. Этот заголовок распознаётся Web-интерфейсом, и его можно использовать для выделения сообщения цветом в почтовом ящике:
    Пример:
    IF Header Field is X-Spam: *
    THEN
    Add Header X-Color: red
  • Замечание: следующие действия не подразумевают выполнение действия "Уничтожить". Поэтому, если вы не хотите, чтобы сообщения сохранялись в вашем почтовом ящике, например, после переадресации, то следующим действием после действия Перенаправить установите действие Уничтожить.

    Сохранить в имя папки
    Сообщение копируется в указанную папку вашего почтового ящика. Папка, которую вы указываете для сообщения, должна быть уже создана.
    Если имя папки указано как ~user_name/mailbox_name, то сообщение будет сохранено в папку mailbox_name в указанном почтовом ящике user_name. При этом вам необходимо иметь право доступа Insert к указанному почтовому ящику.
    Пример:
    IF Subject is *Make*$*
    THEN
    Store in ~postmaster/abuse
    Discard

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

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

    Перенаправить письмо с сохранением заголовков адреса электронной почты
    Сообщение будет переслано на указанный адрес с неизмененными заголовками. В отличии от действия Перенаправить копию, действие Перенаправить письмо с сохранением заголовков не изменяет заголовков, за исключением Return-Receipt-To (уведомление о доставке), Errors-To (адрес для сообщения об ошибке), а также добавляется заголовок X-Mirrored-by.

    Ответить с текстом текст сообщения
    Web-интерфейс CGP позволяет вам автоматически отправлять ответ на письмо с составленным вами текстом. Этот текст вы указываете в Параметрах этого почтового ящика
    Текст может быть добавлен как к телу письма, так и к заголовку. Если вы не добавляете текст к заголовку сообщения, то добавляются поля заголовка Subject: Re: тема исходного сообщения и In-Reply-To: ID исходного сообщения.

    Также к заголовку будут добавлены поля

    MIME-Version: 1.0
    Content-Type: text/plain; charset=charsetName.

    Вы можете добавить текст к заголовку письма. Для этого в начале строки поставьте знак "+". При этом знак "+" должен быть указан после строки, указывающей кодировку [charsetName] (все не ASCII-символы преобразуются в кодировку UTF-8).
    Если вы добавляете что-то к заголовку сообщения, то поля заголовка Subject: Re: тема исходного сообщения, In-Reply-To: ID исходного сообщения, а также поле с указанием версии MIME, автоматически заполняться не будут, и вы должны их сами явно задать.
    В заголовке сообщения-ответа в поля To, Cc и Bcc могут быть добавлены адреса, по которым будет отправлено это письмо. При отправлении поле Bcc будет удалено из заголовка.

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

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

    ^S будет заменен на Тему исходного сообщения (в исходном варианте)
    ^s будет заменен на Тему исходного сообщения (после раскодирования MIME)
    ^F будет заменен на указанный в поле From (От) исходного сообщения (в исходном варианте)
    ^f будет заменен на указанный в поле From (после раскодирования MIME)
    ^T будет заменен на дату, когда было получено исходное сообщение
    ^I будет заменен на значение поля Message-ID (ID сообщения) исходного сообщения
    ^R будет заменен на значение поля To исходного сообщения (после раскодирования MIME)

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

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

    Ответить с текстом

    Ответить всем адресатам текст для сообщения
    Это действие фильтра работает в принципе также, как и описанное выше Ответить с текстом, только сообщение-ответ посылается не только на адреса указанные в поле To:, но и на адреса, указанные в поле Cc: исходного сообщения.

    Создать письмо с сообщением текст сообщения
    Указываемый текст должен содержать заголовок, пустую строку (для отделения заголовка от тела письма) и текст самого сообщения. Заголовок может содержать сколько угодно адресов в полях To, Cc и Bcc, поле Subject и любые дополнительные заголовки.
    Система автоматически заполняет поле Sender, прописывая в него адрес вашей электронной почты на этом сервере, а также этот адрес присваивается полю From, если вы сами не указали значение этого поля. Вы можете указать кодировку, в которой будет отослано ваше сообщение, для этого используется следующая строка: [charsetName] (все не ASCII-символы преобразуются в кодировку UTF-8). Если вы указываете кодировку, то вы должны указать и версию MIME.

    Текст как для заголовка, так и для тела сообщения может содержать макро-символы.

    Для наглядности, ниже приведен пример составления такого текста:
    Создать письмо с ответом

    Выполнить команду myprogram
    Будет выполнена указанная команда операционной системы

    Сообщение (текст и заголовок) будет отправлено на стандартный вход (stdin) программы.
    Замечание: программа должна считать весь поток стандартного ввода, иначе задача завершится с ошибкой.

    Строка с командой может начинаться со специальных префиксов.

    Префикс [FILE]: [FILE] myprogram param1ist

    Этот префикс указывает системе, что на стандартный ввод программы ничего не будет подаваться, и строка -f Queue/fileid.msg (ключ -f и имя файла с сообщением, относительно базового каталога CGP) будет добавлена в конец строки с командой:
    -f Queue/12002345.msg
    Замечание: Обычно пользователь не обладает правом доступа к базовому каталогу CGP, поэтому префикс [FILE] может быть использован только в глобальных фильтрах.

    Префикс [RETPATH]: [RETPATH] myprogram parm1ist

    Этот префикс добавляет в конец строки с командой "-p return-path сообщения":
    -p address@domain.com

    Префикс [RCPT]: [RCPT] myprogram parm1ist

    Этот префикс указывает, что к строке с командой будет добавлено "-r список получателей сообщения":
    -r address1@domain1.com address2@domain2.com

    В локальном правиле перед командой можно использовать префикс [ACCNT]: [ACCNT] myprogram parm1

    Этот префикс добавляет в командную строку "-u имя_пользователя" (владельца правила):
    -u accountName@domainName

    Префикс [ORCPT]: [ORCPT] myprogram parm1

    Этот префикс указывает, что к строке с командой будет добавлено "-r список получателей сообщения":
    -r origAddress1@domain1.com origAddress2@domain2.com Если вместе с адресом получателя был известен "первоначальный адресат" (параметр ORCPT протокола ESMTP), то будет использован именно этот первоначальный адрес.

    Замечание: префиксы [RCPT] и [ORCPT] могут быть использованы только в глобальных фильтрах.

    Префикс [STDERR] будет описан ниже.

    В командной строке можно задать несколько префиксов, указанных в любом порядке. При этом первым идет флаг -f и его параметры, затем флаг -p с параметрами и после него флаг -r со своими параметрами.

    После выполнения задачи проверяется, ее код завершения. Если значение кода завершения равно 0, то действие фильтра считается выполненным удачно и система переходит к выполнению действий следующего фильтра.
    Если же значение кода завершения не равно 0, то система выдаст сообщение об ошибке "automated processing failed", а данные со стандартного вывод ошибок этой задачи будут записаны в Log-файл вместе с кодом завершения.
    Вы можете указать префикс [STDERR] для того, чтобы направить в стандартный вывод ошибок запись об ошибке (данные задачи и код завершения).

    Данные, подаваемые на стандартный выход задачи, не должны превышать 4 Kb, иначе они будут сокращены. В этом случае в Log-файл будет сделана соответствующая запись.

    Если задача не завершается в течение 2 минут, то CGP сервер прекращает ее выполнение.

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

    Если CGP запущен на Unix-машине, то задача будет выполняться с UID Unix-пользователя, ID его группы и набору групп. При этом также текущим каталогом задачи будет являться домашний каталог локального пользователя.
    Действия Execute не могут быть запущены для локальных фильтров, если CGP установлен под MS Windows, AS/400 или BeOS операционными системами.

    Задача глобального фильтра выполняется в собственном пространстве CGP, и текущим каталогом будет базовый каталог.

    Пример:
    Execute

    Извещение Finger [ адрес ]
    Сервер устанавливает соединение с указанным адресом по порту 79 (порт finger) и посылает тому компьютеру nm_notifyuser. Если адрес не указан, и фильтр является локальным, то будет использоваться адрес пользователя, зашедшим в систему последним.

    Это действие должно быть использовано совместно с установленной на клиентском компьютере утилитой NotifyMail®.

    Пример:
    FingerNotify

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

    Вы можете установить настройки Уведомлений со странички Obscure раздела Settings интерфейса администратора (WebAdmin).

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

    Записать в Log-файл строка-образец
    В системный Log-файл будет записана информация, содержащая ID сообщения и указанную строку (степень подробности Log-записей будет Major, т.е. уровень 2).

    Только администратор сервера может использовать это действие.

    Remember 'From' in строка
    Это действие может быть использовано только в локальных правилах. Аргумент строка указывает имя списка, который существует или будет создан в базе данных пользователя. Адрес автора сообщения (From:) будет добавлен в указанный список.

    Accept Request options
    Это действие может быть использовано для автоматического принятия запроса на встречу (только в локальных правилах). Подробности см. в разделе Календарь.


    Автоответчик

    Каждый эккаунт имеет один встроенный фильтр - автоответчик. Если это правило включено, то оно проверяет, что пришедшее сообщение не создано автоматически и адрес автора сообщения (From:) не помещён в список RepliedAddresses. Затем создаётся и отправляется сообщение автоответчика, а адрес автора сообщения добавляется в список RepliedAddresses, таким образом, автоответ шлётся каждому корреспонденту только один раз.

    Этот фильтр имеет условия:

    создано человеком
    From     not in     #RepliedAddresses

    и действия:

    Ответить            Текст сообщения
    Remember 'From' in    RepliedAddresses

    Для этого фильтра может быть изменен только текст сообщения автоответчика:

    Сообщение "Я в отпуске"
    Автоответчик
    Если эта опция не выбрана, то автоответчик будет выключен. Когда эта опция включена, то этот фильтр имеет приоритет 2.

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

    Если нажать кнопку "Очистить список адресов, кому послано сообщение", то список RepliedAddresses будет удалён. Если автоответчик выключен, то появляется кнопка "Включить". При нажатии на неё автоответчик включается, при этом список адресов RepliedAddresses тоже очищается.


    Упрощенный фильтр для переадресации

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

    Для этого фильтра правило должно быть либо пустым (тогда он применяется ко всем входящим сообщениям), либо письмо должно быть создано человеком, а действие фильтра, по выбору, одно из следующих:

    Измененным может быть только список адресов для переадресации:

    Перенаправлять всю почту:
    Сохранять копию Не перенаправлять
    сообщения от автоматов
    Сохранять адреса
    получателей (To/Cc)

    Переслать все сообщения
    Если эта опция выбрана, то применяется фильтр "Переслать все сообщения" и он обладает наименьшим приоритетом (приоритет=1).

    Сохранить копию
    Если эта опция не установлена, то при перенаправлении сообщений они не сохраняются в вашем почтовом ящике, т.е. к ним применяется действие Уничтожить.

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

    Сохранить поля To/Cc
    Эта опция добавляет к фильтру действие Mirror To. Если эта опция отключена, то фильтром используется действие "Переслать".

    Если вы не являетесь администратором, то вы можете установить этот фильтр только если вам дано право на настройку перенаправляющего фильтра. Иначе только Администратор имеет право установить этот фильтр в вашем почтовом ящике.


    Log-записи при работе фильтров

    Протокол работы (Log-записи) по работе глобального фильтра записываются модулем Enqueuer. Вы можете изменять степень подробности документирования событий в log-записи от Low-Level до All Info.

    Работа локального фильтра документируется в log-файл модулем Local Delivery. При этом степень подробности log-записей может быть изменена от Low-Level до All Info.


    Правила для всего домена

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

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

    Замечание: доменные правила добавляются в начало локальных, поэтому они выполняются в том же окружении, что и локальные (т.е. "под тем же пользователем").

    Для администратора Сервера.


    Фильтрация сообщений по их содержимому и проверка сообщений на вирусы

    Вы можете использовать внешнюю программу (Helper) для фильтрации всех сообщений, которые обрабатывает ваш сервер CGP. Это бывает полезным при использовании внешних антивирусов и т.п.

    Для использования внешних фильтров содержания откройте основной раздел страницы Settings интерфейса администратора (WebAdmin) и щелкните на ссылке Helpers (программы помощники).
    Страничка Helpers выглядит таким образом:

    Content Filtering
    Log: Program Path:

    Log
    Используйте эти настройки, чтобы указать степень подробности ведения Log-записей (протоколирования) для Интерфейса Фильтрации Содержимого. Log-записи Интерфейса Фильтрации Содержимого будут помечены тэгом EXTFILTER.

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

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

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


    Интерфейс для фильтрации по содержимому писем

    Любая внешняя программа может быть использована для фильтрации по содержимому, если она реализует следующий интерфейс:
    • Программа должна считывать запросы со своего стандартного ввода. Каждый запрос должен содержать только одну строку текста и иметь формат:
      seqNum FILE fileName
      где:
      seqName положительное число - идентификатор запроса,
      fileName - имя файла, который должен быть просканирован.
    • Для каждого запроса программа должна выдавать только одну строку ответа и ответ не должен превышать 4096 байт.
    • Если сообщение не должно быть отброшено, то формат строки ответа:
      seqNum OK
      где:
      seqName - идентификатор запроса
    • Если же сообщение должно быть отброшено, то формат строки следующий:
      seqNum ERROR report
      где:
      seqName - идентификатор запроса; report - строка текста объясняющая почему сообщение должно быть отвергнуто. Этот текст, который может состоять из нескольких строк, должен быть помещен в строку-ответа в следующем формате.
    • Если сообщение должно быть отложено, например, по причине ограничения лицензии, то строка ответа должна иметь формат:
      seqNum REJECTED report
      где:
      seqName - идентификатор запроса, report строка текста дающая обьеснение почему должно быть послано сообщение.
    • Программа должна быть готова к обработке нескольких запросов одновременно (используя несколько тредов), т.е. Content-Filtering program используется только с глобальными фильтрами, программа должна быть готова обрабатывать N конкурирующих запросов, где N количество задач модуля Enqueuer.
    • Программа может быть реализована как работающая только с одним тредом, тогда она будет обрабатывать следующий запрос только по завершению текущего запроса. Но в этом случае результатом работы может оказаться серьезное снижение производительности всего сервера.

    Текущим каталогом программы при ее старте должен быть основной каталог CGP.

    В случае падения внешней программы, сервер CGP приостанавливает работу процессов модуля Enqueuer до тех пор, пока внешняя программа не будет перезапущена.


    CommuniGate® Pro Guide. Copyright © 1998-2002, Stalker Software, Inc.
    Перевод и адаптация. Copyright © 2002-2003, Demos-Internet.