本節描述如何使用轉換通道選項來退回、刪除或保留郵件。基本程序如下:
在相應的轉換檔案項目中設定 OVERRIDE-OPTION-FILE=1。這會告知轉換通道從 OUTPUT_OPTIONS 檔案中讀取輸出選項。
使用轉換程序檔確定需要對特定郵件內文部分執行何種動作。
在程序檔中,透過寫入 OUTPUT_OPTIONS 檔案中的 STATUS=directive_code 選項,指定該動作的特殊指令。
完整的特殊指令清單位於 msg-svr-base/include/deprecated/pmdf_err.h 中。轉換通道常用的特殊指令如下:
表 13–5 轉換通道常用的特殊指令
名稱 |
六進位值 |
十進位值 |
---|---|---|
PMDF__FORCEHOLD |
0x0A9C86AA |
178030250 |
PMDF__FORCERETURN |
0x0A9C857A |
178029946 |
PMDF__FORCEDELETE |
0x0A9C8662 |
178030178 |
PMDF__FORCEDISCARD |
0x0A9C86B3 |
178030259 |
PMDF__AGN |
0x0A9C809A |
178028698 |
以下透過範例詳細說明這些指令的功能。
若要使用 conversion 通道退回郵件,請在相應的 conversions 檔案項目中設定 OVERRIDE-OPTION-FILE=1,並將下行增加至轉換程序檔:
echo "STATUS=178029946" >> $OUTPUT_OPTIONS
如果要在退回的郵件中加入簡短的文字字串請將下行加入轉換程序檔:
echo OUTPUT_DIAGNOSTIC=text-string >> $OUTPUT_OPTIONS
其中文字字串如下:「The message sent from your machine contained a virus which has been removed. Be careful about executing email attachments.」
根據部分所包含的內容有條件地刪除部分可能很有用。這項功能可使用輸出選項實現。相對地,DELETE=1 轉換參數陳述式可無條件地刪除郵件部分。
若要使用輸出選項刪除郵件部分,請在相應的轉換檔案項目中設定 OVERRIDE-OPTION-FILE=1,並將下行增加至轉換程序檔:
echo "STATUS=178030178" >> $OUTPUT_OPTIONS
同樣地,若要刪除整則郵件,您可以使用:
echo "STATUS=178030259" >> $OUTPUT_OPTIONS
根據部分所包含的內容有條件地保留郵件可能很有用。若要使用輸出選項刪除郵件部分,請在相應的轉換檔案項目中設定 OVERRIDE-OPTION-FILE=1,並將下行增加至轉換程序檔:
echo "STATUS=178030250" >> $OUTPUT_OPTIONS
這會請求 conversion 通道將郵件做為 .HELD 檔案暫停在 conversion 通道佇列中。
當轉換程式程序檔發生暫時性資源問題時 (例如系統無法連線至外部伺服器、所需的檔案遭鎖定等),您可以使用 PMDF_AGN 告知轉換通道,使其考慮處理發生暫時性錯誤的郵件。MTA 會在 mail.log_current 中記錄 "Q" 狀態訊息,並將訊息保存在轉換通道中,然後於稍後重試處理作業。
在您的轉換程序檔中加入以下一行:
echo "STATUS=178028698" >> $OUTPUT_OPTIONS