我刚刚在服务器上配置了电子邮件。Gentoo、Postfix、Dovecot、Amavisd、ClamAV 和 Spamassasin
我使用 LMTP 来传递虚拟邮件,效果很好。我为系统用户使用标准 postfix 传递方法 (mailbox_transport)。
但是因为我使用的是 spamassasin,所以我想将所有带有垃圾邮件标题的电子邮件移至垃圾邮件/目录。为此,我使用了 dovecot-sieve。
但现在我遇到了系统账户问题。由于这些账户不是随 dovecot 一起提供的,因此 sieve 无法移动它们。
我尝试将本地电子邮件传递到 dovecot(也使用 lmtp,但将 mailbox_transport 设置为与 virtual_transport 相同),但出现了下一个问题。我设置了两个 passdb 和两个 userdb,第一个使用 pam + passwd,第二个使用 passwd-file 和 static。
对于本地用户,使用整个用户名 + 域会导致 PAM 无法将本地用户与其自身匹配。如果我将变量 auth_username_format 更改为 %n(仅限用户),%d 会变为空,虚拟邮箱将停止工作。
如何将 lmtp 用于系统和虚拟邮箱?
这是我负责登录的 dovecot 部分:
passdb {
driver = passwd-file
args = username_format=%u /home/vmail/%d/passwd
skip = authenticated
}
userdb {
driver = static
args = uid=500 gid=500 home=/home/vmail/%d mail=maildir:~/%n
}
passdb {
args = imap
driver = pam
}
userdb {
driver = passwd
}