The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"regex + lsearch в Exim"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Почта)
Изначальное сообщение [ Отслеживать ]

"regex + lsearch в Exim"  +/
Сообщение от SubGun email(ok) on 17-Ноя-05, 18:02 
Помогите пожалуйста с конструкцией типа:
deny  message = Stop Spam!
  regex = lsearch;/usr/local/exim/test-word
Мне необходимо, чтобы проверялось письмо на наличие в нем одного из выражений из файла /usr/local/exim/test-word

Этот файл содержит в себе данные в разных кодировках в формате:
аренд*
заказ обед*
грузоперев*
заказ такси

Прошу вас не отсылать меня читать мануал, а действительно помочь. Если я этого завтра не сделаю, меня уволят :'(

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "regex + lsearch в Exim"  +/
Сообщение от SubGun email(ok) on 17-Ноя-05, 18:20 
У меня есть идея, что все должно выглядеть так:
deny  message = Stop Spam!
  condition = ${if match{$message_body}{lsearch;/usr/local/exim/test-word}{yes}{no}}
Но почему не работает?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "regex + lsearch в Exim"  +/
Сообщение от bass (??) on 18-Ноя-05, 13:18 
>У меня есть идея, что все должно выглядеть так:
>deny  message = Stop Spam!
>  condition = ${if match{$message_body}{lsearch;/usr/local/exim/test-word}{yes}{no}}
>Но почему не работает?

вы пытаетесь сравнить список со списком... к сожалению данный механизм внутри exim не реализован. у вас есть 2 варианта:
1. содержит ли $message_body определённое значение (не список!). вам понадобится столько вложенных if or {} сколько значений. (не забудьте указывать кодировку поиска)
2. exim позволяет вcтраивать perl процедуры  в acl. Вы лишь нужно передать message_body и ваш список в perl-функцию, которая по сути своей будет обычным поиском. hint: если perl-функция возвращает numeric то в if используейте eqi

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "regex + lsearch в Exim"  +/
Сообщение от SubGun email(ok) on 18-Ноя-05, 13:22 
Теперь запрос выглядит так:
deny message = Your letter contain many spam words! If this wrong, send letter to spamtrap@pac.ru!
logwrite = This message contains spam-word ($message_body)
condition = ${lookup{$message_body}lsearch{/usr/local/etc/exim/blacklist/spam-word-cp1251}{0}{1}}

А файл /usr/local/etc/exim/blacklist/spam-word-cp1251 собрал из двух
писем, посланных с mail.ru и от себя. Теперь он выглядит так:
*=E3=F0=EE=E2=FB* *=E2=F2=EE=EC=E0=F2=EE*
*=EE=EC=E5=F9=E5=ED=E8=FF =E2 =E0=F0=E5=ED=E4=F3
*=EE=EC=E5=F9=E5=ED=E8=FF =ED=E0 =EF=F0=EE=E4=E0=E6=F3
недвижимость
ипотека

Но теперь все письма режутся.
Вот кусок лога:
This message contains spam-word (=DF =EB=FE=E1=EB=FE =F2=E5=E1=FF, =EA=EE=F2=E5=ED=EE=EA.  )
rejected after DATA: Your letter contain many spam words! If this wrong, send letter to spamtrap@pac.ru!

А вот если поменять местами {1} и {0}, то ничего не режется!

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "regex + lsearch в Exim"  +/
Сообщение от bass (??) on 18-Ноя-05, 13:27 
>Теперь запрос выглядит так:
>deny message = Your letter contain many spam words! If this wrong,
>send letter to spamtrap@pac.ru!
>logwrite = This message contains spam-word ($message_body)
>condition = ${lookup{$message_body}lsearch{/usr/local/etc/exim/blacklist/spam-word-cp1251}{0}{1}}
>
>А файл /usr/local/etc/exim/blacklist/spam-word-cp1251 собрал из двух
>писем, посланных с mail.ru и от себя. Теперь он выглядит так:
>*=E3=F0=EE=E2=FB* *=E2=F2=EE=EC=E0=F2=EE*
>*=EE=EC=E5=F9=E5=ED=E8=FF =E2 =E0=F0=E5=ED=E4=F3
>*=EE=EC=E5=F9=E5=ED=E8=FF =ED=E0 =EF=F0=EE=E4=E0=E6=F3
>недвижимость
>ипотека
>
>Но теперь все письма режутся.
>Вот кусок лога:
>This message contains spam-word (=DF =EB=FE=E1=EB=FE =F2=E5=E1=FF, =EA=EE=F2=E5=ED=EE=EA.  )
>rejected after DATA: Your letter contain many spam words! If this wrong,
>send letter to spamtrap@pac.ru!
>
>А вот если поменять местами {1} и {0}, то ничего не режется!
>
я вам ответил выше.. если вы будете использовать exim -bd -d+all то увидите в деталях как прорабатывется ваше условие. поведение exim от вашего условия вполне очевидно, сравнение изначально неверно.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "regex + lsearch в Exim"  +/
Сообщение от sysadmin.org on 13-Ноя-06, 01:46 
>>А вот если поменять местами {1} и {0}, то ничего не режется!
бедненький, вот не прошло и года как пришло ваше избавление
оказывается надо использовать nwildsearch
читайте чаще нашу рассылку exim
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "regex + lsearch в Exim"  +/
Сообщение от viktor email(??) on 19-Окт-11, 22:34 
Доброго времени суток!!!

Вот возникла и у меня такая проблема. Прочитав Ваши ответы, порылся, поискал и нашел ответ...

>deny message = STOP!
>condition = ${if or { \
>{match {${lc:$message_body}}{.*ВЫРАЖЕНИЕ.*}} \
>{match {${lc:$message_body}}{.*ВЫРАЖЕНИЕ.*}} \
>{match {${lc:$message_body}}{.*ВЫРАЖЕНИЕ.*}} \
>}{1}{0}}

Подскажите плз как указать кодировку

Заранее спасибо

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру