Sun Java System Messaging Server 6.3 管理ガイド

20.7 メッセージタイプの管理

この節では、次の内容について説明します。

20.7.1 メッセージタイプの概要

統合されたメッセージングアプリケーションでは、テキストメッセージ、ボイスメール、FAX メール、イメージデータ、その他のデータ形式など、多くの種類のメッセージの受信、送信、格納、および管理を行うことができます。メッセージストアでは、最大 63 種類のメッセージタイプを定義できます。

メッセージをタイプ別に操作する 1 つの方法は、メッセージをタイプごとのフォルダに振り分けることです。

メッセージタイプの機能を導入しても、異なるメッセージタイプを個別のメールボックスフォルダで管理する必要はありません。メッセージタイプを設定すると、メッセージストアはそのメッセージタイプを格納場所に関係なく識別できます。したがって、同じフォルダ内に異なるタイプのメッセージを格納できます。また、次のような作業も行えます。

20.7.1.1 メッセージタイプ設定の計画

統合されたメッセージングアプリケーションでは、Messaging Server がデータを格納して管理できるように、標準のインターネットメッセージヘッダーに異なる形式のデータが指定されます。たとえば、ボイスメールがエンドユーザーの電話に送信された場合、電話フロントエンドシステムは着信したボイスメールにメッセージヘッダーを追加し、それをメッセージストアに配信します。

タイプの異なるメッセージを認識して管理するには、統合メッセージングシステムのすべてのコンポーネントが同じメッセージタイプ定義と同じヘッダーフィールドを使用してメッセージを識別する必要があります。

メッセージタイプをサポートするようにメッセージストアを設定する前に、次の作業を実行してください。

たとえば、アプリケーションに電話メッセージが含まれる場合は、そのメッセージタイプを「multipart/voice-message」として定義し、Content-Type ヘッダーを使用してメッセージタイプを識別することができます。

その場合は、メッセージストアに配信される各電話メッセージに次のヘッダー情報を追加するように電話フロントエンドシステムを設定します。

Content-Type: multipart/voice-message

次に、次の各節の説明に従って、multipart/voice-message メッセージタイプを認識するようにメッセージストアを設定します。

20.7.1.2 メッセージタイプの定義と使用

メッセージタイプを定義するには、そのメッセージタイプに対して multipart/voice-message などの一意の定義を指定します。デフォルトでは、メッセージストアは Content-Type ヘッダーフィールドを読み取ってメッセージタイプを判定します。必要に応じて、メッセージタイプを識別するための別のヘッダーフィールドを設定できます。

メッセージストアは、Content-Type (または指定されたほかの) ヘッダーフィールドを読み取ります。値の大文字と小文字は区別されません。つまり、ヘッダーの大文字と小文字の組み合わせが予想される組み合わせと異なっても、メッセージストアはヘッダーフィールドを有効なものとして受け入れます。

メッセージストアは、ヘッダーフィールド内のメッセージタイプ名のみを読み取ります。ほかの引数やパラメータは無視されます。

メッセージタイプを定義するには、configutil ユーティリティーを使用して store.messagetype パラメータの値を設定します。手順については、「メッセージタイプを設定する」を参照してください。

メッセージタイプを設定することにより、メッセージストアは指定されたタイプのメッセージを識別して操作できるようになります。これは、統合メッセージングアプリケーションでメッセージタイプを管理するための最初の重要な手順です。

メッセージストアによって提供されるメッセージタイプの機能を十分に利用するには、次の作業の一部またはすべてを実行するようにしてください。

これらの作業については、次の各節で説明します。

Procedureメッセージタイプを設定する

