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