dnl dnl Доставка в cyrus-imapd maildir dnl dnl путь к mbpath (используется для проверки наличия пользователя): dnl define(`confCYRUS_MBPATH_PATH', `/usr/lib/cyrus-imapd/mbpath')dnl dnl define(`confCYRUS_MBPATH_PATH', `/usr/local/cyrus/bin/mbpath')dnl dnl dnl путь к LMTP сокету: dnl define(`confCYRUS_LMTP_SOCKET', `/var/lib/imap/socket/lmtp')dnl dnl define(`confCYRUS_LMTP_SOCKET', `/var/imap/socket/lmtp')dnl dnl dnl пользователь, от имени которого выполняется cyrus-imapd: dnl define(`confCYRUS_USER', `cyrus')dnl dnl dnl максимальное количество адресов, письма которым могут быть доставлены вместе dnl за один запуск транспорта: dnl define(`confCYRUS_BATCH_MAX', `20')dnl dnl dnl список доменов, почту которых нужно доставлять cyrus-imapd, dnl указывается в файле domains-cyrus dnl dnl в файле skip_cyrus_check перечисляются адреса получателей, для которых dnl нет необходимости проводить проверку получателя dnl dnl список указывается в виде: dnl domain : addr1 : addr2 : addr3 dnl пример: dnl zuper.domain.com : user : info : admin dnl dnl для обеспечения проверки наличия пользвоателя cyrus-imapd dnl нужно выполнить следующие действия: dnl # смену группы владельца mbpath (прежняя группа /usr/local/cyrus/bin/mbpath - wheel) dnl chgrp mail /usr/local/cyrus/bin/mbpath dnl # установку бита suid dnl chmod g+s /usr/local/cyrus/bin/mbpath dnl # смену прав группы на файл mailboxes.db (прежние права на /var/imap/mailboxes.db - 600) dnl chmod g+rw /var/imap/mailboxes.db dnl эти действия выполняются при выполнении gmake install в каталогах m4 или site dnl ifelse(SECTION, `MAIN', `dnl domainlist cyrus_domains = lsearch;CONFDIR/domains-cyrus define(`DNSLOOKUP_DOMAINS', DNSLOOKUP_DOMAINS` : ! +cyrus_domains')dnl ') ifelse(SECTION, `ACL_CHECK_RCPT', `dnl # Проверка существования получетеля из домена cyrus-imapd deny domains = +cyrus_domains ! recipients = @@wildlsearch;CONFDIR/skip_cyrus_check message = Unrouteable address ! verify = recipient/callout ') ifelse(SECTION, `ACL_CHECK_RCPT_BOTTOM', `dnl # Прием почты для получателей из домена cyrus-imapd accept domains = +cyrus_domains endpass ') ifelse(SECTION, `ROUTERS', `dnl cyrus_lmtp_router: # debug_print = "R: cyrus_lmtp for $local_part@$domain" driver = accept domains = +cyrus_domains local_parts = ! root user = cyrus require_files = confCYRUS_MBPATH_PATH condition = ${run {confCYRUS_MBPATH_PATH -q -s user.${lc:$local_part}}{1}{0}} transport = cyrus_lmtp_transport cannot_route_message = Cyrus delivery failed ') ifelse(SECTION, `TRANSPORTS', `dnl # delivery to Cyrus by LMTP cyrus_lmtp_transport: driver = lmtp socket = confCYRUS_LMTP_SOCKET transport_filter = /usr/bin/tr -d \\000 batch_max = confCYRUS_BATCH_MAX user = confCYRUS_USER ')