前の節で定義した自動メッセージ削除ポリシーを実装するには、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 2005Q4 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 リリース以降でのみ実装されたことに注意してください。
複数の有効期限ルールが同時に 1 つのメールボックスに適用できます。メールボックスに対する有効期限ポリシーは、グローバルルールとローカルルールで構成されます。ローカルルールは同一ディレクトリのメールボックスおよびそのサブフォルダのすべてに適用されます。
メールボックスに排他的なルールが指定されていないかぎり、imexpire によって、そのメールボックスに適用されているすべての有効期限ルールが結合されます (表 18–8 を参照)。その結果、ルールセットには、すべての適用可能なルールの中からもっとも制約度の高い有効期限ポリシーが採用されます。たとえば、メッセージの最長存続期間がルール X によって 10 日間、ルール Y によって 5 日間と指定されている場合、結合結果は 5 日間となります。
属性 |
説明 (属性値) |
---|---|
ルールが排他的であるかどうかを指定します。exclusive として指定すると、指定したメールボックスにこのルールのみが適用され、これ以外のルールはすべて無視されます。複数の排他的なルールが存在する場合、最後にロードされた排他的なルールが使用されます。たとえば、グローバルな排他的ルールおよびローカルな排他的ルールが指定された場合、ローカルルールが使用されます。グローバルな排他的ルールが複数存在する場合、configutil によって最後にリストされたグローバルルールが使用されます。(1/ 0) |
|
このルールによって影響を受けるフォルダを指定します。形式は user/ で始まる必要があり、これはディレクトリ store_root/partition/*/ を表します。図 18–4 および表 18–9 を参照してください。(POSIX 正規表現) |
|
フォルダ内の最大メッセージ数です。この数を超える新しいメッセージが配信されると、もっとも古いメッセージが消去されます。(整数) |
|
新しいメッセージが配信されたときにもっとも古いメッセージが消去される前のフォルダの最大サイズです。(バイトを表す整数) |
|
メッセージが消去されるまでの存続日数です。(整数) |
|
消去のマークが付けられる前のメッセージの最大サイズです。(整数) |
|
猶予期間。指定されたサイズを超えたメッセージをフォルダに残さなければならない日数です。(整数) |
|
メッセージのヘッダーフィールド |
メッセージに削除のマークを付けるためのヘッダーフィールドと文字列を指定します。値は大文字と小文字が区別されず、正規表現は認識されません。次に例を示します。 Rule1.Subject: Get Rich Now! Expires ヘッダーや Expiry-Date ヘッダーについては、これらのヘッダーフィールドで指定された日付の値が messagedays 属性よりも古い場合、imexpire によってそのメッセージは削除されます。有効期限に関するヘッダーフィールドが複数指定された場合、もっとも古い有効期限が使用されます。(文字列)。 |
regexp |
UNIX 正規表現をルール作成において有効にします。(1 または 0)。この属性を指定しないと、IMAP 表現が使用されます。 |
seen はメッセージのステータスフラグの 1 つであり、ユーザーがメッセージを開いたときにシステムによって設定されます。seen 属性が and に設定されている場合、メッセージが開封済みであり、かつ、ほかの条件が満たされていればルールは適用されます。seen 属性が or に設定されている場合、メッセージが開封済みであるか、または、もう 1 つの条件が満たされていればルールは適用されます。(and/or)。 |
|
deleted はメッセージのステータスフラグの 1 つであり、ユーザーがメッセージを削除したときにシステムによって設定されます。属性 deleted が and に設定されている場合、メッセージが削除済みであり、かつ、もう 1 つの条件が満たされていればルールは適用されます。deleted 属性が or に設定されている場合、メッセージが開封済みであるか、または、もう 1 つの条件が満たされていればルールは適用されます。(and/or) |
自動メッセージ削除ルールは、store.expirerule ファイルにルールを指定することによって設定します。store.expirerule ファイルは、1 行につき 1 つの有効期限条件を含みます。グローバルルール設定ファイル (msg_svr_base/data/store/store.expirerule) の有効期限条件は、次の形式になっています。
rule_name.attribute : value
ユーザーまたはメールボックスのルール設定ファイルの有効期限ルールは、次の形式になっています。
attribute: value
例 18–1 に、msg_svr_base /config/store.expirerule の一連のグローバル有効期限ルールを示します。
Rule 1 では、グローバル有効期限ポリシー (すべてのメッセージに適用されるポリシー) を設定しています。設定内容は次のとおりです。
UNIX 正規表現をルール作成において有効にします。
100,000 バイトよりも大きいメッセージを 3 日後に削除します。
ユーザーによって削除済みとされたメッセージを削除します。
「Viagra Now!」または「XXX Porn!」という文字列が Subject: ヘッダーにあるメッセージをすべて削除します。
すべてのフォルダのメッセージ数を 1,000 件までに制限します。1,000 件を超えた場合、フォルダ内でもっとも古いメッセージを削除して合計件数を 1,000 以内に維持します。
存続期間が 365 日よりも長いメッセージをすべて削除します。
Rule 2 では、ホストしているドメインが siroe.com のユーザーに対して自動メッセージ削除ポリシーを設定しています。メールボックスサイズを 1M バイトに制限し、削除済みメッセージを削除し、存続期間が 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* |
フォルダパターンは POSIX 正規表現を使用して指定できます。このためには、imexpire 属性の regex を 1 に設定します。この属性を指定しないと、IMAP 表現が使用されます。この形式は user/ で始まり、そのあとにパターンが続きます。表 18–9 に、各種フォルダのフォルダパターンを示します。
表 18–9 正規表現を使用した imexpire フォルダパターン
フォルダパターン |
適用範囲 |
---|---|
user/userid/.* |
userid のすべてのフォルダ内にあるすべてのメッセージに規則を適用します。 |
user/userid/Sent |
userid のフォルダ Sent: 内のメッセージに規則を適用します。 |
user/.* |
メッセージストア全体に規則を適用します。 |
user/.*/trash |
すべてのユーザーの trash フォルダに規則を適用します。 |
user/.*@siroe.com/.* |
ホストされたドメイン siroe.com: 内のフォルダに規則を適用します。 |
user/[^@]*/.* |
デフォルトドメイン内のフォルダに規則を適用します。 |
グローバル有効期限ルールは、コンソールを使用して設定することもできますが、store.expirerule を使用する方法をお勧めします。コンソールまたは configutil を使用して多数のルールを作成すると、パフォーマンスの問題が発生することがあります。
メインコンソール -> サーバーグループ -> Messaging Server (開く) -> Messaging Server コンソール -> 設定タブ -> メッセージストア -> 有効期限/消去 -> 追加
この GUI の略図を図 18–4 に示します。
新しいルールの名前を入力します。
メッセージを自動的に削除するフォルダを入力します。
詳細については、前述の 「imexpire フォルダパターンを設定する」を参照してください。
このルールが指定した条件と一致するフォルダに対する排他的なルールである場合は、「排他」ボックスをクリックします。
このボックスにチェックマークを付けると、このルールが、指定したパターンに一致するほかのすべてのルールに優先します。「排他」チェックボックスの詳細については、表 18–8 を参照してください。
フォルダサイズに基づいてルールを作成するには、次を実行します。
「フォルダサイズの制限」チェックボックスにチェックマークを入れます。「メッセージの件数」フィールドには、もっとも古いメッセージが削除されるまでフォルダ内に保持されるメッセージの最大件数を指定します。「フォルダサイズ」フィールドには、もっとも古いメッセージが削除されるまで保持されるフォルダの最大サイズをバイト単位で指定します。
メッセージの存続期間に基づいてルールを作成するには、「メッセージ存続期間の制約」チェックボックスにチェックマークを付けます。
「日数」フィールドで、メッセージがフォルダに保持される期間を日数で指定します。
メッセージサイズに基づいてルールを作成するには、以下を実行します。
「メッセージサイズの制約」チェックボックスにチェックマークを入れます。「メッセージサイズの制限」フィールドに、フォルダで許可されるメッセージの最大サイズを入力します。「猶予期間」フィールドに、サイズを超過したメッセージがフォルダ内に保持される (削除されるまでの) 期間を入力します。
「開封済み」または「削除済み」メッセージフラグが設定されているかどうかに基づいてルールを作成するには、以下を実行します。
「メッセージフラグの制約」チェックボックスにチェックマークを入れます。
「開封済み:」フィールドでは、「および」を選択すると、メッセージが開封済みであり、かつ、もう 1 つの条件を満たしている場合にルールを適用することを指定できます。「または」を選択すると、メッセージが開封済みであるか、または、もう 1 つの条件を満たしている場合にルールを適用することを指定できます。
「削除済み:」フィールドでは、「および」を選択すると、メッセージが削除済みであり、かつ、もう 1 つの条件を満たしている場合にルールを適用することを指定できます。「または」を選択すると、メッセージが削除済みであるか、または、もう 1 つの条件を満たしている場合にルールを適用することを指定できます。
ヘッダーフィールドとその値に基づいてルールを作成するには、以下を実行します。
「ヘッダーの制約」チェックボックスにチェックマークを入れます。
ヘッダーと値のリストを次の形式でコンマで区切って入力します。
header1: value1, header2 : value2
次に例を示します。Subject: Work at Home!,From: virus@sesta.com
Expires ヘッダーや Expiry-Date ヘッダーで、日付の値が「メッセージの存続期間の制約」よりも古い場合、メッセージは削除されます。有効期限に関するヘッダーフィールドが複数指定された場合、もっとも古い有効期限が使用されます。(文字列)。
「了解」をクリックすると、新しいルールが自動メッセージ削除リストに追加されます。