遞送狀態通知郵件可以被本土化,以便將郵件傳回給使用不同語言的不同使用者。例如,可將法語通知傳回給喜好設定為法語的使用者。
本土化或自訂狀態通知郵件由兩個步驟組成:
建立一組本土化/自訂 return_*.txt 郵件檔案,並將每組檔案儲存在單獨的目錄中。這在建構和修改狀態通知中加以說明
設定 NOTIFICATION_LANGUAGE 對映表。
NOTIFICATION_LANGUAGE 對映表 (位於 msg_svr_base/config/mappings) 指定一組本土化或自訂的通知郵件檔案,以視產生的郵件 (導致通知被傳送的郵件) 屬性而使用 (例如︰語言、國家/地區、網域或位址)。
剖析原始寄件者的郵件以確定狀態通知類型、來源通道、喜好的語言、傳回位址及第一收件者。視表格的建構方式而定,將依據以上的一個或多個屬性來選取一組通知檔案。
NOTIFICATION_LANGUAGE 對映表的格式如下。由於印刷排版原因,範例項目行換行。實際項目應顯示在一個實體行上。
NOTIFICATION_LANGUAGE dsn-type-list|source-channel|preferred-language|return-address \ |first-recipient $Idirectory-spec |
dsn-type-list 是以逗號分隔的傳送狀態通知類型清單。如果指定多個類型,它們必須以逗號分隔且不留空格 (空格將終止對映表項目的式樣)。這些類型如下:
failed - 一般的永久性失敗郵件 (例如,沒有該使用者)。使用 return_failed.txt 檔案。
bounced - 與手動「退回」結合使用的通知郵件。由 Postmaster 完成。使用 return_bounced.txt 檔案。
timedout - MTA 無法在允許的傳送時間內傳送郵件。郵件將被傳回。使用 return_timedout.txt 檔案。
delayed - MTA 無法傳送郵件,但將繼續嘗試傳送它。使用 return_delayed.txt 檔案。
deferred - 類似於「延遲的」的未傳送通知,但沒有指出 MTA 將繼續嘗試傳送的時間。使用 return_deferred.txt 檔案。
forwarded - 為此郵件請求了傳送收據,但該郵件現在已轉寄至不支援此類收據的系統。使用 return_forwarded.txt 檔案。
source-channel 是產生通知郵件的通道,亦即郵件目前形成佇列的通道。例如,ims-ms 用於郵件儲存的傳送佇列,tcp_local 用於外寄 SMTP 佇列等。
preferred-language 是正在處理的郵件 (為其產生通知的郵件) 所使用的語言。此資訊的來源首先是 accept_language 欄位。如果不存在 Preferred-language: 標頭欄位,則使用 X-Accept-Language: 標頭欄位。如需標準語言代碼值的清單,請參閱檔案 msg_svr_base/config/languages.txt
如果此欄位不為空,則成為為 Preferred-language: 或 X-Accept-language: 標頭行指定的郵件寄件者。因此,您可能會在此欄位中發現無意義的字元。
return-address 是來源郵件的訊息封 From: 位址。這是要向其傳送通知郵件的訊息封位址,因此也是要使用語言的指示符號。
first-recipient 是原始郵件定址的訊息封 To: 位址 (第一個,如果郵件無法傳送至多個收件者)。例如,在通知「您的郵件無法傳送至 dan@siroe.com」中,dan@siroe.com 是報告的訊息封 To:。
directory-spec 是包含要使用的 return_*.txt 檔案的目錄 (如果對映表測試匹配)。請注意,$I 必須位於目錄規格之前。
例如,在目錄 /lc_messages/table/notify_french/ 中儲存法語通知檔案 (return_*.txt),以及在目錄 /lc_messages/table/notify_spanish/ 的 return_*.txt 檔案中儲存西班牙語通知檔案的網站,可能會使用以下表格。請注意,每個項目必須以一個或多個空格開頭,並且項目之間不能有空白行。
NOTIFICATION_LANGUAGE ! Preferred-language: header value specified ! *|*|fr|*|* $I/lc_messages/table/notify_french/ *|*|es|*|* $IIMTA_TABLE/notify_spanish/ *|*|en|*|* $I/imta/lang/ ! ! If no Preferred-language value, then select notification based on the ! country code in the domain name. EX: PF=French Polynesia; BO=Bolivia ! *|*|*|*.fr|* $I/imta/table/notify_french/ *|*|*|*.fx|* $I/imta/table/notify_french/ *|*|*|*.pf|* $I/imta/table/notify_french/ *|*|*|*.tf|* $I/imta/table/notify_french/ *|*|*|*.ar|* $I/imta/table/notify_spanish/ *|*|*|*.bo|* $I/imta/table/notify_spanish/ *|*|*|*.cl|* $I/imta/table/notify_spanish/ *|*|*|*.co|* $I/imta/table/notify_spanish/ *|*|*|*.cr|* $I/imta/table/notify_spanish/ *|*|*|*.cu|* $I/imta/table/notify_spanish/ *|*|*|*.ec|* $I/imta/table/notify_spanish/ *|*|*|*.es|* $I/imta/table/notify_spanish/ *|*|*|*.gp|* $I/imta/table/notify_spanish/ *|*|*|*.gt|* $I/imta/table/notify_spanish/ *|*|*|*.gy|* $I/imta/table/notify_spanish/ *|*|*|*.mx|* $I/imta/table/notify_spanish/ *|*|*|*.ni|* $I/imta/table/notify_spanish/ *|*|*|*.pa|* $I/imta/table/notify_spanish/ *|*|*|*.ve|* $I/imta/table/notify_spanish/ |
安裝時將提供一個預設 mappings.locale 檔案,此檔案將包含在 mappings 檔案中以啟用通知語言對映。若要停用通知語言對映,請註釋以下包含行:
! <IMTA_TABLE:mappings.locale
(請閱讀檔案中的註釋並修改它以滿足您的需要。)