我正在使用 CentOS 6.4/postfix/dovecot 构建一个新的电子邮件服务器。它需要支持主要是 XP 的客户端(Outlook Express、Thunderbird 等)。
我该如何设置home_mailbox
(postfix) 和mail_location
(dovecot) 参数来支持这些较旧的 IMAP 客户端?他们在哪里查找要显示的新邮件?
我home_mailbox = mbox
目前有,并且它正在将电子邮件放入 mbox 文件中(或看起来如此)。如何设置 dovecot 来查找新电子邮件?
答案1
您应该配置 Postfix 使用 Dovecot LMTP 或 Dovecot LDA 来发送电子邮件 - 因此 dovecot 会存储电子邮件,而 postfix 应该只验证 SMTP 传入流量并将电子邮件交给 Dovecot 进行存储。
mail_location
在 dovecot 中可以有许多不同的值,具体取决于您喜欢哪种类型的邮箱(mdbox、sdbox、maildir 等)。我建议使用 dbox(mdbox/sdbox),但您可以自行选择最适合您需求的邮箱。
Dovecot 的 wiki 上对所有内容都有很好的解释。请参阅http://wiki2.dovecot.org/LDA/Postfix和http://wiki2.dovecot.org/MailboxFormat/。
编辑:
1)您需要将 Postfix 配置为使用 SMTP 接受电子邮件,检查其中是否存在垃圾邮件等,并最终决定对给定的传入电子邮件使用哪种传输方式(延迟、拒绝、另一个 SMTP 服务器、本地传送等)
2)配置 dovecot 来监听 LMTP 连接,在 Gentoo 上它位于文件 conf.d/10-master.conf 中:
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
(在conf.d/20-lmtp.conf中您可以修改dovecot的LMTP协议,例如启用筛选过滤)
3) 无论您使用什么配置,Postfix 的电子邮件传输(应存储到 dovecot)应类似如下:
virtual_transport = lmtp:unix:$queue_directory/private/dovecot-lmtp
这会将电子邮件传输到 Dovecot 的 LMTP,然后 Dovecot 会根据 passdb / userdb 验证收件人并最终存储它。
这是 LMTP 方法,旧的 LDA 在 Dovecot 的配置中几乎相同,而在 Postfix 方面略有不同。
关于mail_location:
Dovecot 与本地客户端的数据库 userdb / passdb 一起工作;它可以有许多来源、纯文本文件、系统文件或来自 SQL 的用户。
userdb / passwd 都可以指示每个用户的 mail_location,或者可以为所有用户设置全局设置,例如:
mail_location = mdbox:~/mdbox
这意味着所有用户的电子邮件都应以 mdbox 格式存储到用户主目录中的“mdbox”目录。
用户的主页通过 mail_home 定义,例如
mail_home = /var/spool/mail/%d/%n (translates to /var/spool/mail/example.com/user)
或者
mail_home = /var/mail/%u (translates to /var/mail/[email protected])