更改maildir的位置

usr*_*ΛΩΝ 5 email postfix opensuse

标准 Linux 安装提供了一个 maildir in /var/spool/mail/$user(实际上是一个包含所有电子邮件的文件,而不是“邮件目录”),由/var/mail/.

我将在我的安装中设置托管电子邮件,并且我想将邮件存储在一个单独的分区中,该分区可以附加到文件系统以防服务器重新映像(我已经对诸如 的服务实施了这种灾难恢复措施mysql) . 单独的文件系统是/home.

所以我希望将系统邮件发送到/home/$user/.mail[/]/括号中的最后一个,因为我不确定是否将邮件包含在目录中)。

目前,我通过将所有电子邮件重定向到我 ISP 的电子邮件来为我自己的域运行电子邮件,这不会永远存在(如果我更改 ISP,我必须将所有电子邮件迁移到新的 ISP),因此 Postfix 被指示将所有电子邮件重定向*@example.orguser@example.com.

我正在考虑Dovecot用作电子邮件服务器,因为它完全支持 SSL。

首先,在配置 Dovecot 之前,我如何告诉系统将邮件投递到与 /var/spool 不同的目录中?请注意,root当作业未写入时,cron 会定期发送电子邮件/dev/null,因此配置必须是系统范围的。

HBr*_*ijn 9

建议使用Maildir目录格式而不是旧的 mbox 格式来存储电子邮件。Dovecot 很好地支持 Maildir 格式,并且有一些优点(没有锁定,允许简单的增量备份和恢复单个消息。)所以你需要分配一个目录。

将邮件存储在~/Maildir用户主目录中的目录中是惯例,但没有什么可以阻止您使用另一个(隐藏)目录。

您可以使用 Postfix home_mailbox设置配置 Maildir 格式及其位置:

sudo postconf -e "home_mailbox = Maildir/"
Run Code Online (Sandbox Code Playgroud)

这也是为大多数 Dovecot 包配置的默认位置。

另一种方法是将 Postfix 配置为将本地邮件传递留给 Dovecot LDALMTP

然后配置 Dovecot 以在正确的位置查找邮件:

mail_location = maildir:~/Maildir
Run Code Online (Sandbox Code Playgroud)

如果邮件用户实际上拥有本地用户帐户(而不是仅作为虚拟邮件用户存在),您可能希望/etc/skell为新用户填充Maildir 和欢迎消息。