若要實作前一節中定義的自動移除郵件策略,您必須設定 imexpire 規則。您必須將規則放置於 store.expirerule 檔案中,藉以設定規則。以下是包含兩個全域 store.expirerule 規則的範例:
Rule1.regexp: 1 Rule1.folderpattern: user/.*/trash Rule1.messagedays: 2 Rule2:regexp: 1 Rule2.folderpattern: user/.* Rule2.messagedays: 14 |
在此範例中,Rule 1 指定垃圾箱資料夾中的所有郵件將在兩天後被移除。Rule 2 指定郵件儲存中的所有郵件將在 14 天後被移除。
本節包含以下小節:
本小節說明 store.expirerule 檔案規則的使用準則。
在舊版的 Messaging Server 中,可以使用 configutil 參數 store.expirerule. attribute 設定過期規則 (請參閱「Sun Java System Messaging Server 6.3 Administration Reference」中的「configutil Parameters」)。現在仍可使用,但是不再支援使用標頭限制的過期規則 (例如使具有特定主旨行的郵件過期)。在任何情況下,最好都使用 store.expirerule 來指定所有過期規則。
規則在名為 store.expirerule 的檔案中指定。
多個過期條件可使用相同的規則指定。(以上範例)。
規則可以套用至整個郵件儲存 (全域規則)、分割區、使用者或資料夾。
全域規則儲存在 msg-svr-base/config/store.expirerule 中
每個電子信箱都會檢查所有全域規則,這可能導致一些處理經常性耗用時間 (取決於您指定的全域規則數目)。因此,您不應在全域規則檔案中指定分割區、電子信箱或使用者規則。一般來講,您不應試圖在此檔案中放置超過所需數目的過期規則。
分割區規則儲存於 store_root/partition/partition_name/store.expirerule 中。
使用者規則必須在 store_root/partition/partition_name/userid/store.expirerule 中指定,或藉由將 folderpattern 規則指定為 user/userid/.* 進行指定
資料夾規則必須在 store_root/partition/partition_name/userid/folder/store.expirerule 中指定,或藉由將 folderpattern 規則指定為user/userid /folder 進行指定
請注意,有多項使用 rule_name 的非全域規則 (使用者、資料夾、分割區) 只能在 Messaging Server 6.2p4 版本或更新版本中實作。
多個過期規則可同時套用至一個電子信箱。電子信箱的過期策略由全域規則和本機規則組成。本機規則可套用至某個目錄及其所有子資料夾下的電子信箱。
imexpire 可使套用至電子信箱的所有過期規則都相同,除非有特別為此電子信箱指定的專用規則 (請參閱表 20–8)。產生的規則集會根據所有適用的規則,總結出最嚴格的過期策略。例如,如果規則 X 規定最長郵件時限是 10 天,規則 Y 指定的卻是 5 天,則結合兩者得出的規則將是 5 天。
屬性 |
說明 (屬性值) |
---|---|
指定要對過期規則所發現的郵件執行之動作。可能的值為: discard 會捨棄郵件。這是預設。 report 動作會將電子信箱名稱、UID 有效性與 UID 列印至 stdout。 archive 會以 Sun Compliance and Content Management System 進行郵件歸檔,然後捨棄該郵件。 fileinto: folder 動作會將郵件放置於特定資料夾中。共用資料夾字首可用以將郵件放置於其他使用者所擁有的資料夾中。 |
|
指定此規則是否為專用規則。如果指定為 exclusive,則僅將此規則套用至指定的電子信箱,而忽略其他所有規則。如果存在一個以上的專用規則,則將使用最後載入的專用規則。例如,如果全域專用規則和本機專用規則均已指定,則將使用本機規則。如果有多個的全域專用規則,則使用由 configutil 列出的最後一個全域規則。(1/0) |
|
指定受此規則影響的資料夾。格式必須以 user/ 開頭,代表目錄 store_root/partition/*/。請參閱表 20–9。(POSIX 常規表示式) |
|
資料夾中郵件的最大數目。隨著其他郵件被遞送,最舊的郵件會被永久刪除。(整數) |
|
遞送其他郵件時最舊的郵件被永久刪除之前的資料夾空間上限。(以位元組為單位的整數) |
|
郵件在被永久刪除之前的存在時間 (以天為單位)。(整數) |
|
郵件被標記為已永久刪除前的最大大小 (以位元組為單位)。(整數) |
|
寬限期。超出大小限制的郵件保留在資料夾中的天數。(整數) |
|
messageheader.header |
指定將郵件標記為移除的標頭欄位和字串。值不區分大小寫,並且無法識別常規表示式。範例:Rule1.messageheader.Subject: Get Rich Now! 對於標頭 Expires 和 Expiry-Date,如果在這些標頭欄位中指定的日期值早於 messagedays 屬性所對應的日期,則 imexpire 將移除郵件。如果指定多個過期標頭欄位,則將使用最早的過期日期。(字串)。 |
regexp |
建立規則時啟用 UNIX 常規表示式。(1 或 0)。如果未指定,將使用 IMAP 表示式。 |
郵件在遭到永久刪除前儲存於資料夾中的天數。 |
|
seen 是當使用者開啟郵件時,由系統設定的郵件狀態旗標。若將屬性 seen 設定為 and,則郵件必須已讀取並且必須符合其他條件,才能實作此規則。若將屬性 seen 設定為 or,則郵件只需被讀取或符合其他條件,即可實作此規則。(and/or)。 |
|
用以指定郵件選取條件的篩選規則。範例:Rule17.sieve: header :contains “Subject” “Vigara” |
|
deleted 是當使用者刪除郵件時,由系統設定的郵件狀態旗標。若將屬性 deleted 設定為 and,則郵件必須被刪除並且必須符合其他條件,才能實作此規則。若將屬性 deleted 設定為 or,則郵件只需被讀取或符合其他條件,即可實作此規則。(and/or) |
IMAP 協定會指定電子信箱名稱使用修改過的 UTF-7 編碼。Messaging Server 支援外部介面的本土化字元集,因此電子信箱名稱可進行本土化。但在內部作業時,系統會將本土化名稱轉換為 UTF-7。因此,用戶端上具有本土化電子信箱名稱的資料夾,將具有 UTF-7 格式的對應電子信箱檔案名稱。(請注意,IMAP 錯誤訊息會以 UTF-7 輸出電子信箱名稱,而非使用本土化字元集。)
一般而言,大部分需要電子信箱名稱的郵件儲存公用程式皆具有選項旗標而可設定成使用其他字元集,但它們仍預期名稱應以本土化字元集顯示。這些公用程式包括 reconstruct、mboxutil、imsbackup、imsrestore 與 hashdir。但 imexpire 則要求電子信箱名稱必須使用 UTF-7,如屬性 folderpattern 所指定。使用本土化名稱無法運作。
若要取得 imexpire 的適當 folderpattern,可能必須將本土化電子信箱名稱轉換為修改過的 UTF-7 對等項目。使用 mboxutil -E 指令可執行此作業,如下所示:
第一個 mboxutil 顯示本土化檔名。第二個 mboxutil 以修改過的 UTF-7 顯示檔名。您也可以使用 IMAP 清單指令:
透過在 store.expirerule 檔案中指定規則來設定自動移除郵件規則。store.expirerule 檔案中的每一行包含一個過期條件。全域規則配置檔案 (msg-svr-base/data/store/store.expirerule) 的過期條件格式如下:
rule_name.attribute : value
使用者或電子信箱規則配置檔案的過期規則格式如下:
attribute: value
範例 20–4 顯示 msg-svr-base/config/store.expirerule 中的一組全域過期規則。
Rule 1 設定全域過期策略 (即套用至所有郵件的策略),內容如下:
建立規則時啟用 UNIX 常規表示式。
3 天後移除超過 100,000 位元組的郵件。
移除使用者刪除的郵件。
移除 [主旨︰] 標頭中帶有字串「Vigara Now!」或「XXX Porn!」的 參數。
限制所有資料夾的郵件數不得高於 1,000 封。超過 1,000 封郵件時,系統將移除最舊的郵件以便將總數維持在 1,000 封。
移除所有存放時間超過 365 天的郵件。
Rule 2 為 siroe.com 託管網域中的使用者設定自動移除郵件策略。它限制電子信箱的容量不得超過 1 兆位元組,移除已刪除的郵件,並移除存放時間超過 14 天的郵件。
Rule 3 為使用者 f.dostoevski 的 inbox 資料夾中的郵件設定自動移除郵件策略。它會移除主旨行中包含「On-line Casino」字句的郵件。
Rule1.regexp: 1 Rule1.folderpattern: user/.* Rule1.messagesize: 100000 Rule1.messagesizedays: 3 Rule1.deleted: or Rule1.Subject: Vigara Now! Rule1.Subject: XXX Porn! Rule1.messagecount: 1000 Rule1.messagedays: 365 Rule2.regexp: 1 Rule2.folderpattern: user/.*@siroe.com/.*Rule2.exclusive: 1 Rule2.deleted: or Rule2.messagedays: 14 Rule2.messagecount: 1000 Rule3.folderpattern: user/f.dostoevski/inboxRule3.Subject: *On-line Casino* |
可透過將 imexpire 屬性 regex 設定為 1,將資料夾式樣指定為使用 POSIX 常規表示式。如果未指定,則將會使用 IMAP 表示式。此格式必須以 user/ 開頭,後跟式樣。表 20–9 顯示各種資料夾的資料夾式樣。)
表 20–9 使用常規表示式的 imexpire 資料夾式樣
資料夾式樣 |
範圍 |
---|---|
user/userid/.* |
將規則套用至 userid 下所有資料夾中的所有郵件。 |
user/userid/Sent |
將規則套用至 userid 下 Sent 資料夾中的郵件: |
user/.* |
將規則套用至全部郵件儲存。 |
user/.*/trash |
將規則套用至所有使用者的 trash 資料夾。 |
user/.*@siroe.com/.* |
將規則套用至託管網域 siroe.com 中的資料夾: |
user/[^@]*/.* |
將規則套用至預設網域中的資料夾。 |