Postfix发送邮件限制

我想设置我的Postfix下面的方式:

  1. 允许通过任何电子邮件地址的authentication用户发送电子邮件(身份validation正在工作)
  2. 允许只接收有限数量的用户(最好在/ etc / postfix / virtual中指定,但我可以添加其他所需的文件)

其实我在main.cf只有以下限制:

 relayhost = relay_domains = $mydestination smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination,permit smtpd_sender_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_non_fqdn_sender,reject_unknown_sender_domain,permit virtual_alias_maps = hash:/etc/postfix/virtual alias_database = hash:/etc/postfix/aliases, hash:/etc/aliases 

/etc/postfix/virtual文件的内容旨在收集指定虚拟用户到现有本地用户的所有邮件:

 [email protected] postfix [email protected] postfix [email protected] postfix [email protected] postfix 

据我所知smtpd_recipient_restrictionsreject_unauth_destination应该是足够的,但是当我打开我不能发送电子邮件到任何外部系统 – 后缀Relay access denied 。 我无法得到如何解决这个问题。

UPD:最后我把“偏执型”的logging放在:

 smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, # permit, reject_unauth_destination, reject 

当您将reject_unauth_destination添加到smtpd_recipient_restrictions ,您记得/知道Postfix从左到右评估这些值吗? 如果你把它

 smtpd_recipient_restrictions = reject_unauth_destination,permit_sasl_authenticated... 

它会拒绝一切。

把它列在最后,它应该工作。

 smtpd_recipient_restrictions = permit_sasl_authenticated, # permit_mynetworks, # permit, reject_unauth_destination, reject 

这是行不通的。 其他邮件服务器将无法发送邮件给你。 您必须至less添加permit_auth_destination 。 我认为最好的解决办法是以下几点

 mynetworks = 127.0.0.0/8 smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, permit_auth_destination, reject