Назад | Перейти на главную страницу

Использование Dovecot LMTP с виртуальными пользователями (с поиском в базе данных для сопоставления адреса с почтовым ящиком)

Я хотел бы использовать dovecot с виртуальными пользователями на основе sql (что уже отлично работает в моей текущей настройке exim + courier-imapd).

В моей настройке есть "почтовые ящики", у которых есть mailboxname @ domain и пароль. Кроме того, существуют «адреса», которые сопоставляют фактические адреса электронной почты с почтовыми ящиками.
При входе через IMAP или POP3 пользователи используют имя и пароль почтового ящика. Поэтому я просто проверяю таблицу почтовых ящиков в запросе dovecot passdb, который отлично работает.

Однако запрос userdb представляет собой своего рода проблему: когда пользователь входит в систему, доступная информация, очевидно, является mailboxname @ domain имя пользователя, которое затем можно использовать для создания пути к почтовому ящику (даже возможно с static userdb).
Однако когда электронное письмо доставляется через LMTP, мне нужно запросить адреса таблица для получения почтового ящика назначения - поэтому в этом случае мне понадобится другой запрос.


Одним из возможных решений, вероятно, было бы использование некоторых условных операторов на уровне БД, которые выполняют разные запросы в зависимости от %s переменная (название службы, например lmtp) - но, очевидно, это был бы огромный беспорядок.

Другое решение может заключаться в простом использовании LDA вместо LMTP, поскольку я могу выполнить поиск имени почтового ящика в exim и просто передать его программе LDA, но использование LDA включает не только запуск дополнительного процесса (не то чтобы это важно для моих маломощный сервер, но в любом случае) и, вероятно, худшая обработка ошибок, поскольку LDA может возвращать exim только коды статуса выхода, в отличие от LMTP, который, вероятно, возвращает подробное сообщение об ошибке.

Поэтому я хотел бы знать, есть ли способ выполнять разные запросы userdb в зависимости от того, где они используются - при доставке или при доступе к почтовому ящику.

Dovecot LMTP полностью не связан с сервером IMAP (и его сопутствующим логином и userdb).

Однако у ttbomk нет возможности входить / доставлять почту с использованием одного пользователя и принимать почту с использованием другого (или псевдонима).

В postfix это тривиально решить, добавив виртуальную карту псевдонимов, содержащую адреса получателей и пользователей LMTP; это не то, что LDA должно делать.