exim и формат condition в разделе router

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

exim и формат condition в разделе router

Непрочитанное сообщение skeletor » 2010-09-29 10:32:15

Собственно сам router:

Код: Выделить всё

ditch_hdrmailer:
  driver = redirect
  allow_fail
  data = :blackhole:
  condition = ${if eq {${lookup mysql{select count(*) from blocklists,users,domains \
                        where blocklists.blockhdr = 'x-mailer' \
                        and blocklists.blockval = '${quote_mysql:$h_x-mailer:}' \
                        and users.localpart = '${quote_mysql:$local_part}' \
                        and domains.domain = '${quote_mysql:$domain}' \
                        and domains.domain_id=blocklists.domain_id \
                        and users.user_id=blocklists.user_id}}}{1} {yes}{no}}
  local_part_suffix = -*
  local_part_suffix_optional
  retry_use_local_part
Хочу немного изменить условие

Код: Выделить всё

and blocklists.blockval = '${quote_mysql:$h_x-mailer:}'
вместо равно поставить что-то наподобие like из mysql (типа совпадение по подстроке). Как это правильно сделать? Да и вообще какие операции, кроме равно можно использовать в это куске?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: exim и формат condition в разделе router

Непрочитанное сообщение Laa » 2010-09-29 11:59:01

дык у тебя и так sql запрос, в нем и делай like.
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: exim и формат condition в разделе router

Непрочитанное сообщение skeletor » 2010-09-29 12:36:16

Спасибо. Заработало вот так:

Код: Выделить всё

'${quote_mysql:$h_x-mailer:}' like concat('%',blocklists.blockval,'%')

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: exim и формат condition в разделе router

Непрочитанное сообщение skeletor » 2010-09-29 12:56:36

Ну и ещё один вариант

Код: Выделить всё

blocklists.blockval RLIKE REPLACE('${quote_mysql:$h_x-mailer:}'," ","|")
Правда первый мне кажется будет выполняться быстрее, так как во втором регулярные выражения и ещё оператор replace. Второй вариант пригоден только для сравнения строк с пробелами.