我想使用 postfix 和 dovecot 设置一个邮件服务器,使用 maildir 格式存储邮件,并且我不希望这些文件中的任何一个进入用户的主目录。无论我在哪里搜索如何让 postfix 使用 maildir,他们只是说设置
home_mailbox = Maildir/
但这会将邮件放在主主目录中。
dovecot 可以让你指定任何路径,并且还提供了 %u 来自定义它,所以我将其设置为
mail_location = maildir:/var/mail/users/%u/:INBOX=/var/mail/users/%u/INBOX
我并不介意移动 INBOX,只要它不在 /home 中,但我找不到任何方法可以做到这一点。我不想为虚拟用户、procmail 或任何东西烦恼。
答案1
由于您已经配置了 Dovecot,解决您的问题最简单的方法是使用 Dovecot 的 deliver 作为邮件传递代理 (MDA)。
可以通过将此行添加到 main.cf 来完成(路径可能因发行版而异,在 Debian 上它是/usr/lib/dovecot/dovecot-lda
):
mailbox_command = /usr/libexec/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT"
如果您有更大规模的安装并且想要使用虚拟用户,您必须在 master.cf 中相应地设置服务,例如:
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/local/libexec/dovecot/dovecot-lda -f ${sender} -d ${recipient}
当然,如果您没有仔细制定自己的配置,就不应该使用它们。
您可以在这里调查更多信息: