这和这说reject_rbl_client
是smtpd_recipient_restriction
。然而,Postfix 文档显示它只是一个smtpd_client_restriction
,这对我来说很有意义。那么,它是哪一个?
另外,为什么当我配置无意义的东西时,postfix check
就service postfix reload
接受它呢?
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_client_hostname, reject_rbl_cliena bl.spamcop.net
和:
root@server: /etc/postfix # postfix check
root@server: /etc/postfix # echo $?
0
root@server: /etc/postfix #
和:
# service postfix reload
Reloading Postfix configuration...done.
版本:2.9.6-2 Debian 7(Wheezy)
答案1
如果你向下滚动到smtpd_recipient_restrictions
在 Postfix 文档中,它解释了 SMTP 命令的特定限制客户,嘿洛和发件人也适用于发件人上下文。换句话说:您可以将reject_rbl_client
限制放在任一列表中。
当接收邮件时,Postfix 将按smtpd_*_restrictions
以下顺序应用:客户,嘿洛,发件人,中继,接受者,数据和数据结束。当限制的计算结果为REJECT
或 时DEFER
,将跳过后面的限制。理想情况下,首先进行快速且廉价的检查,这样您大多数时候就可以跳过相对昂贵的检查(例如查找外部黑名单)。通过将值reject_rbl_client
从 移出smtpd_client_restrictions
并移入smtpd_recipient_restrictions
,您将减少 Postfix 需要查找该黑名单的次数。
将会postfix check
抱怨参数名称中的拼写错误,但不会抱怨参数值中的拼写错误(就像您的情况一样)。引用邮政Postfix 作者 (Wietse Venema):
在许多情况下,只有使用值时才会检查 1000 多个参数值的语法。例如,只有当特定 IP 地址与此列表匹配时才会检查 mynetworks 值的语法(如果语法错误位于列表末尾,则可能需要一段时间才能注意到错误)。