В дальнейшем предполагается, что виртуальные почтовые ящики расположены в директориях вида: /var/virtmail/domainname/username и принадлежат пользователю virtmail
В файле master.cf описываем транспорт procmail (все - в одну строку):
procmail unix - n n - - pipe flags=RO user=virtmail argv=/usr/bin/procmail -t -o SENDER=${sender} -m USER=${user} DOMAIN=${domain} /etc/procmailrc
включаем этот транспорт для виртуальных пользователей в main.cf:
virtual_transport = procmail
procmail_destination_recipient_limit = 1
Последняя опция означает, что письмо, адресованное нескольким получателям, будет "превращаться" во много писем - каждое с одним получателем. Иначе procmail не вполне правильно разбирается с такими множественными письмами.
Теперь самое интересное - что писать в /etc/procmailrc:
SHELL=/bin/sh
PATH=/bin:/usr/bin
MAILDR=/var/virtmail/${DOMAIN}/${USER}/
# на всякий случай создадим эту папку
DUMMY=`test -d $MAILDR | mkdir -m 700 $MAILDR`
# тут какие-то правила, ради которых и прикручивается procmail
# ...
# и последнее правило - куда класть почту по умолчанию:
:0:
${MAILDR}
По ходу экспериментов было замечено, что хранение имени почтовой директории в "стандартной" переменной MAILDIR приводило к необъяснимому поведению при вызове внешней команды - потому было выбрано "усеченное" имя.
1 комментарий:
Отправить комментарий