Страница 1 из 1
Куда конкретно надо вставить sql запрос в конфиг Exim?
Добавлено: 2009-06-24 9:49:48
bobot
Вот что я пытаюсь сделать:
вот таблицы в мускуле
Код: Выделить всё
таблица юзеров таблица domains
login password domain_id id domain
fffff dsdsdsds 1 1 newmail.univ.kiev.ua
sdss sdsdsdds 2 2 testmail.univ.kiev.ua
dsdsd sdsdsdss 3 3 ukr.net
dsds sdsdsdsds 1
и потом в конфиге экзима указать sql запрос
Код: Выделить всё
${lookup mysql{SELECT domain, user FROM domains, users WHERE id = domain_id}}
Вот где именно его вставлять надо?????
Re: Куда конкретно надо вставить sql запрос в конфиг Exim?
Добавлено: 2009-06-24 10:10:37
Laa
Ну там, где идут проверки на домен.
Вот пример, даже два:
Код: Выделить всё
...
# начало конфига exim.
MYSQL_Q_ALIASES=SELECT recipients FROM aliases WHERE local_part='${local_part}' AND domain='${domain}'
MYSQL_Q_DICTONARY_ATTACK_INSERT=INSERT INTO dict_attacks (ip,rcpt,helo,sndr) \
VALUES ('${quote_mysql:$sender_host_address}',\
'${quote_mysql:$local_part@$domain}',\
'${quote_mysql:$sender_helo_name}',\
'${quote_mysql:$sender_address}')
...
begin acl
...
acl_check_rcpt:
...
deny domains = +local_domains : +relay_to_domains
!verify = recipient
message = Unknown account <$local_part@$domain>
set acl_m_dictinsert= ${lookup mysql{MYSQL_Q_DICTONARY_ATTACK_INSERT}}
delay = 7s
...
...
begin routers
...
system_aliases:
driver = redirect
allow_fail
allow_defer
file_transport = address_file
pipe_transport = address_pipe
user = mailnull
group = mail
data = ${lookup mysql{MYSQL_Q_ALIASES}}
...
Я советую сразу вам делать login=login@domain (целый емыл), а не отделять домен от local_part.
Успехов.
Re: Куда конкретно надо вставить sql запрос в конфиг Exim?
Добавлено: 2009-06-24 10:19:48
bobot
Laa писал(а):Ну там, где идут проверки на домен.
Ну у меня вот вначале exima такие строчки
Код: Выделить всё
domainlist local_domains = ${lookup mysql{SELECT domain FROM domains WHERE domain='${domain}' AND (type='LOCAL' OR type='VIRTUAL')}}
Так что вместо этого? или там есть ещё
Код: Выделить всё
virtual_localuser:
driver = accept
domains = ${lookup mysql{SELECT domain from domains WHERE domain='${domain}'}}
local_parts = ${lookup mysql{SELECT login from users WHERE login='${local_part}' AND domain='${domain}'}}
Так какой надо править?
Re: Куда конкретно надо вставить sql запрос в конфиг Exim?
Добавлено: 2009-06-24 10:40:18
Laa
Вот это
Код: Выделить всё
virtual_localuser:
driver = accept
domains = ${lookup mysql{SELECT domain from domains WHERE domain='${domain}'}}
local_parts = ${lookup mysql{SELECT login from users WHERE login='${local_part}' AND domain='${domain}'}}
Лучше сделать так:
Код: Выделить всё
virtual_localuser:
driver = accept
domains = +local_domains
Чтобы без толку не дергать sql зазря. На большой нагрузке каждый лишний запрос становится вредным.
Да и домены, если у вас не изменяются раз в час, то лучше списком внутри конфига прописать и не трогать, чем каждый раз практически статическую информацию из базы выдергивать.

Re: Куда конкретно надо вставить sql запрос в конфиг Exim?
Добавлено: 2009-06-24 23:37:56
Alex Keda
а я бы в файл записал...
благо вместо списка в конфиге можно указать полный путь к файлу.