exim: проверка существования юзеров по нескольким базам в одном роутере
Привет!
Есть почтовый сервачёк с юзерами в нескольких разных SQL-базах, доступ к
которым осуществляется с
использованием разных (не одинаковых) учётных данных.
Как в строке "condition" роутера проверить поочерёдно по обоим
переменным существование
юзеров сначала "CHECK_VIRTUAL_USER", если неудачно то "CHECK1_VIRTUAL_USER"
(аналог || в bash)?
1. Устанавливаю переменные
----- /etc/exim4/conf.d/main/00_exim4-config_local -----
# Запрос проверяет существование пользователя в почтовой системе
CHECK_VIRTUAL_USER = \
${lookup pgsql{servers=xxx.xxx.xxx.xxx::5432/db000/user000/Password; SELECT
egw_addressbook.contact_email \
FROM egw_addressbook, egw_accounts \
WHERE egw_addressbook.contact_email =
'${quote_pgsql:$local_part@$domain}' \
AND egw_addressbook.account_id IS NOT NULL \
AND egw_accounts.account_status != '${quote_pgsql:}' \
AND egw_addressbook.account_id = egw_accounts.account_id}{$value}fail}
# Запрос проверяет существование пользователя в почтовой системе
CHECK1_VIRTUAL_USER = \
${lookup
pgsql{servers=xxx.xxx.xxx.xxx::5432/db001/user001/PasswordPassword; SELECT
egw_addressbook.contact_email \
FROM egw_addressbook, egw_accounts \
WHERE egw_addressbook.contact_email =
'${quote_pgsql:$local_part@$domain}' \
AND egw_addressbook.account_id IS NOT NULL \
AND egw_accounts.account_status != '${quote_pgsql:}' \
AND egw_addressbook.account_id = egw_accounts.account_id}{$value}fail}
----- /etc/exim4/conf.d/main/00_exim4-config_local -----
2. Роутер
----- /etc/exim4/conf.d/router/950_exim4-config_dovecot_virtual_user -----
### router/950_exim4-config_dovecot_virtual_user
#################################
# This router matches local user mailboxes. If the router fails, the error
# message is "Unknown user".
dovecot_virtual_user:
debug_print = "R: dovecot_virtual_user for $local_part@$domain"
driver = accept
domains = +local_domains
local_parts = ! root
transport = LOCAL_DELIVERY
condition = CHECK_VIRTUAL_USER
cannot_route_message = Unknown user
no_more
----- /etc/exim4/conf.d/router/950_exim4-config_dovecot_virtual_user -----
Reply to: