目前,我对使用 dovecot 的公共邮箱的理解存在问题。当前运行的是后缀和 dovecot(也与 dovecot 的 sasl)。每当一封电子邮件到达我的服务器时,都会完成一个或多个 userdb-lookups(针对我的 ldap),如果目标地址存在,则创建邮箱(位置取决于 ldap 信息)并传递邮件。美好的。
我现在要设置的是,如果电子邮件的目标地址(例如 [email protected])不对应于正常的帐户,而是对应于我的 ldap 中的一个组(例如 info),这邮箱应该创建为公共邮箱,然后可以订阅(我知道我仍然需要设置 ACL;但是我在创建后立即编写了一个工作 dovecot 插件来执行此操作)。
在浏览了 dovecot 的文档后,我最终得到了这个配置:
namespace {
type = private
separator = /
#prefix =
inbox = yes
#subscriptions = yes
}
namespace {
type = public
separator = /
prefix = groups/
location = maildir:/var/vmail/%d/groups/%n/mail:LAYOUT=fs
subscriptions = no
list = children
}
起作用的是(对应于来自 ldap 的组帐户的家庭和邮件位置)邮箱是在 /var/vmail/example.com/groups/info 下创建的,不幸的是,这个邮箱似乎是在私有命名空间下创建的,所以很明显 dovecot 并不关心我的文件结构。
您能否向我解释一下,dovecot 使用哪些其他参数来确定邮箱是私人邮箱还是公共邮箱?除了典型的文件夹外,邮件文件夹中还有 dovecot-acl-list 文件,但我怀疑这可能是它;或者是吗?
此外:您知道 dovecot 是否能够自动创建公共邮箱?
非常感谢您!
好吧,我自己做的。反复试验使我想到了这一点:
我的公共邮箱现在将它们的邮件文件夹直接放在例如 /var/vmail/example.com/groups/info/ 下,但是嘿,至少现在可以使用;)
我误解的原因是,我的插件总是报告,盒子的命名空间是私有的。这是因为当使用 dovecot 作为 LDA(触发邮箱的自动创建)时,您没有“普通用户”上下文,可以将此命名空间标识为公共的。
无论如何感谢所有读过这篇文章的人!