Postfix和Mailman

我刚刚使用虚拟域configuration了postfix(使用dovecote),因此需要改变mailman-configuration。 我决定使用列表*来允许postfix在需要去鸽舍的邮件和由邮递员处理的邮件之间进行区分。 因此,我使用这个configuration创build了一个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中给出的信息(安装部分),我现在不需要configuration任何别名。 但是,如果不将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 = no

 #追加.domain是MUA的工作。
 append_dot_mydomain = no

 #取消注释下一行以生成“延迟邮件”警告
 #delay_warning_time = 4h

 readme_directory = no

 #TLS参数
 smtpd_tls_cert_file = /等/后缀/的sslcert / mailserver.crt
 smtpd_tls_key_file = /等/后缀/的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的信息。

 myhostname = mathishoffmann.de
 alias_maps = hash:/ etc / aliases
 alias_database = hash:/ etc / aliases
 myorigin = mathishoffmann.de
 mydestination = lists.mathishoffmann.de,lvps176-28-12-195.dedicated.hosteurope.de,localhost.dedicated.hosteurope.de,localhost
 relayhost = 
 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [:: 1] / 128
 mailbox_command = procmail -a“$ EXTENSION”
 mailbox_size_limit = 0
 recipient_delimiter = +
 inet_interfaces = all
 transport_maps = hash:/ etc / postfix / transport
 mailman_destination_recipient_limit = 1

 #多一点的垃圾邮件保护
 disable_vrfy_command =是


 #身份validation
 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 = proxy:mysql:/etc/postfix/mysql_sender_login_maps.cf

 smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch
         reject_unknown_sender_domain

 smtpd_recipient_restrictions = permit_sasl_authenticated
         permit_mynetworks
         reject_unauth_destination


 #虚拟邮箱
 virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
 virtual_mailbox_base = / var / vmail /
 virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
 virtual_mailbox_limit = 112400000
 virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
 virtual_minimum_uid = 104
 virtual_transport =虚拟
 virtual_uid_maps = static:5000
 virtual_gid_maps = static:5000
 virtual_transport = dovecot
 dovecot_destination_recipient_limit = 1
 disable_vrfy_command =是 

首先,不要在列表中列出list.mathishoffmann.de – 它只属于relay_domains(请参阅ADDRESS_CLASSES自述文件)。 哦,就像yoonix说的,我没有看到你定义任何relay_domains。

此外,你需要告诉Postfix关于有效的收件人,像relay_recipient_maps = hash:/ var / lib / mailman / data / virtual-mailman。

最后,告诉mailman它可以跳过别名生成(MTA = None),并且lists.mathishoffmann.de的确是它的主域(POSTFIX_STYLE_VIRTUAL_DOMAINS = ['lists.mathishoffmann.de'])。