Sun Java System Messaging Server 6.3 管理指南

15.5 参考信息

本节提供有关 SPF 通道关键字和 SPF MTA 选项的参考信息。SPF 支持是通过应用于外来 tcp_* 通道(通常是 tcp_local)的四个通道关键字实现的。下表显示了这些关键字及其说明。

表 15–2 SPF 关键字

关键字 

说明 

spfnone

禁用 SPF 处理 

spfhelo

为作为 HELO 或 EHLO 参数指定的域名启用 SPF 处理。 

spfmailfrom

为收到 MAIL FROM: 后提供给始发者信封地址的域名启用 SPF 处理. 

spfrcptto

为收到 RCPT TO: 后提供给始发者信封地址的域名启用 SPF 处理. 处理方式与 spfmailfrom 一样,只是它在 SMTP 事务中被延迟,直到发出 RCPT TO: 命令并且收件人被确认为有效收件人后为止。


注 –

spfmailfromspfrcptto 关键字会发生冲突,应该只在通道上指定其中一个关键字。但是,可以同时使用 spfhelospfmailfrom(或 spfrcptto)以执行两种 SPF 检查。


还支持建立对 SPF 处理的限制,并可以针对各种 SPF 结果,控制是接受 SMTP 命令,还是以 4xx 响应(临时故障)或 5xx 响应(永久故障)拒绝该命令,这些 SPF 结果包括: FailSoftFailPermErrorTempError

option.dat 中的以下 MTA 选项可以用于对 SPF 处理进行限制。

表 15–3 SPF 限制选项

选项 

说明 

SPF_MAX_RECURSION

指定由于 include:redirect= 而导致的嵌套 SPF 记录中允许的递归数。超过此限制将导致 PermError

默认值:10(由 RFC 规定) 

SPF_MAX_DNS_QUERIES

指定需要 DNS 查找的机制数或修饰符数(包括 include:a:mx:ptr:exists:redirect=exp=)。请注意,此限制不会计为实际 DNS 查找的数量,因此一个机制可能会导致多个 DNS 查询。超过此限制将导致 PermError

默认值:10(由 RFC 规定) 

SPF_MAX_TIME

指定完成 SPF 处理允许的时间(以秒为单位)。超过此值将导致 TempError。默认值远大于 RFC 建议的值。

默认值:45 

另外,可以配置 option.dat 中的以下 MTA 选项,以控制 SMTP 服务器在响应FailSoftFailPermErrorTempError 的 SPF 结果时所采取的行为。对于每种结果,SMTP 服务器都可发回 2xx(成功)、4xx(临时故障)或 5xx(永久故障)响应。另外,对于 FailSoftFail,MTA 能够区分 "all" 机制导致的 SPF 结果和明确引用的匹配。这样您可以区分特定结果和 SPF 记录的默认结果。上述任一选项的有效值是 2、4 或 5。值 2、4 和 5 分别对应来自 SMTP 服务器的 2xx、4xx 和 5xx 响应,这些响应是获取特定 SPF 状态的结果。因此,如果 SPF_SMTP_STATUS_FAIL=2 并且 SPF 记录明确地用 "-a:192.168.1.44"(我们的 IP 地址)阻塞我们,那么我们将使用 "250 OK" 接受该地址,而不是使用 5xx 进行响应。

表 15–4 SPF 故障和错误选项

选项 

说明 

SPF_SMTP_STATUS_FAIL

当 SPF 记录的匹配是 "-" 标志的机制("-all" 除外)时使用 

默认值:5 

SPF_SMTP_STATUS_FAIL_ALL

当匹配机制为 "-all" 时使用 

默认值:5 

SPF_SMTP_STATUS_SOFTFAIL

当 SPF 记录的匹配是 "~" 标志的机制("~all" 除外)时使用 

默认值:2 

SPF_SMTP_STATUS_SOFTFAIL_ALL

当匹配机制为 "~all" 时使用 

默认值:2 

SPF_SMTP_STATUS_TEMPERROR

当有临时故障(通常与 DNS 处理问题有关)时使用。 

默认值:4 

SPF_SMTP_STATUS_PERMERROR

当有永久故障(通常由于语法或其他 SPF 处理期间发现的技术错误所致)时使用。(请注意,这将由非本地错误引发。) 

默认值:5