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

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Bessome
проходил мимо

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

Непрочитанное сообщение Bessome » 2011-02-02 14:07:18

Помогите чем можете, коллеги:
фря 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.

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

Хостинговая компания 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/

Bessome
проходил мимо

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

Непрочитанное сообщение Bessome » 2011-02-02 16:25:01

Я тут подумал, что возможно нужно заменить условие с sender_address
Жду совета

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

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

Непрочитанное сообщение blade_007 » 2011-02-02 16:45:38

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

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, где хранятся адреса для которых срабатывает роутер.

Bessome
проходил мимо

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

Непрочитанное сообщение Bessome » 2011-02-02 18:21:52

Спасибо! Смысл ясен, влоб не заработало. Завтра дерзну
ошибка запроса пока в логах. Как сделаю, отпишусь

Bessome
проходил мимо

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

Непрочитанное сообщение Bessome » 2011-02-03 6:20:53

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

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
вот этот код заработал. Спасибо!