前の節で定義した自動メッセージ削除ポリシーを実装するには、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 を使用してすべての有効期限ルールを指定することをお勧めします。
ルールは、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 によって、そのメールボックスに適用されているすべての有効期限ルールが結合されます (表 20–8 を参照)。その結果、ルールセットには、すべての適用可能なルールの中からもっとも制約度の高い有効期限ポリシーが採用されます。たとえば、メッセージの最長存続期間がルール X によって 10 日間、ルール Y によって 5 日間と指定されている場合、結合結果は 5 日間となります。
属性 |
説明 (属性値) |
---|---|
有効期限ルールによって捕捉されたメッセージに対して実行するアクションを指定します。使用可能な値は次のとおりです。 discard は、メッセージを破棄します。これがデフォルトです。 report アクションは、メールボックス名、UID 有効期間、および UID を標準出力に出力します。 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 はメッセージのステータスフラグの 1 つであり、ユーザーがメッセージを開いたときにシステムによって設定されます。seen 属性が and に設定されている場合、メッセージが開封済みであり、かつ、ほかの条件が満たされていればルールは適用されます。seen 属性が or に設定されている場合、メッセージが開封済みであるか、または、もう 1 つの条件が満たされていればルールは適用されます。(and/or)。 |
|
メッセージ選択条件を指定する Sieve ルールです。例: Rule17.sieve: header :contains "Subject" "Vigara" |
|
deleted はメッセージのステータスフラグの 1 つであり、ユーザーがメッセージを削除したときにシステムによって設定されます。属性 deleted が and に設定されている場合、メッセージが削除済みであり、かつ、もう 1 つの条件が満たされていればルールは適用されます。deleted 属性が or に設定されている場合、メッセージが開封済みであるか、または、もう 1 つの条件が満たされていればルールは適用されます。(and/or) |
|
action |
|
IMAP プロトコルでは、メールボックス名に modified UTF-7 形式のエンコーディングを使用するように規定されています。Messaging Server は、メールボックス名をローカライズできるように、外部インタフェース上のローカライズされた文字セットをサポートします。ただし、システムの内部ではローカライズされた名前が UTF-7 に変換されるため、クライアント上でローカライズされたメールボックス名を持つフォルダには、それに対応する UTF-7 形式のメールボックスファイル名が設定されます。(IMAP のエラーメッセージでは、ローカライズされた文字セットではなく、UTF-7 形式でメールボックス名が出力されます。)
一般に、メールボックス名を必要とするほとんどのメッセージストアユーティリティーでは、ローカライズされた文字セットによるメールボックス名が想定されていますが、異なる文字セットを使用できるようにするオプションフラグが用意されている場合もあります。これらのユーティリティーには、reconstruct、mboxutil、imsbackup、imsrestore、hashdir などがあります。ただし、imexpire では、folderpattern 属性として指定するメールボックス名を UTF-7 形式にする必要があります。ローカライズされた名前を使用すると機能しません。
imexpire に使用する適切な folderpattern を取得するには、ローカライズされたメールボックス名を modified UTF-7 形式に変換する必要がある場合があります。この作業は、次のように mboxutil -E コマンドを使用して行います。
1 つ目の mboxutil では、ローカライズされたファイル名が表示されています。2 つ目の mboxutil では、modified UTF-7 形式のファイル名が表示されています。次のように、IMAP の list コマンドを使用することもできます。
自動メッセージ削除ルールは、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 では、グローバル有効期限ポリシー (すべてのメッセージに適用されるポリシー) を設定しています。設定内容は次のとおりです。
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/ で始まり、そのあとにパターンが続きます。表 20–9 に、各種フォルダのフォルダパターンを示します。
表 20–9 正規表現を使用した imexpire フォルダパターン
フォルダパターン |
範囲 |
---|---|
user/userid/.* |
userid のすべてのフォルダ内にあるすべてのメッセージに規則を適用します。 |
user/userid/Sent |
userid のフォルダ Sent: 内のメッセージに規則を適用します。 |
user/.* |
メッセージストア全体に規則を適用します。 |
user/.*/trash |
すべてのユーザーの trash フォルダに規則を適用します。 |
user/.*@siroe.com/.* |
ホストドメイン siroe.com: 内のフォルダに規則を適用します。 |
user/[^@]*/.* |
デフォルトドメイン内のフォルダに規則を適用します。 |