Я хочу заменить старую настройку почтового сервера на postfix+dovecot. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что в старой системе имена пользователей отличались от адреса электронной почты пользователя. Например:

  • Адрес электронной почты: foo@example.com
  • Имя пользователя: foo-example.com

Я настроил postfix так, чтобы он передавал письма в dovecot с помощью следующей команды (master.cf):

dovecot      unix   -        n      n       -       -   pipe
  flags=DRhu user=mail-data:mail-data argv=/usr/lib/dovecot/dovecot-lda -a $(recipient)

Когда dovecot теперь получает электронное письмо от postfix, он регистрируется

dovecot: lda(mail-data): Error: User initialization failed: Namespace 'INBOX.': Home directory not set for user. Can't expand ~/ for mail root dir in: ~/Maildir
dovecot: lda: Fatal: Invalid user settings. Refer to server log for more information.

Я думаю, что dovecot не знает, что имя пользователя не является адресом электронной почты, но как я могу сказать ему?

Кроме того, здесь у нас есть альтернативные адреса, поэтому, например, может быть адрес электронной почты bar@example.com принадлежащий foo-example.com , у которого foo@example.com качестве основного адреса.

1 ответ1

0

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

dovecot      unix   -        n      n       -       -   pipe
  flags=DRhu user=mail-data:mail-data argv=/usr/lib/dovecot/dovecot-lda
  -f ${sender} -d ${user}@${nexthop} -m ${extension}

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