aboutsummaryrefslogtreecommitdiffstats
path: root/README.utf8.txt
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rambler-co.ru>2009-03-23 14:10:07 +0300
committerVsevolod Stakhov <vsevolod@rambler-co.ru>2009-03-23 14:10:07 +0300
commitc79b5ccd22cbc1c273479f4f88189a18effda533 (patch)
tree1741743779a70146a61cd1767936aa43d671e36b /README.utf8.txt
parentafdaddc4d0745a5bcefad73dd74fd4c03ae3de15 (diff)
downloadrspamd-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.txt23
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% (полностью разные части).