让mailman3与后缀和dovecot很好地发挥

我正在玩mailman3,并且发生了这个问题:mailman3,web界面以及hyperkitty已经使用mailman-bundler安装。 我已经将规定的后缀configuration添加到main.cf

 recipient_delimiter = + unknown_local_recipient_reject_code = 550 owner_request_special = no transport_maps = hash:/path/to/var/data/postfix_lmtp local_recipient_maps = hash:/path/to/var/data/postfix_lmtp relay_domains = hash:/path/to/var/data/postfix_domains 

列出的文件是世界可读的,所以不应该有一个权限问题。 我可以通过Web界面成功创build一个域/列表,但是当我尝试发送邮件到列表地址时,邮件被拒绝,并显示以下消息:

Recipient address rejected: User unknown in virtual mailbox table

这个postfix安装通常使用virtual_transport来发送邮件给dovecot。 相应的configuration如下所示:

 virtual_transport = lmtp:unix:private/dovecot-lmtp virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf local_recipient_maps = $virtual_mailbox_maps 

这是基于2小时指导的优秀NSAcertificate您的电子邮件

现在, 这个StackOverflow问题声称virtual_transporttransport_maps不能很好地一起玩,尽pipe在postfix文档中找不到任何certificate这个声明的东西。 作者已经通过使用transport_maps来解决他们的问题,这似乎不是我的select。

请注意,我也会收到警告,说明mailman3的local_recipient_maps选项会覆盖较早的定义,作为dovecot传递的一部分。 这可以通过在一行上指定两个值来解决:

 local_recipient_maps = $virtual_mailbox_maps hash:/path/to/var/data/postfix_lmtp 

但是这并不能解决问题。 有没有人有任何想法或经验,使这项工作? 我意识到mailman3仍然被认为是新的。 这就是为什么我在玩它。

我已经明白了这一点。 原来在链接的StackOverflow问题中的声明是错误的。 确实有可能一起使用virtual_transporttransport_maps 。 我的问题是用于确定virtual_mailbox_maps的SQL查询将自然只在数据库中定义邮箱时返回1 。 一旦检查失败,邮件就被拒绝了。

 -- from: mysql-virtual-mailbox-maps.cf query = SELECT 1 FROM virtual_users WHERE name = 'name = '%s' 

将mailman3映射添加到virtual_mailbox_maps设置为我解决了这个问题。 这是我的工作configuration:

 virtual_transport = lmtp:unix:private/dovecot-lmtp virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf hash:/path/to/var/data/postfix_lmtp virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf local_recipient_maps = hash:/path/to/var/data/postfix_lmtp mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf transport_maps = hash:/path/to/var/data/postfix_lmtp 

它将virtual_transport设置为默认为dovecot,但允许将transport_maps覆盖,将列表地址映射到邮递员本地传输。