Sun Java System Messaging Server 6 2005Q4 管理指南

控制与重写相关联的错误消息 ($?)

重写和通道匹配失败时,MTA 将提供默认错误消息。在某些情况下,更改这些邮件的能力将很有用。例如,如果某人尝试将邮件发送到以太网路由器邮箱,则显示类似“我们的路由器无法接受邮件”的信息可能要比通常的“指定了非法的主机/域”更加明确。

如果规则失败,可以使用特殊控制序列来更改显示的错误消息。序列 $? 用于指定错误消息。如果此次重写的结果与任何通道均不匹配,则 $? 后面的文本,一直到 at 符号 (@)、百分比符号 (%)、$N、$M、$Q、$C、$T 或 $? 均被视为要打印的错误消息的文本。错误消息的设置具有“黏性”并将贯穿重写过程始终。

包含 $? 的规则与其他任何规则的操作方式相同。规则中只包含 $? (而没有任何其他符号)的特殊情况需要特别注意—重写过程将终止,而不更改地址的邮箱或主机部分,并按原样在通道表中查找主机。此查找将要失败,结果将返回错误消息。

例如,假设 MTA 配置文件中的最后一个重写规则如下所示:

. $?Unrecognized address; contact postmaster@siroe.com

此示例中,可能失败的任何不可识别的主机或域说明在失败过程中都会生成错误消息:Unrecognized address; contact postmaster@siroe.com