Sun Java System Messaging Server 6.3 管理指南

20.9.2.2 設定實作自動移除郵件策略的規則

若要實作前一節中定義的自動移除郵件策略,您必須設定 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 來指定所有過期規則。


表 20–8 imexpire 屬性

屬性 

說明 (屬性值) 

action

指定要對過期規則所發現的郵件執行之動作。可能的值為: 

discard 會捨棄郵件。這是預設。

report 動作會將電子信箱名稱、UID 有效性與 UID 列印至 stdout。

archive 會以 Sun Compliance and Content Management System 進行郵件歸檔,然後捨棄該郵件。

fileinto: folder 動作會將郵件放置於特定資料夾中。共用資料夾字首可用以將郵件放置於其他使用者所擁有的資料夾中。

exclusive

指定此規則是否為專用規則。如果指定為 exclusive,則僅將此規則套用至指定的電子信箱,而忽略其他所有規則。如果存在一個以上的專用規則,則將使用最後載入的專用規則。例如,如果全域專用規則和本機專用規則均已指定,則將使用本機規則。如果有多個的全域專用規則,則使用由 configutil 列出的最後一個全域規則。(1/0)

folderpattern

指定受此規則影響的資料夾。格式必須以 user/ 開頭,代表目錄 store_root/partition/*/。請參閱表 20–9。(POSIX 常規表示式)

messagecount

資料夾中郵件的最大數目。隨著其他郵件被遞送,最舊的郵件會被永久刪除。(整數) 

foldersize

遞送其他郵件時最舊的郵件被永久刪除之前的資料夾空間上限。(以位元組為單位的整數) 

messagedays

郵件在被永久刪除之前的存在時間 (以天為單位)。(整數) 

messagesize

郵件被標記為已永久刪除前的最大大小 (以位元組為單位)。(整數) 

messagesizedays

寬限期。超出大小限制的郵件保留在資料夾中的天數。(整數) 

messageheader.header

指定將郵件標記為移除的標頭欄位和字串。值不區分大小寫,並且無法識別常規表示式。範例:Rule1.messageheader.Subject: Get Rich Now!

對於標頭 ExpiresExpiry-Date,如果在這些標頭欄位中指定的日期值早於 messagedays 屬性所對應的日期,則 imexpire 將移除郵件。如果指定多個過期標頭欄位,則將使用最早的過期日期。(字串)。

regexp

建立規則時啟用 UNIX 常規表示式。(1 或 0)。如果未指定,將使用 IMAP 表示式。 

savedays

郵件在遭到永久刪除前儲存於資料夾中的天數。 

seen

seen 是當使用者開啟郵件時,由系統設定的郵件狀態旗標。若將屬性 seen 設定為 and,則郵件必須已讀取並且必須符合其他條件,才能實作此規則。若將屬性 seen 設定為 or,則郵件只需被讀取符合其他條件,即可實作此規則。(and/or)。

sieve

用以指定郵件選取條件的篩選規則。範例:Rule17.sieve: header :contains “Subject” “Vigara”

deleted

deleted 是當使用者刪除郵件時,由系統設定的郵件狀態旗標。若將屬性 deleted 設定為 and,則郵件必須被刪除並且必須符合其他條件,才能實作此規則。若將屬性 deleted 設定為 or,則郵件只需被讀取符合其他條件,即可實作此規則。(and/or)

本土化電子信箱名稱

IMAP 協定會指定電子信箱名稱使用修改過的 UTF-7 編碼。Messaging Server 支援外部介面的本土化字元集,因此電子信箱名稱可進行本土化。但在內部作業時,系統會將本土化名稱轉換為 UTF-7。因此,用戶端上具有本土化電子信箱名稱的資料夾,將具有 UTF-7 格式的對應電子信箱檔案名稱。(請注意,IMAP 錯誤訊息會以 UTF-7 輸出電子信箱名稱,而非使用本土化字元集。)

一般而言,大部分需要電子信箱名稱的郵件儲存公用程式皆具有選項旗標而可設定成使用其他字元集,但它們仍預期名稱應以本土化字元集顯示。這些公用程式包括 reconstructmboxutilimsbackupimsrestorehashdir。但 imexpire 則要求電子信箱名稱必須使用 UTF-7,如屬性 folderpattern 所指定。使用本土化名稱無法運作。

若要取得 imexpire 的適當 folderpattern,可能必須將本土化電子信箱名稱轉換為修改過的 UTF-7 對等項目。使用 mboxutil -E 指令可執行此作業,如下所示:

顯示本土化檔名與修改過的 UTF-7 檔名之 mboxutil。

第一個 mboxutil 顯示本土化檔名。第二個 mboxutil 以修改過的 UTF-7 顯示檔名。您也可以使用 IMAP 清單指令:

IMAP 清單指令

以文字形式設定 imexpire 規則

透過在 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 設定全域過期策略 (即套用至所有郵件的策略),內容如下:

Rule 2 為 siroe.com 託管網域中的使用者設定自動移除郵件策略。它限制電子信箱的容量不得超過 1 兆位元組,移除已刪除的郵件,並移除存放時間超過 14 天的郵件。

Rule 3 為使用者 f.dostoevskiinbox 資料夾中的郵件設定自動移除郵件策略。它會移除主旨行中包含「On-line Casino」字句的郵件。


範例 20–4 imexpire 規則範例


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 資料夾式樣

可透過將 imexpire 屬性 regex 設定為 1,將資料夾式樣指定為使用 POSIX 常規表示式。如果未指定,則將會使用 IMAP 表示式。此格式必須以 user/ 開頭,後跟式樣。表 20–9 顯示各種資料夾的資料夾式樣。)

表 20–9 使用常規表示式的 imexpire 資料夾式樣

資料夾式樣 

範圍 

user/userid/.*

將規則套用至 userid 下所有資料夾中的所有郵件。

user/userid/Sent

將規則套用至 useridSent 資料夾中的郵件:

user/.*

將規則套用至全部郵件儲存。 

user/.*/trash

將規則套用至所有使用者的 trash 資料夾。

user/.*@siroe.com/.*

將規則套用至託管網域 siroe.com 中的資料夾: 

user/[^@]*/.*

將規則套用至預設網域中的資料夾。