我刚刚使用虚拟域(使用 dovecote)配置了 postfix,因此需要更改 mailman 配置。我决定使用 lists.* 来允许 postfix 区分需要发送到 dovecote 的邮件和由 mailman 处理的其他邮件。因此,我创建了一个 transport_map (lists.(domainname) mailman:) 并使用以下配置在 master.cf 中注册了 mailman:
mailman unix - nn - - pipe flags=FR user=mailman:mailman argv=/var/mailman/postfix-to-mailman.py ${nexthop} ${user}
我还向中继域添加了列表。(域名)。根据https://www.gurulabs.com/downloads/postfix-to-mailman-2.1.py(安装部分)我现在根本不需要配置任何别名。但如果不将 genaliases 的输出添加到 /etc/aliases 并随后运行 newaliases 命令,邮件将被拒绝(本地别名映射中未找到用户)。有人知道为什么会发生这种情况吗?
我的 main.cf 如下所示:
# 请参阅 /usr/share/postfix/main.cf.dist 以获取带注释的更完整版本 # Debian 特有:指定文件名将导致第一个 # 行,该文件将被用作名称。Debian 默认 # 是 /etc/mailname。 #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = 没有 # 附加 .domain 是 MUA 的工作。 append_dot_mydomain = no # 取消注释下一行以生成“延迟邮件”警告 #delay_warning_time = 4h readme_directory = 否 # TLS 参数 smtpd_tls_cert_file=/etc/postfix/sslcert/邮件服务器.crt smtpd_tls_key_file=/etc/postfix/sslcert/mailserver.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # 请参阅 postfix-doc 包中的 /usr/share/doc/postfix/TLS_README.gz # 有关在 smtp 客户端中启用 SSL 的信息。 我的主机名 = mathishoffmann.de alias_maps = hash:/etc/aliases 别名数据库 = 哈希:/etc/aliases myorigin = mathishoffmann.de 我的目标 = lists.mathishoffmann.de, lvps176-28-12-195.dedicated.hosteurope.de, localhost.dedicated.hosteurope.de, localhost 中继主机 = 我的网络 = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_command = procmail -a “$EXTENSION” 邮箱大小限制 = 0 收件人分隔符 = + inet_interfaces = 全部 transport_maps = hash:/etc/postfix/transport mailman_destination_recipient_limit = 1 # 加强垃圾邮件防护 disable_vrfy_command = 是 # 身份验证 smtpd_sasl_type=dovecot smtpd_sasl_path=私人/auth_dovecot smtpd_sasl_auth_enable = 是 smtpd_sasl_authenticated_header = 是 broken_sasl_auth_clients = 是 proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps smtpd_sender_login_maps = 代理:mysql:/etc/postfix/mysql_sender_login_maps.cf smtpd_sender_restrictions = 拒绝验证发送者登录不成功 拒绝未知发件人域名 smtpd_recipient_restrictions = permit_sasl_authenticated 允许我的网络 拒绝未授权目的地 # 虚拟邮箱 virtual_alias_maps = 代理:mysql:/etc/postfix/mysql_virtual_alias_maps.cf 虚拟邮箱库 = /var/vmail/ 虚拟邮箱域 = 代理:mysql:/etc/postfix/mysql_virtual_domains_maps.cf 虚拟邮箱限制 = 112400000 virtual_mailbox_maps = 代理:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf 虚拟最小用户 ID = 104 virtual_transport = 虚拟 virtual_uid_maps = 静态:5000 virtual_gid_maps = 静态:5000 virtual_transport=dovecot(鸽舍) dovecot_destination_recipient_limit = 1 disable_vrfy_command = 是
答案1
首先,不要在 mydestination 中列出 list.mathishoffmann.de - 它只属于 Relay_domains(请参阅 ADDRESS_CLASSES 自述文件)。哦,就像 yoonix 所说的那样,我根本没看到您定义任何 Relay_domains。
此外,您需要告诉 Postfix 有效收件人的信息,例如,relay_recipient_maps = hash:/var/lib/mailman/data/virtual-mailman。
最后,告诉邮递员它可以跳过别名生成(MTA = None)并且lists.mathishoffmann.de确实是它的主要域(POSTFIX_STYLE_VIRTUAL_DOMAINS = ['lists.mathishoffmann.de'])。