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

FORWARD 對映表

FORWARD 對映表提供基於式樣的轉寄功能,還提供來源特定的轉寄機制。如果對映檔案中存在 FORWARD 對映表,則會套用至每個訊息封 To: 位址。如果此對映不存在或對映中沒有項目匹配,則不會進行任何變更。

如果位址匹配一個對映項目,則將測試對映結果。如果項目指定 $Y,結果字串將取代訊息封 To: 位址;如果指定 $N,將捨棄對映結果。請參閱表 10–8,以取得附加旗標清單。

表 10–8 FORWARD 對映表旗標說明

旗標 

說明 

$D 

透過重寫程序再次執行輸出 

$G 

如果已啟用正向查詢表格,則透過正向查詢表格執行輸出 

$H 

停用進一步的正向查詢表格或 FORWARD 對映查詢 

$I 

將郵件儲存為 .HELD 檔案

$N 

位址保持不變 

$Y 

使用輸出作為新位址 

在執行任何正向查詢表格查詢之前,均會查詢 FORWARD 對映 (如果存在)。如果 FORWARD 對映匹配且具有旗標 $G,則 FORWARD 對應的結果將對照正向查詢表格進行檢查 (如果正向查詢表格已經由 USE_FORWARD_DATABASE 的適當設定啟用)。(請注意,如果已指定通道專用的正向查詢表格,則在正向查詢表格中進行查詢之前,會將來源位址和來源通道置於 FORWARD 對映結果之前。)如果匹配的 FORWARD 對映項目指定 $D,則將透過 MTA 位址重新寫入程序再次執行 FORWARD 對映結果 (及可選擇的轉寄表格查詢)。如果匹配的 FORWARD 對映項目指定 $H,則在該後續位址重新寫入 (使用 $D 的結果) 期間,將不執行進一步的 FORWARD 對映或資料庫查詢)。

以下範例說明了複雜的 REVERSEFORWARD 對映的使用。假設系統或與 mr_local 通道相關聯的名為 am.sigurd.innosoft.com 的虛擬網域產生一般格式的 RFC 822 位址:

"lastname, firstname"@am.sigurd.example.com

"lastname,firstname"@am.sigurd.example.com

雖然這些位址完全合法,但它們經常使不完全符合 RFC 822 語法規則的其他郵件程式 (例如無法正確處理引用的位址的郵件程式) 產生混淆。因此,不要求引用的位址格式可用於更多的郵件程式。其中一個格式為

firstname.lastname@am.sigurd.example.com

複雜的 FORWARD 和 REVERSE 對映範例如下:

REVERSE

 *|mr_local|"*,$ *"@am.sigurd.example.com $Y"$1,$ $2"@am.sigurd.example.com
 *|mr_local|"*,*"@am.sigurd.example.com   $Y"$1,$ $2"@am.sigurd.example.com
 *|*|"*,$ *"@am.sigurd.example.com        $Y$3.$2@am.sigurd.example.com
 *|*|"*,*"@am.sigurd.example.com          $Y$3.$2@am.sigurd.example.com
 *|mr_local|*.*@am.sigurd.example.com     $Y"$2,$ $1"@am.sigurd.example.com
 *|*|*.*@am.sigurd.example.com            $Y$2.$3@am.sigurd.example.com

FORWARD

 "*,$ *"@am.sigurd.example.com            $Y"$0,$ $1"@am.sigurd.example.com
 "*,*"@am.sigurd.example.com              $Y"$0,$ $1"@am.sigurd.example.com
 *.*@am.sigurd.example.com                $Y"$1,$ $0"@am.sigurd.example.com

因此上面範例中的範例對映表的目的有三個。(1) 允許使用上面三種位址格式中的任何一種。(2) 在 mr_local 通道上僅以原有格式表示位址,並在必要時轉換格式。(3) 在所有其他通道上僅以新的未引用格式表示位址,並在必要時轉換格式。(顯示的 REVERSE 對映假設已設定了 MTA 選項 USE_REVERSE_DATABASE 中的位元 3。