Postfix 发送邮件限制

Postfix 发送邮件限制

我想按以下方式设置我的 Postfix:

  1. 仅允许经过身份验证的用户通过任何电子邮件地址发送电子邮件(身份验证现已开始)
  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应该足够了,但当我打开它时,我无法向任何外部系统发送电子邮件 - postfix 说Relay access denied。我不知道如何修复它。

更新:最后我放了个‘偏执狂式’的记录:

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

答案1

当你添加reject_unauth_destination到 时smtpd_recipient_restrictions,你是否记得/知道 Postfix 会从左到右评估这些值?如果你把它

smtpd_recipient_restrictions = reject_unauth_destination,permit_sasl_authenticated...

它会拒绝一切。

将其放在列表的最后,它应该可以起作用。

答案2

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

这不起作用。其他邮件服务器将无法向您发送邮件。您必须至少添加允许_授权_目的地。我认为最好的解决方案是以下

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

相关内容