virtual:
driver = redirect
domains = ${mysql{SELECT `alias_domain` FROM `alias_domain` WHERE \
`alias_domain` = '${domain}' AND `active` = '1'}}
data = ${lookup{$local_part}mysql{SELECT `target_domain FROM `alias_domain` WHERE `alias_domain`='${quote_mysql:$domain}'}}
no_more
Но сам я таким вопросом не задавался, так что за работоспособность не ручаюсь.
Но сам я таким вопросом не задавался, так что за работоспособность не ручаюсь.
Не-а, не работает. В приведенном фрагменте ругается на ошибки в SQL-синтаксисе.
Я попытался сам как-то поправить, но я толком не знаю SQL (стыд мне и позор).
Может, подскажете, как сделать?
2010-01-29 15:25:01 failed to expand "${mysql{SELECT `alias_domain` FROM `alias_domain` WHERE `alias_domain` = '${domain}' AND `active` = '1'}}"
while checking a list: "${mysql" is not a known operator (or a } is missing in a variable reference)
Добил-таки SQL-синтаксис, теперь никаких ошибок не выдает. Так выглядит моя секция `routers`:
Код:
######################################################################
# ROUTERS CONFIGURATION #
# Specifies how addresses are handled #
######################################################################
# THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT! #
# An address is passed to each router in turn until it is accepted. #
######################################################################
begin routers
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
`address`='${quote_mysql:$local_part@$domain}' OR \
`address`='${quote_mysql:@$domain}' AND `active`='1'}}
user = exim
file_transport = address_file
pipe_transport = address_pipe
domain_aliases:
driver = redirect
domains = ${lookup mysql{SELECT `alias_domain` FROM `alias_domain` WHERE \
`alias_domain` = '${domain}' AND `active` = '1'}}
data = ${lookup mysql{SELECT `target_domain` FROM `alias_domain` WHERE \
`alias_domain` = '${quote_mysql:$domain}'}}
no_more
# Dovecot router
dovecot_user:
driver = accept
condition = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
`address`='${quote_mysql:$local_part@$domain}' OR \
`address`='${quote_mysql:@$domain}'}{yes}{no}}
transport = dovecot_delivery
######################################################################
# TRANSPORTS CONFIGURATION #
Но проблема, оказывается, где-то глубже, в конфигурации самого Exim-а.
В приведенной конфигурации, доставка к существующим адресам происходит без проблем, а к доменам-алиасам говорит: