Страница 1 из 1
Как правильно написать условие
Добавлено: 2007-12-12 0:43:02
mitry13
Как правильно написать условие чтобы в роутере на проверку спама можно было посмотреть содержать ли адрес отправителя что-то из таблицы mySQL и если да то пропустить роутер. Никак не получается

Как подправить нижеприведенное чтобы оно заработало?
Код: Выделить всё
condition ="${if and {{!def:h_X-Spam-Flag:}{!eq{$received_protocol}{local}}{!def:h_X-FILTER-DSPAM:}{<= {$message_size}{512k}}}{yes}{no}} \
and ${lookup mysql{SELECT active FROM whitelist WHERE '${quote_mysql:$sender_address}' LIKE addr_part AND active=0}}{no}{yes}}"
Спасибо!
Re: Как правильно написать условие
Добавлено: 2007-12-12 16:58:56
Al
а что конкретно не работает? на что обижается??
попробуй для отладки разбить на два условия..
Re: Как правильно написать условие
Добавлено: 2007-12-12 22:12:41
Alex Keda
в роутерах нельзя два условия...
тока кусками отлаживать и объединять в одно
Re: Как правильно написать условие
Добавлено: 2007-12-13 11:44:03
Al
пропустил слово "роутер"....
ну а что ему не нравится????
попробуй exim -bh 127.0.0.1.333
там можно поподробнее посмотреть,только не помню насчет роутеров....... я так акли отлаживал
Re: Как правильно написать условие
Добавлено: 2007-12-16 22:33:20
mitry13
Да оно то неработало, то в паник лог сообщение кидало... lookup не возвращает логических условий...

правильная версия получилась:
Код: Выделить всё
condition = ${if and {\
{!def:h_X-Spam-Flag:} \
{!eq{$received_protocol}{local}} \
{!def:h_X-FILTER-DSPAM:} \
{<= {$message_size}{512k}} \
{eq{} {${lookup mysql{SELECT active FROM \
whitelist WHERE '${quote_mysql:$sender_address}' \
LIKE addr_part AND active=0}}}}\
}\
{yes}{no}}
А вообще есть нормальный ФАК по написанию условий в exim? а то официальное руководство полного понимания мягко говоря не дает...
Re: Как правильно написать условие
Добавлено: 2007-12-17 0:59:40
Alex Keda
хм...
а что конкретно непонятно?