Postfix 和 Mailman

Postfix 和 Mailman

我刚刚使用虚拟域(使用 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'])。

相关内容