在Postfix中,Mailman拒绝邮件

我在一台机器上安装了Postfix,这是唯一的最终邮件目的地:

  1. 机器的主机名( mail.example.org )和localhost
  2. 邮件列表lists.example.org
  3. 一些虚拟域名

main.cf中的相关设置是:

 myhostname = mail.example.org alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = $myhostname mydestination = localhost, $myorigin relay_domains = $mydestination, lists.example.org relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all # Virtual domains virtual_mailbox_base = /var/mail/vhosts virtual_mailbox_domains = hash:/etc/postfix/virtual_domains virtual_mailbox_maps = hash:/etc/postfix/virtual_mailboxes virtual_alias_maps = hash:/etc/postfix/virtual_aliases virtual_minimum_uid = 100 virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 # mailman configuration mailman_destination_recipient_limit = 1 transport_maps = hash:/etc/postfix/transport smtpd_relay_restrictions = permit_mynetworks, reject_invalid_hostname, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_destination, reject_unlisted_recipient, reject_rbl_client zen.spamhaus.org, permit 

目前, lists.example.org邮件通过以下transport_maps设置被路由到Mailman:

lists.example.org mailman:

这是有效的,但是这意味着如果一封邮件被发送到一个未知的列表中,这个邮件就被Postfix接受,然后在被Mailman处理时被退回。 由于几个原因 – 特别是尽可能减less反向散射和拒绝邮件 – 我希望Postfix一看到与@lists.example.org相匹配的RCPT TO ,就不接收邮件列表。

我想我可以通过创build一个包含所有Mailman列表别名的文件并将其指定为main.cf relay_recipient_maps来实现此结果。 不过,我的理解是, relay_recipient_maps适用于relay_domains ,我不希望$mydestination地址受到影响。

所以我的两个相关的问题是:

  1. 我应该从relay_domains删除$mydestination ,如果我这样做,我现有的别名继续工作?
  2. 如果relay_domains设置为lists.example.orgrelay_recipient_maps实现我想要的结果吗?

另外,如果Postfix有一种方法可以在接受邮件发送之前查询Mailman并获得响应(也许使用之前的队列filter – 这就是我如何处理邮件到SpamAssassin),那也可以实现我想要的function。

提前致谢。 🙂

花了我一段时间来做这个,但我遵循的步骤是:

  1. relay_domains删除$mydestination
  2. 将所有Mailman别名的列表添加到名为/etc/postfixo/relay_recipient_maps的哈希文件中。
  3. 添加: relay_recipient_maps = hash:/etc/postfix/relay_recipient_mapsmain.cf

作为初始SMTP交易的一部分,邮件到不存在的列performance在被拒绝,在垃圾邮件检查完成之前,邮件被移交给邮递员之前。