メッセージタイプを設定するには、configutil ユーティリティーを使用して、メッセージタイプを定義および識別する store.messagetype パラメータの値を設定します。

  1. store.messagetype.enable パラメータを on に設定することにより、メッセージタイプを有効にします。

    この configutil パラメータにより、メッセージストアはメッセージタイプを識別して操作できるようになります。個々のメッセージタイプを設定する前に、このパラメータを設定してください。

    たとえば、次のコマンドを入力します。


    configutil -o store.messagetype.enable -v 1
  2. store.messagetype.x パラメータを設定することにより、メッセージタイプを定義および識別します。

    変数 x によって、このメッセージタイプがメッセージストア内で識別されます。変数 x は 1 〜 63 の整数である必要があります。一意の整数を使用してこのパラメータを繰り返し設定することにより、最大 63 件のメッセージタイプを定義できます。

    メッセージタイプの値は、そのタイプを記述するテキスト文字列を使用して定義します。

    たとえば、テキストメッセージタイプを定義するには、次のコマンドを入力します。


    configutil -o store.messagetype.1 -v text/plain

    ボイスメッセージタイプを定義するには、次のコマンドを入力します。


    configutil -o store.messagetype.2 -v multipart/voice-message
  3. store.messagetype.x.flagname パラメータを設定することにより、メッセージタイプのフラグ名を指定します。

    このパラメータによって、メッセージタイプを識別する一意のフラグが作成されます。このフラグは、このタイプのメッセージがメッセージストアに最初に到着したときに自動的に設定され、メッセージが消去されるまでそのメッセージに関連付けられています。フラグ名の値は、メッセージタイプを記述するテキスト文字列です。これは、store.messagetype.x パラメータに設定された値と同じである必要はありません。

    変数 x は、store.messagetype.x パラメータで定義されたメッセージタイプを示す整数の ID です。

    たとえば、前述の手順で設定されたメッセージタイプのフラグ名を定義するには、次のコマンドを入力します。


    configutil -o store.messagetype.1.flagname -v text
    
    configutil -o store.messagetype.2.flagname -v voice_message
  4. store.messagetype.x.quotaroot パラメータを設定することにより、メッセージタイプの制限容量を指定したルートを設定します。

    このパラメータにより、このメッセージタイプの制限容量を指定したルートを識別して管理するための制限容量機能が有効になります。このパラメータの値は、名前 (メッセージタイプを記述するテキスト文字列) です。これは、store.messagetype.x パラメータに設定された値と同じである必要はありません。

    変数 x は、store.messagetype.x パラメータで定義されたメッセージタイプを示す整数の ID です。

    このパラメータを設定すると、指定したメッセージタイプに適用される制限容量を設定できます。詳細は、「20.7.4 メッセージタイプごとの制限容量の管理」を参照してください。

    たとえば、前述の手順で設定されたメッセージタイプの制限容量を指定したルートの使用を有効にするには、次のコマンドを入力します。


    configutil -o store.messagetype.1.quotaroot -v text
    
    configutil -o store.messagetype.2.quotaroot -v voice
  5. メッセージタイプを識別するための代替ヘッダーフィールドを設定するには、store.messagetype.header パラメータを設定します。

    デフォルトでは、メッセージストアは Content-Type ヘッダーフィールドを読み取ってメッセージタイプを判定します。store.messagetype.header パラメータは、別のヘッダーフィールドを使用してメッセージタイプを識別する場合にのみ設定してください。このパラメータの値はテキスト文字列です。

    たとえば、X-Message-Type という名前のフィールドを使用するには、次のコマンドを入力します。


    configutil -o store.messagetype.header -v X-Message-Type

20.7.2 IMAP コマンドでのメッセージタイプ

メッセージタイプの store.messagetype.x.flagname パラメータを設定すると、そのメッセージタイプを識別する一意のフラグが作成されます。エンドユーザーはこのフラグを変更できません。

Messaging Server は、このメッセージタイプフラグをユーザーフラグとして IMAP クライアントに提示します。メッセージタイプをユーザーフラグに対応付けることにより、メールクライアントは簡単な IMAP コマンドを使用して、メッセージをメッセージタイプ別に操作できるようになります。

たとえば、次の操作を実行できます。

メッセージタイプユーザーフラグは読み取り専用です。IMAP コマンドを使用して変更することはできません。

次に示す例では、メッセージタイプの configutil パラメータが次の値で設定されていることを想定します。


store.messagetype.enable = yes

store.messagetype.1 = text/plain
store.messagetype.1.flagname = text
store.messagetype.1.quotaroot = text

store.messagetype.2 = multipart/voice-message
store.messagetype.2.flagname = voice_message
store.messagetype.2.quotaroot = voice

例 20–1 メッセージタイプの configutil 設定に基づく IMAP FETCH セッション

次の IMAP セッションでは、現在選択されているメールボックスに対応するメッセージを取得しています。


