Куда конкретно надо вставить sql запрос в конфиг Exim?

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Куда конкретно надо вставить sql запрос в конфиг Exim?

Непрочитанное сообщение bobot » 2009-06-24 9:49:48

Вот что я пытаюсь сделать:
вот таблицы в мускуле

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

таблица юзеров                                                    таблица 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}}
Вот где именно его вставлять надо?????

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

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: Куда конкретно надо вставить sql запрос в конфиг Exim?

Непрочитанное сообщение Laa » 2009-06-24 10:10:37

Ну там, где идут проверки на домен.

Вот пример, даже два:

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

...
# начало конфига 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.

Успехов.
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Куда конкретно надо вставить sql запрос в конфиг Exim?

Непрочитанное сообщение bobot » 2009-06-24 10:19:48

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}'}}
Так какой надо править?

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: Куда конкретно надо вставить sql запрос в конфиг Exim?

Непрочитанное сообщение Laa » 2009-06-24 10:40:18

Вот это

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

    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 зазря. На большой нагрузке каждый лишний запрос становится вредным.
Да и домены, если у вас не изменяются раз в час, то лучше списком внутри конфига прописать и не трогать, чем каждый раз практически статическую информацию из базы выдергивать. :fool:
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35437
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Куда конкретно надо вставить sql запрос в конфиг Exim?

Непрочитанное сообщение Alex Keda » 2009-06-24 23:37:56

а я бы в файл записал...
благо вместо списка в конфиге можно указать полный путь к файлу.
Убей их всех! Бог потом рассортирует...