Postfix + Maildrop Howto


Перевод: Доморадов Алексей. Все права защищены. Copyright © 2007.

Примечание: При размещении данного материала у себя на сайте, просьба указывать ссылку на оригинальный сайт - www.sys-adm.org.ua.

Все замечания и предложения по переводу документации на русский язык, а также найденные ошибки и опечатки присылайте на мой электронный адрес.

Благодарности: Спасибо всем, кто помогал мне переводить эту документацию.

Особенное спасибо: Галинурову Кириллу и Грозаку Михаилу aka RedStalker_Mike.

Special thanks to: Igor Luzanov aka ISKATEL.


Введение

Этот документ обсуждает различные опции подключения агента доставки maildrop к Postfix:

Прямая доставка без локального агента доставки

Postfix может быть настроен для доставки почты непосредственно maildrop, без использования локального агента доставки в качестве посредника. Это означает, что вы не сможете использовать локальные псевдонимы или обработку файлов $HOME/.forward. Обычно, такой способ доставки реализуют для т.н. hosted domains получатели которых не имеют системных домашних директорий.

Следующий пример показывает как использовать maildrop для двух доменов: domain.org.ru и domain.com.ua.

 1 /etc/postfix/main.cf:
 2     maildrop_destination_recipient_limit = 1
 3     virtual_mailbox_domains = domain.org.ru domain.com.ua
 4     virtual_transport = maildrop
 5     virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox
 6     virtual_alias_maps = hash:/etc/postfix/virtual_alias
 7
 8 /etc/postfix/virtual_mailbox:
 9     user1@domain.org.ru        ...текст здесь не имеет значения...
10     user2@domain.org.ru        ...текст здесь не имеет значения...
11     user3@domain.com.ua        ...текст здесь не имеет значения...
12
13 /etc/postfix/virtual_alias:
14     postmaster@domain.org.ru           postmaster
15     postmaster@domain.com.ua           postmaster

Используемый далее идентификатор пользователя vmail - это пользователь, от имени которого должен запуcкаться maildrop. Он должен быть владельцем виртуальных почтовых ящиков, если у них у всех один и тот же владелец. Если maildrop использует бит suid (смотри документацию maildrop), то во время исполнения владелец процесса maildrop изменится на соответствующего владельца для доставки почты.

Примечание: Не используйте пользователя postfix в качестве пользователя maildrop.

/etc/postfix/master.cf:
    maildrop  unix  -       n       n       -       -       pipe
      flags=ODRhu user=vmail argv=/path/to/maildrop -d ${recipient}

Руководство пользователя pipe(8) дает детальное описание вышеупомянутых аргументов командной строки.

Если вам нужна поддержка адрессов в стиле user+extension@domain, используйте следующее:

/etc/postfix/master.cf:
    maildrop  unix  -       n       n       -       -       pipe
      flags=ODRhu user=vmail argv=/path/to/maildrop
      -d ${user}@${nexthop} ${extension} ${recipient} ${user} ${nexthop}

Почта доставляется ${user}@${nexthop} (соотвествующий ключ для просмотра maildrop userdb). ${extension} и другие компоненты адреса доступны через правила maildrop как $1, $2, $3, ... и могут быть опущены из master.cf или игнорированы maildrop в случае ненадобности.

Косвенная доставка через локального агента доставки

Postfix может быть настроен для доставки почты maildrop через локального агента доставки. Это немного менее эффективно, чем "прямая" доставка обсуждаемая выше, но дает вам преимущества использования локальных псевдонимов и обработку файла $HOME/.forward. Обычно этот способ используется для доменов, перечисленных в mydestination и пользователей, у которых есть системные учетные записи UNIX.

Для настройки доставки maildrop для всех системных учетных записей UNIX:

/etc/postfix/main.cf:
    mailbox_command = /path/to/maildrop -d ${USER}

Примечание: ${USER} указывается в верхнем регистре.

Для включения агента доставки maildrop только для определенных пользователей, вы можете использовать свойство mailbox_command_maps локального агента доставки Postfix:

/etc/postfix/main.cf:
    mailbox_command_maps = hash:/etc/postfix/mailbox_commands

/etc/postfix/mailbox_commands:
    you    /path/to/maildrop -d ${USER}

Доставка maildrop для определенных пользователей также возможна благодоря использованию файла $HOME/.forward из домашнего каталога пользователя:

/home/you/.forward:
    "|/path/to/maildrop -d ${USER}"

Дата последнего обновления: 30.10.2008. Postfix version: 2.3.4.