我有一个生产邮件系统。初始设置由系统用户完成。每个域都有一个系统用户,最终发送到同一域的所有邮件都会发送到同一个帐户(然后根据该系统用户的 procmail 配置移动到特定文件夹)。Dovecot 负责处理 Maildirs 的 imap。Sendmail 负责 SMTP。
系统用户在主目录中有一个 procmail 配置,以及 Maildir 本身。因此系统用户的邮件位于 /home/{用户}/Maildir。Procmail 配置位于 /home/{用户}/。
我现在正在考虑切换到虚拟用户,以使其更易于扩展。
我修改了 dovecot 配置,使其基于密码文件使用虚拟用户。密码文件(userdb 和 passdb,以及每个虚拟用户的单独 ID)路径为 /home/{领域}/passwd(实际上,我最初想为所有域设置一个密码文件,但没有成功,但也许我可以稍后再考虑这个问题)。密码文件中的条目指向 /home/{领域}/,其中{用户}部分是指向系统用户主目录的符号链接(例如 /home/{用户}如果他有这样的条目)。它使我能够首先迁移 Dovecot 部分,然后再迁移 Sendmail/procmail 部分。
dovecot 设置运行良好。Sendmail 仍在向 /home/ 发送邮件{用户}位置,但由于符号链接,Dovecot 可以到达 Maildirs。
我现在正在考虑修改我的 sendmail 设置,以便通过 Dovecot 的 LDA 功能将邮件发送到这些虚拟用户的主目录,但我担心那时我的 procmail 设置会被破坏。
让 Sendmail 使用 Dovecot LDA 并继续处理 procmail 配置(或者这仍然是 sendmail 设置)的正确方法是什么?Sendmail 现在使用 virtusertable 将电子邮件发送到特定用户帐户(因此[电子邮件保护]域1用户;[电子邮件保护]domain1user,...)。不确定这是否相关。
我也欢迎您提出其他意见,因为我更希望有一个完整的了解,并且不破坏设置。在后期,Sendmail 可能会被 postfix 取代,但目前它正在做它应该做的事情,所以优先级不高。