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

Exim mysql INSERT

Добавлено: 2013-01-23 16:11:35
artemua
Добрый день, столкнулся с задачей сделать правильный автореспондер для екзима, чтоб он один раз отвечал каждому адресату, а не на каждое письмо. Перерыл весь гугл может невнимательно искал не могу сделать insert в mysql из exim. Сам insert есть

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

${lookup mysql{INSERT IGNORE INTO `test_insert` (`sender_mail`) VALUES ('${sender_address}')}}
он работает, его надо выполнить или тут

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

virtual_vacation:
  driver = accept
  condition = ${if and { {!match {$h_precedence:}{(?i)junk|bulk|list}} \
                         {eq {${lookup mysql{select users.on_vacation from users,domains \
                          where localpart = '${quote_mysql:$local_part}' \
                         and domain = '${quote_mysql:$domain}' \.
                         and users.on_vacation = '1' \
                         and users.domain_id=domains.domain_id}}}{1} }} {yes}{no} }
  no_verify
  no_expn
  unseen
  transport = virtual_vacation_delivery
Или же тут

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

virtual_vacation_delivery:
  driver   = autoreply
  from     = "${local_part}@${domain}"
  to       = ${sender_address}
  subject  = "Autoreply from ${local_part}@${domain}"
  text     = ${lookup mysql{select vacation from users,domains \
               where domain='${quote_mysql:$domain}' \
               and localpart='${quote_mysql:$local_part}' \
               and users.domain_id=domains.domain_id}}
Подскажите гуру exim-a как его выполнить этот insert.

Re: Exim mysql INSERT

Добавлено: 2013-01-23 16:28:09
ChihPih
Сделать еще один кондишен, который всегда возвращет "yes" и воткнуть в него этот запрос.

Re: Exim mysql INSERT

Добавлено: 2013-01-23 17:03:47
artemua
:oops: можно пример?

Re: Exim mysql INSERT

Добавлено: 2013-01-23 18:22:32
artemua
Добавил второй condition

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

virtual_vacation:
  driver = accept
  condition = ${if and { {!match {$h_precedence:}{(?i)junk|bulk|list}} \
                         {eq {${lookup mysql{select users.on_vacation from users,domains \
                                      where localpart = '${quote_mysql:$local_part}' \
                                      and domain = '${quote_mysql:$domain}' \.
                                      and users.on_vacation = '1' \
                                      and users.domain_id=domains.domain_id}}}{1} }} {yes}{no} }
##########################
condition = ${lookup mysql{INSERT IGNORE INTO `test_insert` (`sender_mail`) VALUES ('${sender_address}')}{yes}{no}}.
##########################  
  no_verify
  no_expn
  unseen
  transport = virtual_vacation_delivery
Exim падает со словами

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

Exim configuration error in line 667 of /usr/local/etc/exim/configure:
  "condition" option set for the second time

Re: Exim mysql INSERT

Добавлено: 2013-01-23 19:26:53
ChihPih
А ну да, это же не ACL. Тогда можно попробовать выполнить два запроса за раз, то есть сунуть нужный вам запрос в начало/конец (перед/после select) и разделить их точкой с запятой, или в операторе and сделать еще условие с запросом возвращающее "yes".

Re: Exim mysql INSERT

Добавлено: 2013-01-24 13:53:23
artemua
Всё оказалось гараздо проще.
Тема на linux.org.ru
Всем большое спасибо за помощь.