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

Exim: нужна помощь с правилами роутеров (MySQL)

Добавлено: 2011-02-02 14:07:18
Bessome
Помогите чем можете, коллеги:
фря 8.1; exim
часть конфига:

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

mysqluser:
  driver = accept
  condition = ${if eq{}{${lookup mysql{SELECT `maildir` FROM `mailbox` \
              WHERE `username`='${quote_mysql:$local_part@$domain}'}}}{no}{yes}}
  transport = mysql_delivery

#master_router:
#    driver = manualroute
#    condition = ${if eq{$sender_address}{${lookup mysql{SELECT `goto` FROM `alias` WHERE `priz`=1}}}{true}{false}}
#    transport = master_transport
#    route_list = * smtp.блаблабла.ру
#    ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 : 10.1.1.0/24

mailru_router:
    driver = manualroute
    transport = mailru_transport
#    route_list = * smtp.yandex.ru
    route_list =  * smtp.mail.ru
    ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
в базе данных exim.alias есть поле `priz` равный 0 или 1. Если ноль, mailru_router - работает, так как не проверяю ))
Если priz=1, тогда нужно воспользоваться закоментированным роутером. в condition прописан запрос (результат 3 e-mail адреса), который должен включать отправку с роутера master. Однако запрос не работает.
!!!Подскажите правильный запрос!!! Нужно сравнивать адрес отправляемого письма и результат запроса, и если есть вхождение, отправлять через master_router, если нет, то перескакиваем на mailru_router.

Спасибо заранее

Re: Exim: нужна помощь с правилами роутеров (MySQL)

Добавлено: 2011-02-02 16:25:01
Bessome
Я тут подумал, что возможно нужно заменить условие с sender_address
Жду совета

Re: Exim: нужна помощь с правилами роутеров (MySQL)

Добавлено: 2011-02-02 16:45:38
blade_007

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

condition = ${if eq{1}{${lookup mysql{SELECT 1 FROM `alias` WHERE `priz`=1 and что_то=$sender_address}}}}
data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE `priz`=1 and что_то=$sender_address}}
как то так. В условии проверяется установлен ли признак priz для отправителя ($sender_address). data - собственно кому роутить письмо. что_то - поле в вашей табличке mysql, где хранятся адреса для которых срабатывает роутер.

Re: Exim: нужна помощь с правилами роутеров (MySQL)

Добавлено: 2011-02-02 18:21:52
Bessome
Спасибо! Смысл ясен, влоб не заработало. Завтра дерзну
ошибка запроса пока в логах. Как сделаю, отпишусь

Re: Exim: нужна помощь с правилами роутеров (MySQL)

Добавлено: 2011-02-03 6:20:53
Bessome

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

master_router:
    driver = manualroute
    condition = ${if eq{1}{${lookup mysql{SELECT 1 FROM `alias` WHERE `goto`='${sender_address}' AND `priz`='1'}}}}
    transport = master_transport
    route_list = * smtp.блаблабла.ру
    ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 : 10.1.1.0/24
вот этот код заработал. Спасибо!