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