EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
bobot
- ст. прапорщик
- Сообщения: 589
- Зарегистрирован: 2008-05-28 20:03:17
Непрочитанное сообщение
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}}
Вот где именно его вставлять надо?????
bobot
-
Хостинг HostFood.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
- Откуда: Украина, Россия
Непрочитанное сообщение
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!!!
Laa
-
bobot
- ст. прапорщик
- Сообщения: 589
- Зарегистрирован: 2008-05-28 20:03:17
Непрочитанное сообщение
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}'}}
Так какой надо править?
bobot
-
Laa
- ст. лейтенант
- Сообщения: 1032
- Зарегистрирован: 2008-02-21 18:25:33
- Откуда: Украина, Россия
Непрочитанное сообщение
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 зазря. На большой нагрузке каждый лишний запрос становится вредным.
Да и домены, если у вас не изменяются раз в час, то лучше списком внутри конфига прописать и не трогать, чем каждый раз практически статическую информацию из базы выдергивать.

exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!
Laa
-
Alex Keda
- стреляли...
- Сообщения: 35437
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2009-06-24 23:37:56
а я бы в файл записал...
благо вместо списка в конфиге можно указать полный путь к файлу.
Убей их всех! Бог потом рассортирует...
Alex Keda