2 fetch 1:2 (flags rfc822)
* 1 FETCH (FLAGS (\Seen text) RFC822 {164}

Date: Wed, 8 July 2006 03:39:57 -0700 (PDT)
From: bob.smith@siroe.com
To: john.doe@siroe.com
Subject:  Hello
Content-Type: TEXT/plain; charset=us-ascii


* 2 FETCH (FLAGS (\Seen voice_message) RFC822 {164}

Date: Wed, 8 July 2006 04:17:22 -0700 (PDT)
From: sally.lee@siroe.com
To: john.doe@siroe.com
Subject:  Our Meeting
Content-Type: MULTIPART/voice-message; ver=2.0

2 OK COMPLETED

前の例では、1 つのテキストメッセージと 1 つのボイスメールの計 2 つのメッセージが取得されています。

メッセージタイプフラグは、store.messagetype.*.flagname パラメータで設定された形式で表示されます。

メッセージタイプは、Content-Type ヘッダーフィールドによって識別されます。メッセージタイプ名は、受信メッセージ内で受信されたときに表示されます。メッセージタイプ名には、大文字と小文字が混在し、charset=us-ascii などのメッセージタイプ引数が含まれています。



例 20–2 メッセージタイプの configutil 設定に基づく IMAP SEARCH セッション

次の IMAP セッションでは、現在選択されているメールボックスに対応するボイスメッセージを検索しています。


3 search keyword voice_message
* SEARCH 2 4 6 
3 OK COMPLETED

前の例では、2、4、および 6 がボイスメッセージです。検索に使用されたキーワードは、store.messagetype.2.flagname パラメータの値である voice_message です。


20.7.3 メッセージタイプに関する通知メッセージの送信

通知により、テキストメッセージ、ボイスメール、イメージデータなどのさまざまなタイプのメッセージに関するステータス情報を配信できます。Messaging Server は、Sun Java System Message Queue を使用してメッセージタイプに関する通知情報を送信します。Message Queue 用の JMQ 通知プラグインの設定については、第 22 章「Message Queue のためのメッセージを生成する JMQ 通知プラグインの設定」を参照してください。

JMQ 通知プラグインを有効にして特定のメッセージタイプを認識するには、store.messagetype.x.flagname パラメータを含む store.messagetype パラメータを設定する必要があります。詳細は、「メッセージタイプを設定する」を参照してください。

メッセージタイプを設定すると、JMQ 通知メッセージによって特定のメッセージタイプを識別できるようになります。メッセージタイプごとに通知メッセージを解釈し、各タイプに関するステータス情報をメールクライアントに配信するように Message Queue クライアントを記述できます。

JMQ 通知機能では、メールボックスに現在含まれているメッセージの個数がメッセージタイプごとに取得されます。全体の個数ではなく、メッセージタイプごとの個数を指定した配列が通知メッセージによって送信されます。

たとえば、NewMsg 通知メッセージに、7 個の新しいボイスメールメッセージと 4 個の新規テキストメッセージがユーザーの受信箱にあることをユーザーに知らせるデータを格納することができます。

メッセージタイプごとに通知を送信する方法の詳細については、「22.3.3 特定のメッセージタイプに対する通知」を参照してください。

20.7.4 メッセージタイプごとの制限容量の管理

メッセージタイプの制限容量を設定するときは、制限容量を設定したルートにその値を追加します。制限容量を設定したルートには、1 人のユーザーに対する制限容量を指定します。特定のメッセージタイプやメールボックスフォルダに対して異なる制限容量を指定し、タイプによって定義されないほかのすべてのメッセージタイプ、フォルダ、およびメッセージに適用されるデフォルトの制限容量を指定することができます。

制限容量の設定と管理の詳細については、「20.8.2 制限容量の動作方式」を参照してください。

20.7.4.1 メッセージタイプの制限容量を設定する前に

メッセージタイプの制限容量を設定する前に、次のパラメータを設定してください。

20.7.4.2 メッセージタイプの制限容量の設定方法

メッセージタイプの制限容量を設定するには、次のいずれかの方法を使用します。

前述の configutil パラメータまたは LDAP 属性を使用してメッセージタイプの制限容量を設定するときは、store.messagetype.x.quotaroot パラメータに指定した制限容量を設定したルートを使用してください。

20.7.4.3 メッセージタイプの制限容量を設定したルートの例

この節に示す例では、ユーザー joe に対して次の制限容量を設定します。

この制限容量を設定したルートは、ほかのすべてのフォルダおよびメッセージタイプの合計 (60M) より大きい保存容量 (100M) をアーカイブフォルダに許可します。また、アーカイブフォルダに対するメッセージ制限容量は設定されていません。この例では、アーカイブに関しては保存容量の制限のみが問題になります。

メッセージタイプには、保存容量とメッセージ数の両方の制限が設定されます。

メッセージタイプの制限容量は、メッセージがアーカイブフォルダ、またはほかのフォルダのどちらに保存されるかに関係なく、該当するタイプのメッセージすべての合計に対して適用されます。

デフォルトのメールボックス制限容量は、メッセージタイプがテキストでもボイスでもなく、アーカイブフォルダに保存されないすべてのメッセージに対して適用されます。つまり、メッセージタイプの制限容量とアーカイブの制限容量は、デフォルトのメールボックス制限容量の一部として数えられません。

この例の制限容量を設定したルートを設定するには、次の手順を実行します。

  1. store.messagetype.x.quotaroot パラメータを次のように設定します。


    store.messagetype.1.quotaroot = text
    
    store.messagetype.2.quotaroot = voice
  2. ユーザー joe に対する mailQuota 属性を次のように設定します。


    mailQuota: 20M;#text%10M;#voice%10M;Archive%100M
  3. ユーザー joe に対する mailMsgQuota 属性を次のように設定します。


    mailMsgQuota: 5000;#text%2000;#voice%200

getquotaroot IMAP コマンドを実行すると、ユーザー joe のメールボックスに関するすべての制限容量を設定したルートが、実行結果の IMAP セッションに次のように表示されます。


1 getquotaroot INBOX
* QUOTAROOT INBOX user/joe user/joe/#text user/joe/#voice
* QUOTA user/joe (STORAGE 12340 20480 MESSAGE 148 5000)
* QUOTA user/joe/#text (STORAGE 1966 10240 MESSAGE 92 2000)
* QUOTA user/joe/#voice (STORAGE 7050 10240 MESSAGE 24 200)

2 getquotaroot Archive
* QUOTAROOT user/joe/Archive user/joe/#text user/joe/#voice
* QUOTA user/joe/Archive (STORAGE 35424 102400)
* QUOTA user/joe/#text (STORAGE 1966 10240 MESSAGE 92 2000)

* QUOTA user/joe/#voice (STORAGE 7050 10240 MESSAGE 24 200)

20.7.5 メッセージタイプごとのメッセージの有効期限切れ

有効期限および消去機能により、有効期限ルールで定義した条件に従って、メッセージのフォルダ間移動、メッセージのアーカイブ、およびメッセージストアからのメッセージの消去を実行できます。これらの作業は、imexpire ユーティリティーを使用して実行します。

imexpire ユーティリティーは管理者によって実行されるため、制限容量の適用は省略されます。

有効期限ルールの作成方法と imexpire ユーティリティーの使用方法については、「20.9 自動メッセージ削除 (有効期限および消去) 機能を設定する」を参照してください。

有効期限ルールを作成することにより、異なるタイプのメッセージを異なる条件に従って有効期限切れにすることができます。

有効期限機能は柔軟性がきわめて高く、さまざまなオプションを使用して有効期限切れの条件を設定できます。この節では、テキストメッセージとボイスメッセージが異なる条件に従って有効期限切れになる例を示します。

この例では、テキストメッセージタイプとボイスメッセージタイプが次のように設定されていることを想定します。


store.messagetype.1 = text/plain

store.messagetype.2 = multipart/voice-message

また、メッセージストアが Content-Type ヘッダーフィールドを読み取ってメッセージタイプを判定するように設定されていることを想定します。


例 20–3 異なるメッセージタイプを有効期限切れにするためのルール例


TextInbox.folderpattern: user/%/INBOX
TextInbox.messageheader.Content-Type: text/plain
TextInbox.messagedays: 365
TextInbox.action: fileinto:Archive


VoiceInbox.folderpattern: user/%/INBOX
VoiceInbox.messageheader.Content-Type: multipart/voice-message
VoiceInbox.savedays: 14
VoiceInbox.action: fileinto:OldMail

VoiceOldMail.folderpattern: user/%/OldMail
VoiceOldMail.messageheader.Content-Type: multipart/voice-message
VoiceOldMail.savedays: 30
VoiceOldMail.action: fileinto:Trash

Trash.folderpattern: user/%/Trash
Trash.savedays: 7
Trash.action: discard

この例では、テキストメッセージとボイスメールが次のように異なる方法で有効期限切れになり、異なるスケジュールに従います。

注意: savedays ルールにより、メッセージを保存してから指定された日数が経過すると、そのメッセージは有効期限切れになります。一般的なボイスメールシステムでは、ユーザーはボイスメールメニューでボイスメールを保存できます。テキストメッセージの場合は、ほかのフォルダに移動したときにメッセージが保存されます。messagedays ルールにより、メッセージがメッセージストアに最初に到着してから指定された日数が経過すると、メッセージが保存されたフォルダやメッセージの移動回数に関係なく、そのメッセージは有効期限切れになります。