diff options
author | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2009-03-23 14:10:07 +0300 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2009-03-23 14:10:07 +0300 |
commit | c79b5ccd22cbc1c273479f4f88189a18effda533 (patch) | |
tree | 1741743779a70146a61cd1767936aa43d671e36b /README.utf8.txt | |
parent | afdaddc4d0745a5bcefad73dd74fd4c03ae3de15 (diff) | |
download | rspamd-c79b5ccd22cbc1c273479f4f88189a18effda533.tar.gz rspamd-c79b5ccd22cbc1c273479f4f88189a18effda533.zip |
* Fix error in expression parser that causes bad errors with expressions that have regexp at the end
* Improve test for fuzzy hashes
* Add new object - TextPart to perl XS library that allows access to stripped parts and fuzzy hashes
* Add documentation for expressions parser and fot Mail::Rspamd::TextPart
* Allways calculate fuzzy hash for text parts
* Store text parts separately from other parts
* Add compare_parts_distance for expressions that calculates difference in 2 parts messages
* Do not try to substitute variables in empty strings
Diffstat (limited to 'README.utf8.txt')
-rw-r--r-- | README.utf8.txt | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/README.utf8.txt b/README.utf8.txt index c5bc293c0..eed4010a2 100644 --- a/README.utf8.txt +++ b/README.utf8.txt @@ -1,7 +1,7 @@ API Rspamd. =========== -TODO. +API rspamd описано подробно в Doxygen документации. Логика работы фильтров rspamd. ============================== @@ -118,3 +118,24 @@ $subject_blah = "Subject=/blah/H"; тогда предыдущее выражение будет таким SOME_SYMBOL = "${to_blah} & !(${from_blah} | ${subject_blah})" + +Логические выражения rspamd +=========================== + +Условия, содержащие регулярные выражения, функции, логические операции, скобки, могут использоваться +для задания правил фильтрации. Общие правила работы: +- логическими операциями могут быть логическое "И": '&', логическое "ИЛИ": '|' и логическое отрицание: +'!'. +- приоритет логических операций такой: & и | -> !, для изменения приоритета можно пользоваться скобками: + (A&!B) | !(C|D) +- пробелы в выражениях игнорируются +- операнд, содержащий /re/args или же string=/re/args считается регулярным выражением, внутри регулярного +выражения все символы '/' и '"' должны экранироваться символом '\'. Сам '\' при этом экранировать не нужно. +- операнд, который принимает аргументы, считается функцией, аргументом функции может являться другая функция, +при этом порядок вызова функций-аргументов - справа налево (как это сделано в gcc) +- в rspamd встроен ряд функций: + * header_exists - принимает в качестве аргумента имя хедера, возвращает true, если такой заголовок существует + * compare_parts_distance - принимает в качестве аргумента число от 0 до 100, которое отражает разницу в процентах + между частями письма. Функция работает с сообщениями, содержащими 2 текстовые части (text/plain и text/html) и + возвращает true тогда, когда эти части различаются более чем на n процентов. Если аргумент не указан, то + по умолчанию ищется различие в 100% (полностью разные части). |