Как сделать так, чтобы при создании емаилов с одинаковыми "login" (например :
info@domen1.ru и
info@domen2.ru) почта создавалась : ходила и отправлялась без проблем?
1. Создать базу, в которой эти пользователи будут храниться с доменами.
проверить можно так:
Код: Выделить всё
mysql> use eximbase
Database changed
mysql> select username from mailbox;
+-------------------+
| username |
+-------------------+
| dik@mydomain.ru |
+-------------------+
1 row in set (0.01 sec)
Чтобы exim мог отправить почту твоим пользователям, он должен знать о них:
Основной конфиг:
Код: Выделить всё
# Список пользователей
MYSQL_USERS = SELECT username FROM mailbox WHERE username='${quote_mysql:$local_part@$domain}' LIMIT 1
роутер для exim:
Код: Выделить всё
mysql_user:
driver = accept
condition = ${lookup mysql{MYSQL_USERS}{yes}{no}}
transport = dovecot_delivery
cannot_route_message = Unknown user
Т.е. exim пользователя в базе будет искать с доменом.
Вот exim нашёл нашего пользователя, теперь ему нужно положить письмо в папку? Как?
У меня через dovecot:
Код: Выделить всё
dovecot_delivery:
driver = pipe
command = /usr/local/libexec/dovecot/deliver -d $local_part@$domain
message_prefix=""
message_suffix=""
return_path_add
delivery_date_add
envelope_to_add
log_output
user = mailnull
group = mail
А вот куда будет класть нашу почту dovecot зависит от:
dovecot.conf
и того что окажется в переменной %h (home). А окажется там:
# Начальный каталог у нас /mnt/mail/ + то, что postfixadmin в столбце maildir хранит.
user_query = SELECT CONCAT("/mnt/mail/",maildir) AS home,26 AS uid,6 AS gid,CONCAT("*:storage=",quota,"B") AS quota_rule FROM mailbox WHERE username = '%u' AND active = '1' LIMIT 1
%u содержит имя пользователя с доменом в виде
user@domain.ru
Ну а для отправки используется аутентификация вида
user@domain.ru,
user@domain2.ru и т.п. ссылка есть выше.
P.S. У меня все домены являются алиасами основного и при получении письма на
admin@domain5.ru оно попадает к
admin@domain1.ru