<< Кликните, чтобы показать Содержание >> Условие 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> |
---|