[exim-conf] переделки роутеров и транспортов в случае доставки в виртуальные мейлдиры

Victor Ustugov victor на corvax.kiev.ua
Пт Янв 6 14:55:53 EET 2012


приветствую

тут у клиента встала задача организации сортировки почты в виртуальных
мейлдирах на этапе доставки. при этом сортировкой должны управлять сами
пользователи.

уже было принято решение использовать roundcube в качестве webmail, в
состав roundcube входит плагин managesieve, позволяющий формировать
правила для sieve скриптов и аплоадить их на сервер.

в качестве IMAP сервера у клиента используется dovecot.

доставку в виртуальные мейлдиры пришлось сменить с нативной доставки
средствами exim на доставку с использованием LDA из состава dovecot -
/usr/local/libexec/dovecot/deliver, который на самом деле является
/usr/local/libexec/dovecot/dovecot-lda

при этом может возникнуть необходимость у некоторых почтовых
пользователей использовать пользовательские фильтры .forward. в основном
это касается инженерного состава компании.

исходя из этого была переделана схема описания роутеров и транспортов в
deliveries/maildir_virtual.m4 и deliveries/virtual_aliases.m4

после этого стало возможным на одной почтовой системе при доставке в
виртуальные мейлдиры использовать procmail, пользовательские фильтры
exim и фильтры sieve. т. е. в confDELIVERY_TO теперь можно одновременно
с MDIR_VIRTUAL указывать FILTERS и PIPE или PIPE-LMTP. ну и в любом
случае с MDIR_VIRTUAL можно как и раньше указывать PROCMAIL.

схема выбора способа доставки письма в виртуальный мейлдир:
- если в мейлдире присутствует файл .procmailrc, производится доставка с
помощью procmail
- если в мейлдире присутствует файл .forward, производится доставка
нативными средствами exim с учетом правил из пользовательского фильтра
- при указании PIPE или PIPE-LMTP доставка производится средства
внешнего LDA, возможно с использованием sieve скриптов
- в противном случае доставка в виртуальный мейлдир производится
нативными средствами exim.


но глядя на мелкие проблемы при настроке доставки с помощью dovecot-lda
(права на auth-userdb, права на логи dovecot'а, отрывание у dovecot-lda
желания самостоятельно выполнять лукапы для проверки существования
получателей, что в случае использования Active Directory в качестве
места хранения почтовых учетных записей невозможно) есть мнение заменить
доставку с помощью LDA на доставку по LMTP.

это будет реализовано в ближайшем будущем в дополнение к доставки по
LMTP средствами mailertable.

в вышеописанной схеме выбора способа доставки письма в виртуальный
мейлдир доставка по LMTP может использоваться вместо доставка с помощью
внешнего LDA.

по сути значения PIPE, PIPE-LMTP, LMTP и LMTPUNIX переменной
confDELIVERY_TO будут конкурирующими, т. е. из них одновременно сможет
быть использовано только одно значение. если ни одно из этих значений не
будет указано в значении переменной confDELIVERY_TO, то в качестве
основного способа доставки будет использована нативная доставка
средствами exim.

значения PROCMAIL и FILTERS являются дополнительными и они могут быть
использованы совместно с любым из вышеуказанных значений.


пока же тестируя доставку по LMTP средствами mailertable я обнаружил,
что на FreeBSD в /etc/services порт 24 не описан как lmtp. а в
deliveries/mailertable.m4 в описании транспорта remote_lmtp у меня порт
был описан в виде:

		port	= lmtp

в набор переменных добавлена переменная confLMTP_DEFAULT_PORT, которая
по умолчанию равна lmtp, и в которой можно указать нужный номер LMTP порта.

соответственно опиание порта в транспорте remote_lmtp сменено на

		port	= confLMTP_DEFAULT_PORT

эта же переменная confLMTP_DEFAULT_PORT будет использована при доставке
по LMTP почты в виртуальные мелдиры локальных доменов при указании LMTP
в confDELIVERY_TO


-- 
Best wishes Victor Ustugov   mailto:victor на corvax.kiev.ua
public GnuPG/PGP key:        http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 77186900, 371808614 nic-handle: CRV-UANIC




Подробная информация о списке рассылки exim-conf