Exim mysql INSERT

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
artemua
проходил мимо
Сообщения: 6
Зарегистрирован: 2013-01-23 13:42:30

Exim mysql INSERT

Непрочитанное сообщение artemua » 2013-01-23 16:11:35

Добрый день, столкнулся с задачей сделать правильный автореспондер для екзима, чтоб он один раз отвечал каждому адресату, а не на каждое письмо. Перерыл весь гугл может невнимательно искал не могу сделать 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.

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

ChihPih
ст. прапорщик
Сообщения: 568
Зарегистрирован: 2009-09-04 12:23:30
Откуда: Где-то в России...
Контактная информация:

Re: Exim mysql INSERT

Непрочитанное сообщение ChihPih » 2013-01-23 16:28:09

Сделать еще один кондишен, который всегда возвращет "yes" и воткнуть в него этот запрос.
www.info-x.org - информационный ресурс о ОС FreeBSD.

artemua
проходил мимо
Сообщения: 6
Зарегистрирован: 2013-01-23 13:42:30

Re: Exim mysql INSERT

Непрочитанное сообщение artemua » 2013-01-23 17:03:47

:oops: можно пример?

artemua
проходил мимо
Сообщения: 6
Зарегистрирован: 2013-01-23 13:42:30

Re: Exim mysql INSERT

Непрочитанное сообщение artemua » 2013-01-23 18:22:32

Добавил второй 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

ChihPih
ст. прапорщик
Сообщения: 568
Зарегистрирован: 2009-09-04 12:23:30
Откуда: Где-то в России...
Контактная информация:

Re: Exim mysql INSERT

Непрочитанное сообщение ChihPih » 2013-01-23 19:26:53

А ну да, это же не ACL. Тогда можно попробовать выполнить два запроса за раз, то есть сунуть нужный вам запрос в начало/конец (перед/после select) и разделить их точкой с запятой, или в операторе and сделать еще условие с запросом возвращающее "yes".
www.info-x.org - информационный ресурс о ОС FreeBSD.

artemua
проходил мимо
Сообщения: 6
Зарегистрирован: 2013-01-23 13:42:30

Re: Exim mysql INSERT

Непрочитанное сообщение artemua » 2013-01-24 13:53:23

Всё оказалось гараздо проще.
Тема на linux.org.ru
Всем большое спасибо за помощь.