我想用 postfix+dovecot 替换旧的邮件服务器设置。我现在面临的问题是,旧系统的用户名与用户的电子邮件地址不同。例如:
- 电子邮件地址:
[email protected]
- 用户名:
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 不知道用户名不是电子邮件地址,但我该怎么告诉他呢?
此外,这里我们还有备用地址,例如,可能有一个电子邮件地址[email protected]
属于拥有主要地址的foo-example.com
人。[email protected]
答案1
花了很长时间才发现这一点。master.cf
现在,dovecot 中的以下配置可以接受我的邮件:
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}