我理解如果测试无法完成,例如 DNS 黑名单查询超时,则会返回“defer”。但是 defer 对最终 ACL 决策有什么影响?此外,当我手动将返回设置为“defer”而不是“deny”时会发生什么,例如在查询本地黑名单时?
答案1
http://www.exim.org/exim-html-current/doc/html/spec_html/ch-access_control_lists.html,12.ACL 返回代码:
除了 QUIT ACL 不影响 SMTP 返回代码(请参阅上面的第 40.9 节)之外,运行 ACL 的结果要么是“接受”或“拒绝”,或者,如果某些测试无法完成(例如,如果数据库已关闭),则为“推迟”。这些结果分别导致在 SMTP 对话中使用 2xx、5xx 和 4xx 返回代码。
这意味着“defer”表示发送方存在临时问题(4xx),而“deny”表示存在永久问题(5xx),发送方不应重试。以黑名单为例,如果无法联系到他们,则可以使用 defer,如果主机在黑名单中,则可以使用deny。(我认为这是由 dnslist 自动完成的)