目前,我对 dovecot 的公共邮箱的理解存在问题。当前正在运行的是 postfix 和 dovecot(也使用 dovecot 的 sasl)。每当电子邮件到达我的服务器时,都会进行一次或多次 userdb 查找(针对我的 ldap),如果目标地址存在,则会创建邮箱(位置取决于 ldap 信息)并发送邮件。很好。
我现在尝试设置的是,如果电子邮件的目标地址(例如[电子邮件保护])不对应于普通帐户,而是我的 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 是否能够自动创建公共邮箱吗?
提前非常感谢您!
答案1
好吧,我自己做了。反复试验让我得到了这个:
namespace {
type = public
separator = /
prefix = groups/
location = maildir:/var/vmail/%d/groups:LAYOUT=fs
subscriptions = no
list = children
}
我的公共邮箱现在将其邮件文件夹直接放在例如 /var/vmail/example.com/groups/info/ 下,但是,至少它现在可以工作了;)
我误解的原因是我的插件总是报告邮箱的命名空间是私有的。这是因为当使用 dovecot 作为 LDA(触发邮箱的自动创建)时,您没有“普通用户”上下文,无法将此命名空间标识为公共的。
无论如何,感谢所有阅读这篇文章的人!