On 13.02.2011 14:30, Victor Ustugov wrote:
Vsevolod Stakhov wrote:


Сейчас можно использовать dynamic rules:
это вариант. но на сколько я понимаю, для каждого символа придется
создавать отдельный файл. я предполагаю создание достаточно большого
количества правил. порядка нескольких сотен как минимум.

Нет, как раз в файле описывается json массив из правил.

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

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

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

Кроме того, можно в lua добавить поддержку метрик в каком-то таком виде:
conf['module']['symbol'] = 'rule'
metrics['name']['symbol'] =<weight>

т. е. по сути можно в rspamd.xml просто описать метрику, а привязку к
ней символов с опреденными весами делать в lua?

Да, именно так. Вообще, xml предполагался для автоматического редактирования какими-нибудь скриптами или веб-мордой.

т. е. интересует что-то типа такого:

local MAILMAN_MSGID =
'From,Message-ID=/<([^\\@]+\\@[^>]+)>,<mailman\\.\\d+\\.\\d+\\.\\d+\\.\\1>$/'

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

тогда этот вопрос мне придется отложить до изучения работы с регулярными
выражениями в lua. да и нужно будет разобраться с использованием

В lua можно использовать регулярные выражения rspamd через библиотеку rspamd_regexp, при этом сохраняются все преимущества rspamd в виде кеша компилированных регулярок и кеша результатов для каждого сообщения.

писать функциою (если таковой еще нет) для извлечения адреса(ов) из
header To (вернее из произвольного поля) и сравнивать адрес из RCPT TO с
этими извлеченными адресами. т. е. я имею ввиду аналог эксимовской
конструкции ${address:<string>}

Хорошо, я посмотрю, как это сделано в exim.

--
Vsevolod Stakhov

_______________________________________________
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users

Ответить