Страница 1 из 1

И еще немного про фильтрацию в exim

Добавлено: 2022-05-19 13:36:32
nilerus
Всем добрый день!
Прошу вашей помощи и совета по такому вопросу:
есть у нас сервак, на котором крутится exim 4.94. Поступила задача сделать фильтрацию-редирект на почтовый ящик по "сигнальным" словам.
Нашел описание и перевод по этой теме на этом форуме (огромное спасибо) и "наваял" фильтр и даже не один, и вроде он работает, но не совсем так как хотелось бы.
-Взгляните:
1) if $h_subject matches "(салат|горошина|лук|чеснок|мина)"
then
logwrite "$tod_log $message_id from $sender_address h_subject= $h_subject is redirected"
unseen deliver "[mymail@domen.ru]"
endif
1.1) if $h_subject contains "салат" or "горошина" or "лук" or "мина"
then
logwrite "$tod_log $message_id from $sender_address h_subject= $h_subject is redirected"
unseen deliver "[mymail@domen.ru]"
endif
Работает, редирект проходит, НО(!) если слово, как бы это сказать, много составное, например "семинар". Видим, что фильтр на него срабатывает из-за этого имеются сложные срабатывания, что печалит.

-Есть такое правило:
2) "${lookup{$h_subject:} wildlsearch{/etc/exim/h_subject.list}{yes}{no}}" is yes
Набиваем список "сигнальными" словами, но тут загвоздка в другом - фильтр срабатывает только на слова из списка, а если они в выражении, типа "соленая мина", то все фильтр уже не отработает. Не гибко получается.
2.1) Нашли такой подход: {$h_subject:} matches ${readfile{/etc/exim/h_subject.list}} читает из "сигнальные" из словаря, но опять вычленяет из сложного "сигнальное" слово.

Тут на форуме нашел тему: viewtopic.php?f=20&t=45722&p=390473&hil ... тр#p390473
В общем не прокатило, не сработало у меня.

Первый вариант мне больше нравится конечно...подскажите как лучше решить такую задачку? Ткните носом, куда еще копать.