postfix+dovecot 将 maildir 格式的邮件存储在 /var/mail 中

zac*_*caj 4 postfix dovecot maildir

我想使用 postfix 和 dovecot 设置一个邮件服务器,使用 maildir 格式存储邮件,并且我不希望这些文件中的任何一个进入用户的主目录。无论我在哪里搜索如何使 postfix 使用 maildir,他们只是说要设置

home_mailbox = Maildir/
Run Code Online (Sandbox Code Playgroud)

但这会将邮件放在主主目录中。

dovecot 很好地让你指定任何路径,还给你 %u 来自定义它,所以我把它设置为

mail_location = maildir:/var/mail/users/%u/:INBOX=/var/mail/users/%u/INBOX
Run Code Online (Sandbox Code Playgroud)

我真的不介意移动收件箱,只要它不在 /home 中,但我找不到任何方法来做到这一点。我不想打扰虚拟用户、procmail 或任何东西。

Mar*_*mer 6

由于您已经配置了 Dovecot,因此解决问题的最简单方法是使用来自 Dovecot 的传递作为邮件传递代理 (MDA)。

这可以通过将此行添加到 main.cf 来完成(路径可能因您的发行版而异,在 Debian 上是/usr/lib/dovecot/dovecot-lda):

mailbox_command = /usr/libexec/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT"
Run Code Online (Sandbox Code Playgroud)

如果你有一个更大规模的安装并且想要使用虚拟用户,你必须相应地在 master.cf 中设置一个服务,例如:

dovecot   unix  -       n       n       -       -       pipe
flags=DRhu user=vmail:vmail argv=/usr/local/libexec/dovecot/dovecot-lda -f ${sender} -d ${recipient}
Run Code Online (Sandbox Code Playgroud)

当然,您不应该在没有精心制作自己的配置的情况下使用它们。

可以在此处调查更多信息:

http://wiki2.dovecot.org/LDA/Postfix