dnl dnl Доставка в виртуальные maildir'ы в /var/vmail/$domain dnl dnl локальная доставка (список) dnl MBOX - доставка в mailbox'ы в /var/mail dnl с MBOX можно указывать через пробел: dnl FILTERS - использование .forward в качестве фильтров dnl PROCMAIL - использование .procmailrc в качестве фильтров dnl MDIR_USER - доставка в maildir'ы в $home/Maildir (еще не работает) dnl с MDIR_USER можно указывать через пробел: dnl FILTERS - использование .forward в качестве фильтров dnl PROCMAIL - использование .procmailrc в качестве фильтров dnl MDIR_VIRTUAL - доставка в виртуальные maildir'ы в /var/vmail/$domain dnl с MDIR_USER и MDIR_VIRTUAL можно указывать через пробел: dnl FILTERS - использование .forward в качестве фильтров dnl define(`confDELIVERY_TO', `MDIR_VIRTUAL FILTERS')dnl dnl dnl dnl при наличии MDIR_VIRTUAL в confDELIVERY_TO: dnl dnl корневой каталог Maildir'ов виртуальных доменов dnl define(`confVIRT_MDIR_ROOT', `/var/vmail')dnl dnl dnl пользователь, от имени которого доставляется почта в virtual maildir'ы dnl define(`confVIRT_MDIR_USER', `mailnull')dnl dnl dnl место хранение списка пользователей dnl SINGLE_FILE - хранение списка пользователей в файле типа passwd dnl DOMAINS_FILES - хранение списка пользователей в отдельных файлах для каждого домена dnl MYSQL - хранение списка пользователей в БД MySQL dnl define(`confVIRT_MDIR_USERLIST', `DOMAINS_FILES')dnl dnl define(`confVIRT_MDIR_USERLIST_SINGLE', `/usr/local/etc/passwd.imap')dnl dnl define(`confVIRT_MDIR_USERLIST_DOMAINS', `CONFDIR/virt_domains')dnl dnl define(`confVIRT_MDIR_MYSQL', `SELECT id, maildir, home FROM passwd WHERE id="${quote_mysql:$local_part@$domain}"')dnl dnl dnl место хранения алиасов: dnl SINGLE_FILE - хранение алиасов в текстовом файле virt_aliases dnl SINGLE_DBM - хранение алиасов в DBM файле virt_aliases.db dnl DOMAINS_FILES - хранение алиасов в отдельных текстовых файлах для каждого домена dnl DOMAINS_DBM - хранение алиасов в отдельных DBM файлах для каждого домена dnl MYSQL - хранение алиасов в БД MySQL (только при confVIRT_MDIR_USERLIST==MYSQL) dnl define(`confVIRT_MDIR_ALIASES', `DOMAINS_DBM')dnl dnl define(`confVIRT_MDIR_ALIASES_SINGLE', `CONFDIR/virt_aliases')dnl dnl define(`confVIRT_MDIR_ALIASES_DOMAINS', `CONFDIR/virt_domains')dnl dnl define(`confVIRT_MDIR_MYSQL_ALIAS', `SELECT address FROM aliases WHERE alias="${quote_mysql:$local_part@$domain}"')dnl dnl ifelse(SECTION, `ROUTERS', `dnl # delivery to virtual maildirs virtual_aliases: driver = redirect ifdef(`confVIRT_MDIR_ALIASES', `ifelse(confVIRT_MDIR_ALIASES, `SINGLE_FILE', `dnl domains = +local_domains data = ${lookup{$local_part@$domain}\ lsearch{confVIRT_MDIR_ALIASES_SINGLE}{$value}{\ ${lookup{$local_part}\ lsearch{confVIRT_MDIR_ALIASES_SINGLE}{$value}{}}\ }} ')') ifdef(`confVIRT_MDIR_ALIASES', `ifelse(confVIRT_MDIR_ALIASES, `SINGLE_DBM', `dnl domains = +local_domains data = ${lookup{$local_part@$domain}\ dbm{confVIRT_MDIR_ALIASES_SINGLE.db}{$value}{\ ${lookup{$local_part}\ dbm{confVIRT_MDIR_ALIASES_SINGLE.db}{$value}{}}\ }} ')') ifdef(`confVIRT_MDIR_ALIASES', `ifelse(confVIRT_MDIR_ALIASES, `DOMAINS_FILES', `dnl domains = dsearch;confVIRT_MDIR_ALIASES_DOMAINS require_files = confVIRT_MDIR_ALIASES_DOMAINS/${domain}.aliases data = ${lookup{$local_part}lsearch{confVIRT_MDIR_ALIASES_DOMAINS/${domain}.aliases}} ')') ifdef(`confVIRT_MDIR_ALIASES', `ifelse(confVIRT_MDIR_ALIASES, `DOMAINS_DBM', `dnl domains = dsearch;confVIRT_MDIR_ALIASES_DOMAINS require_files = confVIRT_MDIR_ALIASES_DOMAINS/${domain}.aliases.db data = ${lookup{$local_part}dbm{confVIRT_MDIR_ALIASES_DOMAINS/${domain}.aliases.db}} ')') ifdef(`confVIRT_MDIR_ALIASES', `ifelse(confVIRT_MDIR_ALIASES, `MYSQL', `dnl domains = +local_domains data = ${lookup mysql{ \ confVIRT_MDIR_MYSQL_ALIAS \ }{$value}{}} ')') file_transport = address_file pipe_transport = address_pipe reply_transport = address_reply directory_transport = delivery_to_virt_domain_by_filter virtual_filters: driver = redirect ifdef(`confVIRT_MDIR_USERLIST', `ifelse(confVIRT_MDIR_USERLIST, `MYSQL', `dnl address_data = ${lookup mysql{ \ confVIRT_MDIR_MYSQL \ }{$value}{}} # require_files = ${extract{home}{$address_data}}/.forward condition = ${if exists{${extract{home}{$address_data}}/.forward}{yes}{no}} file = ${extract{home}{$address_data}}/.forward ', ` # require_files = `'confVIRT_MDIR_ROOT`'/$domain/$local_part/.forward condition = ${if exists{confVIRT_MDIR_ROOT/$domain/$local_part/.forward}{yes}{no}} file = `'confVIRT_MDIR_ROOT`'/$domain/$local_part/.forward ')') user = confVIRT_MDIR_USER group = mail file_transport = address_file pipe_transport = address_pipe reply_transport = address_reply directory_transport = delivery_to_virt_domain_by_filter # no_expn # check_ancestor ifelse_strstr(confDELIVERY_TO, `FILTERS', `dnl allow_filter ') include(confDELIVERIES_DIR`/backup_incoming.m4')dnl virtual_domains: driver = accept domains = +local_domains ifdef(`confVIRT_MDIR_USERLIST', `ifelse(confVIRT_MDIR_USERLIST, `MYSQL', `dnl address_data = ${lookup mysql{ \ confVIRT_MDIR_MYSQL \ }{$value}{}} ')') ifdef(`confVIRT_MDIR_USERLIST', `ifelse(confVIRT_MDIR_USERLIST, `DOMAINS_FILES', `dnl require_files = confVIRT_MDIR_USERLIST_DOMAINS/${domain} local_parts = lsearch;confVIRT_MDIR_USERLIST_DOMAINS/$domain ')') ifdef(`confVIRT_MDIR_USERLIST', `ifelse(confVIRT_MDIR_USERLIST, `SINGLE_FILE', `dnl condition = ${lookup {$local_part@$domain}lsearch{confVIRT_MDIR_USERLIST_SINGLE}{yes}{no}} ')') ifdef(`confHEADERS_REMOVE_VIRTUAL_DOMAINS', `headers_remove = confHEADERS_REMOVE_VIRTUAL_DOMAINS ')dnl transport = delivery_to_virt_domain ') dnl ifelse(SECTION, `TRANSPORTS', `dnl delivery_to_virt_domain: driver = appendfile ifdef(`confVIRT_MDIR_USERLIST', `ifelse(confVIRT_MDIR_USERLIST, `MYSQL', `dnl directory = ${extract{maildir}{$address_data}} ', `dnl directory = confVIRT_MDIR_ROOT/$domain/$local_part ')') delivery_date_add envelope_to_add return_path_add group = mail user = confVIRT_MDIR_USER maildir_format = true create_directory = true directory_mode = confVIRT_MDIR_DIR_MODE mode = confVIRT_MDIR_FILE_MODE delivery_to_virt_domain_by_filter: driver = appendfile ifdef(`confVIRT_MDIR_USERLIST', `ifelse(confVIRT_MDIR_USERLIST, `MYSQL', `dnl directory = ${extract{maildir}{$address_data}} ', `dnl directory = confVIRT_MDIR_ROOT/$domain/$local_part/$address_file ')') delivery_date_add envelope_to_add return_path_add group = mail user = confVIRT_MDIR_USER maildir_format = true create_directory = true directory_mode = confVIRT_MDIR_DIR_MODE mode = confVIRT_MDIR_FILE_MODE ')