Условие TEXT

<< Кликните, чтобы показать Содержание >>

Руководство Администратора | CHM EPUB PDF A4/Letter   

Условие TEXT

Проверить наличие ключевых слов в тексте сообщения или в его теме.

Описание

Это условие проверяет наличие ключевых слов в тексте сообщения или теме.

Проверка наличия наличия ключевых слов происходит по общему вхождению ключевого слова в текст, а не только как отдельные слова. Другими словами, это работает так, как будто для каждого ключевого слова ищется wildcard-шаблон "*ключевое слово*".

Например, под критерий ключевого слова "secret" будут попадать слова "secret", "sECrEt", "secretary", "insecretory" и т.п.

При поиске ключевых слов регистр символов не учитывается.

Формат

<c name="text" op="<operation>" value="<compare pattern>" />

<c name="text" op="<operation>" data="<data source>" />

Атрибут "name":

В атрибуте "name" укажите имя условия: name="text".

Атрибут "op":

Атрибут op="..." указывает на критерий проверки:

all

В сообщении должны быть найдены все указанные ключевые слова

one

Достаточно, чтобы в сообщении было найдено хотя бы одно ключевое слово.

По умолчанию (если атрибут "op" отсутствует) принимается значение "one".

Атрибут "value":

В атрибуте value="..." перечислите ключевые слова. Если ключевых слов несколько, то перечислите их через запятую ','. Также ключевые слова могут быть указаны в значении самого тега <c>key-word-list</c>

Атрибут "data":

В атрибуте data="..." может указываться другой источник ключевых слов. Это позволяет указывать большие наборы слов, когда это неудобно делать в атрибуте value="...".

Возможные значения:

data="<external data name>"

Загрузить список ключевых слов из внешнего блока в фильтре (тег <data name="extern-data-name">...</data>)

data="extern://<external data name>"

Загрузить список ключевых слов из внешнего блока в фильтре (тег <data name="extern-data-name">...</data>). Ключевые слова перечисляются через запятую

data="file://<full-file-path>"

Загрузить список ключевых слов из указанного файла. Ключевые слова перечисляются каждое на отдельной строке (запятые не нужны).

Пример:

<c name="text" op="one" value="secret1, secret2, secret3, secret4" />

или

<c name="text" op="one">secret1, secret2, secret3, secret4</c>

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

Примеры текстов:

1. Тема письма – "RE: secret 1 secret2" – условие ВЫПОЛНЯЕТСЯ.

2. Тема письма – "RE: secret3 secret4" – условие ВЫПОЛНЯЕТСЯ.

3. Текст письма – "посылаю вам наш secret 1 secret2" – условие ВЫПОЛНЯЕТСЯ.

4. Тема письма – "The quick brown fox jumps over the lazy dog" – условие НЕ ВЫПОЛНЯЕТСЯ.

<c name="text" op="all" value="secret1, secret2" />

или

<c name="text" op="all">secret1, secret2</c>

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

Примеры текстов:

1. Тема письма – "RE: secret1 secret2" – условие ВЫПОЛНЯЕТСЯ.

2. Тема письма – "RE: secret1 от буха" – условие НЕ ВЫПОЛНЯЕТСЯ.

3. Текст письма – "посылаю вам наш secret2" – условие НЕ ВЫПОЛНЯЕТСЯ.

4. Текст письма – "посылаю вам наш secret1 от secret2" – условие ВЫПОЛНЯЕТСЯ.

<c name="text" op="one" data="dictionary.txt" />

Загрузить список ключевых слов для проверки из файла "dictionary.txt".

Пример:

Письма, содержащие ключевые слова из списка keywords, принять для дальнейшей обработки. Всё остальное игнорировать.

<?xml version="1.0" encoding="utf-8"?>

<filter name="Message filter" version="1.0">

  <comment>Message filter.</comment>

 

  <table name="main">

 

    <rule enabled="1">

      <comment></comment>

      <match>

        <c name="text" data="extern://keywords" />

      </match>

      <action name="accept" />

    </rule>

 

    <rule enabled="1">

      <action name="drop" />

    </rule>

 

  </table>

 

  <data name="keywords">

        secret1,

        secret2,

        secret3,

        secret4

  </data>

 

</filter>