我正在玩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_transport和transport_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_transport和transport_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覆盖,将列表地址映射到邮递员本地传输。