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

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

Соответствующий отрывок из main.cf:

myorigin = /etc/mailname
mydestination = domain1.com, domain2.com, localhost.localdomain, localhost.localdomain, localhost
home_mailbox = Maildir/
maildrop_destination_recipient_limit = 1
mailbox_command = /usr/bin/maildrop -d ${USER}

virtual_mailbox_domains = domain3.com domain4.com
virtual_mailbox_base = /var/mail
virtual_mailbox_maps = hash:/etc/postfix/virtual/maps
virtual_alias_maps = hash:/etc/postfix/virtual/aliases
virtual_minimum_uid = 1000
virtual_uid_maps = static:vmail
virtual_gid_maps = static:vmail
virtual_transport = maildrop

Как вы уже догадались, master.cf содержит транспорт maildrop:

maildrop  unix  -       n       n       -       -       pipe
  flags=ODRhu user=vmail:vmail argv=/usr/bin/maildrop -w 90 
  -d ${user}@${nexthop}
  ${extension} ${recipient} ${user} ${nexthop}

Теперь моя проблема заключается в том, что только domain1 успешно принимает запросы пользователей. Если я отправляю электронное письмо на адрес user@domain2.com, maildrop жалуется:

Ошибка s_connect(): нет такого файла или каталога /usr /bin /maildrop: Невозможно открыть почтовый ящик.

и письма на domain3/domain4 жалуются:

Ошибка s_connect(): такой файл или каталог не указан Неправильный пользователь.

Неудивительно, что /etc /mailname == domain1.com.

Я считаю, что частью моей проблемы могут быть конфигурации master.cf и /etc /maildroprc, поэтому у меня два вопроса:

  1. Есть ли способ настроить их так, чтобы они хорошо играли с моей несколько запутанной установкой?
  2. Является ли maildrop инструментом для этого, или есть лучший MTA, который явно поддерживает этот тип макета (и если да, то как мне его использовать)?

И, наконец, в качестве отступления, если этот вопрос лучше для serverfault/unix/ubuntu, не стесняйтесь перенести его туда.

1 ответ1

0

[часть виртуальных доменов]

Замените -d ${user}@${nexthop} на -d ${user}@${domain} в master.cf как рекомендуется в Postfix + Maildrop Howto

Как я понимаю, в вашей конфигурации ${nexthop} - пустая строка, поэтому maildrop получает user@

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .