Sun Java System Messaging Server 6.3 管理ガイド

20.9.2.2 自動メッセージ削除ポリシーを実装するルールを設定する

前の節で定義した自動メッセージ削除ポリシーを実装するには、imexpire ルールを設定する必要があります。ルールを設定するには、ルールを store.expirerule ファイルに追加します。2 つの store.expirerule グローバルルールの例を次に示します。


Rule1.regexp: 1
Rule1.folderpattern: user/.*/trash
Rule1.messagedays: 2
Rule2:regexp: 1
Rule2.folderpattern: user/.*
Rule2.messagedays: 14

            

この例では、Rule 1 でごみ箱フォルダ内のすべてのメッセージが 2 日後に削除されることを指定しています。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 を標準出力に出力します。

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!

Expires ヘッダーや Expiry-Date ヘッダーについては、これらのヘッダーフィールドで指定された日付の値が messagedays 属性よりも古い場合、imexpire によってそのメッセージは削除されます。有効期限に関するヘッダーフィールドが複数指定された場合、もっとも古い有効期限が使用されます。(文字列)。

regexp

UNIX 正規表現をルール作成において有効にします。(1 または 0)。この属性を指定しないと、IMAP 表現が使用されます。 

savedays

メッセージがフォルダに保存されてから削除されるまでの日数です。 

seen

seen はメッセージのステータスフラグの 1 つであり、ユーザーがメッセージを開いたときにシステムによって設定されます。seen 属性が and に設定されている場合、メッセージが開封済みであり、かつ、ほかの条件が満たされていればルールは適用されます。seen 属性が or に設定されている場合、メッセージが開封済みであるか、または、もう 1 つの条件が満たされていればルールは適用されます。(and/or)。

sieve

メッセージ選択条件を指定する Sieve ルールです。例: Rule17.sieve: header :contains "Subject" "Vigara"

deleted

deleted はメッセージのステータスフラグの 1 つであり、ユーザーがメッセージを削除したときにシステムによって設定されます。属性 deletedand に設定されている場合、メッセージが削除済みであり、かつ、もう 1 つの条件が満たされていればルールは適用されます。deleted 属性が or に設定されている場合、メッセージが開封済みであるか、または、もう 1 つの条件が満たされていればルールは適用されます。(and/or)

action

 

ローカライズされたメールボックス名

IMAP プロトコルでは、メールボックス名に modified UTF-7 形式のエンコーディングを使用するように規定されています。Messaging Server は、メールボックス名をローカライズできるように、外部インタフェース上のローカライズされた文字セットをサポートします。ただし、システムの内部ではローカライズされた名前が UTF-7 に変換されるため、クライアント上でローカライズされたメールボックス名を持つフォルダには、それに対応する UTF-7 形式のメールボックスファイル名が設定されます。(IMAP のエラーメッセージでは、ローカライズされた文字セットではなく、UTF-7 形式でメールボックス名が出力されます。)

一般に、メールボックス名を必要とするほとんどのメッセージストアユーティリティーでは、ローカライズされた文字セットによるメールボックス名が想定されていますが、異なる文字セットを使用できるようにするオプションフラグが用意されている場合もあります。これらのユーティリティーには、reconstructmboxutilimsbackupimsrestorehashdir などがあります。ただし、imexpire では、folderpattern 属性として指定するメールボックス名を UTF-7 形式にする必要があります。ローカライズされた名前を使用すると機能しません。

imexpire に使用する適切な folderpattern を取得するには、ローカライズされたメールボックス名を modified UTF-7 形式に変換する必要がある場合があります。この作業は、次のように mboxutil -E コマンドを使用して行います。

mboxutil で、ローカライズされたファイル名と modified UTF-7 形式のファイル名を表示する。

1 つ目の mboxutil では、ローカライズされたファイル名が表示されています。2 つ目の mboxutil では、modified UTF-7 形式のファイル名が表示されています。次のように、IMAP の list コマンドを使用することもできます。

IMAP の list コマンド

imexpire ルールをテキストモードで設定する

自動メッセージ削除ルールは、store.expirerule ファイルにルールを指定することによって設定します。store.expirerule ファイルは、1 行につき 1 つの有効期限条件を含みます。グローバルルール設定ファイル (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 のユーザーに対して自動メッセージ削除ポリシーを設定しています。メールボックスサイズを 1M バイトに制限し、削除済みメッセージを削除し、存続期間が 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 フォルダパターンを設定する

フォルダパターンは POSIX 正規表現を使用して指定できます。このためには、imexpire 属性の regex を 1 に設定します。この属性を指定しないと、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/[^@]*/.*

デフォルトドメイン内のフォルダに規則を適用します。