>переписать SQL-запрос, чтобы он всегда возвращал нужное значение - либо пользователя либо
>имя общего ящика. Хм, запрос для dovecot переписал:
SELECT username AS user, maildir FROM mailbox WHERE username = '%u' AND active = '1'
UNION
SELECT username AS user, maildir FROM mailbox WHERE username = 'mail@domain.ru' AND active = '1' LIMIT 1
Запрос может не самый лучший, но отрабатывает нормально. Пытаюсь отправить почту на test@domain.ru В этом случае создаётся ящик test@domain.ru и почта направляется на него, вместо того чтобы доставить на mail@domain.ru. вот лог:
Jan 23 12:19:52 2413 dovecot: auth(default): master in: USER 1 test@domain.ru service=deliver
Jan 23 12:19:52 2413 dovecot: auth-worker(default): sql(test@domain.ru): SELECT username AS user, maildir, 1150 AS uid, 12 AS gid FROM mailbox WHERE username = 'test@domain.ru' AND active = '1' UNION SELECT username AS user, maildir, 1150 AS uid, 12 AS gid FROM mailbox WHERE username = 'mail@domain.ru' AND active = '1' LIMIT 1
Jan 23 12:19:52 2413 dovecot: auth-worker(default): auth(test@domain.ru): username changed test@domain.ru -> mail@domain.ru
Jan 23 12:19:52 2413 dovecot: auth(default): master out: USER 1 mail@domain.ru maildir=mail@domain.ru/ uid=1150 gid=12
Jan 23 12:19:52 2413 deliver(test@domain.ru): auth input: maildir=mail@domain.ru/
Jan 23 12:19:52 2413 deliver(test@domain.ru): auth input: uid=1150
Jan 23 12:19:52 2413 deliver(test@domain.ru): auth input: gid=12
Jan 23 12:19:52 2413 deliver(test@domain.ru): maildir: data=/var/vmail/test@domain.ru
Jan 23 12:19:52 2413 deliver(test@domain.ru): maildir++: root=/var/vmail/test@domain.ru, index=, control=, inbox=/var/vmail/test@domain.ru
Jan 23 12:19:53 2413 deliver(test@domain.ru): msgid=<5b3f3f050901230119x783441b9o811374275407c515@mail.gmail.com>: saved mail to INBOX
Jan 23 12:19:53 2413 postfix/pipe[17736]: 8EC8C792D57: to=<test@domain.ru>, relay=dovecot, delay=0.94, delays=0.6/0.01/0/0.34, dsn=2.0.0, status=sent (delivered via dovecot service)
Jan 23 12:19:53 2413 postfix/qmgr[4079]: 8EC8C792D57: removed