この節では、次の内容について説明します。
統合されたメッセージングアプリケーションでは、テキストメッセージ、ボイスメール、FAX メール、イメージデータ、その他のデータ形式など、多くの種類のメッセージの受信、送信、格納、および管理を行うことができます。メッセージストアでは、最大 63 種類のメッセージタイプを定義できます。
メッセージをタイプ別に操作する 1 つの方法は、メッセージをタイプごとのフォルダに振り分けることです。
メッセージタイプの機能を導入しても、異なるメッセージタイプを個別のメールボックスフォルダで管理する必要はありません。メッセージタイプを設定すると、メッセージストアはそのメッセージタイプを格納場所に関係なく識別できます。したがって、同じフォルダ内に異なるタイプのメッセージを格納できます。また、次のような作業も行えます。
メッセージタイプの使用量を追跡する
メッセージタイプごとにグループ化した通知を送信する
格納場所が同じフォルダか異なるフォルダかに関係なく、メッセージタイプごとに制限容量を設定して管理する
メッセージタイプごとに一意に設定した条件に従って、フォルダ間でメッセージを移動する
メッセージタイプごとに設定した条件に従って、メッセージを有効期限切れにする
統合されたメッセージングアプリケーションでは、Messaging Server がデータを格納して管理できるように、標準のインターネットメッセージヘッダーに異なる形式のデータが指定されます。たとえば、ボイスメールがエンドユーザーの電話に送信された場合、電話フロントエンドシステムは着信したボイスメールにメッセージヘッダーを追加し、それをメッセージストアに配信します。
タイプの異なるメッセージを認識して管理するには、統合メッセージングシステムのすべてのコンポーネントが同じメッセージタイプ定義と同じヘッダーフィールドを使用してメッセージを識別する必要があります。
メッセージタイプをサポートするようにメッセージストアを設定する前に、次の作業を実行してください。
使用するメッセージストアを計画する
各メッセージストアの定義を決定する
使用するヘッダーフィールドを決定する
たとえば、アプリケーションに電話メッセージが含まれる場合は、そのメッセージタイプを「multipart/voice-message」として定義し、Content-Type ヘッダーを使用してメッセージタイプを識別することができます。
その場合は、メッセージストアに配信される各電話メッセージに次のヘッダー情報を追加するように電話フロントエンドシステムを設定します。
Content-Type: multipart/voice-message
次に、次の各節の説明に従って、multipart/voice-message メッセージタイプを認識するようにメッセージストアを設定します。
メッセージタイプを定義するには、そのメッセージタイプに対して multipart/voice-message などの一意の定義を指定します。デフォルトでは、メッセージストアは Content-Type ヘッダーフィールドを読み取ってメッセージタイプを判定します。必要に応じて、メッセージタイプを識別するための別のヘッダーフィールドを設定できます。
メッセージストアは、Content-Type (または指定されたほかの) ヘッダーフィールドを読み取ります。値の大文字と小文字は区別されません。つまり、ヘッダーの大文字と小文字の組み合わせが予想される組み合わせと異なっても、メッセージストアはヘッダーフィールドを有効なものとして受け入れます。
メッセージストアは、ヘッダーフィールド内のメッセージタイプ名のみを読み取ります。ほかの引数やパラメータは無視されます。
メッセージタイプを定義するには、configutil ユーティリティーを使用して store.messagetype パラメータの値を設定します。手順については、「メッセージタイプを設定する」を参照してください。
メッセージタイプを設定することにより、メッセージストアは指定されたタイプのメッセージを識別して操作できるようになります。これは、統合メッセージングアプリケーションでメッセージタイプを管理するための最初の重要な手順です。
メッセージストアによって提供されるメッセージタイプの機能を十分に利用するには、次の作業の一部またはすべてを実行するようにしてください。
JMQ 通知プラグインを設定し、メッセージタイプのステータスを追跡する通知を取得するための Message Queue クライアントを記述する
各メッセージタイプに適用される制限容量を指定したルートを設定する
有効期限ルールを記述し、メッセージタイプに応じてメッセージの有効期限切れと消去を行うための LDAP 属性値を設定する
これらの作業については、次の各節で説明します。
メッセージタイプを設定するには、configutil ユーティリティーを使用して、メッセージタイプを定義および識別する store.messagetype パラメータの値を設定します。
store.messagetype.enable パラメータを on に設定することにより、メッセージタイプを有効にします。
この configutil パラメータにより、メッセージストアはメッセージタイプを識別して操作できるようになります。個々のメッセージタイプを設定する前に、このパラメータを設定してください。
たとえば、次のコマンドを入力します。
configutil -o store.messagetype.enable -v 1 |
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 |
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 |
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 |
メッセージタイプを識別するための代替ヘッダーフィールドを設定するには、store.messagetype.header パラメータを設定します。
デフォルトでは、メッセージストアは Content-Type ヘッダーフィールドを読み取ってメッセージタイプを判定します。store.messagetype.header パラメータは、別のヘッダーフィールドを使用してメッセージタイプを識別する場合にのみ設定してください。このパラメータの値はテキスト文字列です。
たとえば、X-Message-Type という名前のフィールドを使用するには、次のコマンドを入力します。
configutil -o store.messagetype.header -v X-Message-Type |
メッセージタイプの store.messagetype.x.flagname パラメータを設定すると、そのメッセージタイプを識別する一意のフラグが作成されます。エンドユーザーはこのフラグを変更できません。
Messaging Server は、このメッセージタイプフラグをユーザーフラグとして IMAP クライアントに提示します。メッセージタイプをユーザーフラグに対応付けることにより、メールクライアントは簡単な IMAP コマンドを使用して、メッセージをメッセージタイプ別に操作できるようになります。
たとえば、次の操作を実行できます。
IMAP FETCH FLAGS コマンドを使用して、メッセージタイプフラグ名をユーザー定義フラグとしてクライアントに表示します。
IMAP FETCH FLAGS コマンドの使用例については、次に示す例 20–1 を参照してください。
メッセージタイプフラグを IMAP SEARCH コマンド内のキーワードとして使用します。
IMAP SEARCH コマンドの使用例については、次に示す例 20–1 を参照してください。
メッセージタイプユーザーフラグは読み取り専用です。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 |
次の 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 などのメッセージタイプ引数が含まれています。
次の IMAP セッションでは、現在選択されているメールボックスに対応するボイスメッセージを検索しています。
3 search keyword voice_message * SEARCH 2 4 6 3 OK COMPLETED |
前の例では、2、4、および 6 がボイスメッセージです。検索に使用されたキーワードは、store.messagetype.2.flagname パラメータの値である voice_message です。
通知により、テキストメッセージ、ボイスメール、イメージデータなどのさまざまなタイプのメッセージに関するステータス情報を配信できます。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 特定のメッセージタイプに対する通知」を参照してください。
メッセージタイプの制限容量を設定するときは、制限容量を設定したルートにその値を追加します。制限容量を設定したルートには、1 人のユーザーに対する制限容量を指定します。特定のメッセージタイプやメールボックスフォルダに対して異なる制限容量を指定し、タイプによって定義されないほかのすべてのメッセージタイプ、フォルダ、およびメッセージに適用されるデフォルトの制限容量を指定することができます。
制限容量の設定と管理の詳細については、「20.8.2 制限容量の動作方式」を参照してください。
メッセージタイプの制限容量を設定する前に、次のパラメータを設定してください。
各メッセージタイプの store.messagetype.x.quotaroot パラメータを設定します。詳細は、「メッセージタイプを設定する」を参照してください。
store.typequota.enable パラメータを on に設定します。
たとえば、次のコマンドを入力します。
configutil -o store.typequota.enable -v 1 |
メッセージタイプの制限容量を設定するには、次のいずれかの方法を使用します。
LDAP 属性 mailQuota または mailMsgQuota、あるいはその両方を使用して、1 人のユーザーに対するメッセージタイプの制限容量を設定します。
これらの属性を使用して制限容量を設定したルートを設定する方法については、『Sun Java Communications Suite 5 Schema Reference』の第 3 章「Messaging Server and Calendar Server Attributes」の mailQuota エントリと mailMsgQuota エントリを参照してください。
mailQuota 属性および mailMsgQuota 属性を設定しない場合は、すべての個別ユーザーに適用されるデフォルトのメッセージタイプの制限容量を設定します。
デフォルトの制限容量を設定するには、store.defaultmessagequota パラメータまたは store.defaultmailboxquota パラメータ、あるいはその両方を使用します。
これらのパラメータを使用して制限容量を設定したルートを設定する方法については、「20.8.4 メッセージストアの制限容量を設定する」を参照してください。
前述の configutil パラメータまたは LDAP 属性を使用してメッセージタイプの制限容量を設定するときは、store.messagetype.x.quotaroot パラメータに指定した制限容量を設定したルートを使用してください。
この節に示す例では、ユーザー joe に対して次の制限容量を設定します。
デフォルトのメールボックス保存制限容量は 40M
デフォルトのメールボックスメッセージ制限容量は 5000
アーカイブフォルダの保存制限容量は 100M
テキストメッセージタイプの保存制限容量は 10M
テキストメッセージタイプのメッセージ制限容量は 2000
ボイスメッセージタイプの保存制限容量は 10M
ボイスメッセージタイプのメッセージ制限容量は 200
この制限容量を設定したルートは、ほかのすべてのフォルダおよびメッセージタイプの合計 (60M) より大きい保存容量 (100M) をアーカイブフォルダに許可します。また、アーカイブフォルダに対するメッセージ制限容量は設定されていません。この例では、アーカイブに関しては保存容量の制限のみが問題になります。
メッセージタイプには、保存容量とメッセージ数の両方の制限が設定されます。
メッセージタイプの制限容量は、メッセージがアーカイブフォルダ、またはほかのフォルダのどちらに保存されるかに関係なく、該当するタイプのメッセージすべての合計に対して適用されます。
デフォルトのメールボックス制限容量は、メッセージタイプがテキストでもボイスでもなく、アーカイブフォルダに保存されないすべてのメッセージに対して適用されます。つまり、メッセージタイプの制限容量とアーカイブの制限容量は、デフォルトのメールボックス制限容量の一部として数えられません。
この例の制限容量を設定したルートを設定するには、次の手順を実行します。
store.messagetype.x.quotaroot パラメータを次のように設定します。
store.messagetype.1.quotaroot = text store.messagetype.2.quotaroot = voice |
ユーザー joe に対する mailQuota 属性を次のように設定します。
mailQuota: 20M;#text%10M;#voice%10M;Archive%100M |
ユーザー 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) |
有効期限および消去機能により、有効期限ルールで定義した条件に従って、メッセージのフォルダ間移動、メッセージのアーカイブ、およびメッセージストアからのメッセージの消去を実行できます。これらの作業は、imexpire ユーティリティーを使用して実行します。
imexpire ユーティリティーは管理者によって実行されるため、制限容量の適用は省略されます。
有効期限ルールの作成方法と imexpire ユーティリティーの使用方法については、「20.9 自動メッセージ削除 (有効期限および消去) 機能を設定する」を参照してください。
有効期限ルールを作成することにより、異なるタイプのメッセージを異なる条件に従って有効期限切れにすることができます。
有効期限機能は柔軟性がきわめて高く、さまざまなオプションを使用して有効期限切れの条件を設定できます。この節では、テキストメッセージとボイスメッセージが異なる条件に従って有効期限切れになる例を示します。
この例では、テキストメッセージタイプとボイスメッセージタイプが次のように設定されていることを想定します。
store.messagetype.1 = text/plain store.messagetype.2 = multipart/voice-message |
また、メッセージストアが Content-Type ヘッダーフィールドを読み取ってメッセージタイプを判定するように設定されていることを想定します。
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 |
この例では、テキストメッセージとボイスメールが次のように異なる方法で有効期限切れになり、異なるスケジュールに従います。
テキストメッセージは、メッセージストアに到着してから 1 年後にユーザーの受信箱からユーザーのアーカイブフォルダに移動します。
ボイスメールは、2 週間後に受信箱から OldMail フォルダに移動します。ユーザーがボイスメッセージを保存すると、保存日がリセットされ、新しい保存日から 2 週間後にメッセージが移動します。
ボイスメールは、30 日後に OldMail フォルダからごみ箱フォルダに移動します。ユーザーは、OldMail フォルダ内のボイスメッセージを保存することもできます。その場合、メッセージの削除は新しい保存日から 30 日後に延期されます。
すべてのタイプのメッセージは、ごみ箱フォルダに移動してから 7 日後に破棄されます。
ボイスメールは、有効期限ルールによって自動的にごみ箱に移動します。テキストメッセージは、ユーザーがメッセージを削除したときにごみ箱に移動します。
注意: savedays ルールにより、メッセージを保存してから指定された日数が経過すると、そのメッセージは有効期限切れになります。一般的なボイスメールシステムでは、ユーザーはボイスメールメニューでボイスメールを保存できます。テキストメッセージの場合は、ほかのフォルダに移動したときにメッセージが保存されます。messagedays ルールにより、メッセージがメッセージストアに最初に到着してから指定された日数が経過すると、メッセージが保存されたフォルダやメッセージの移動回数に関係なく、そのメッセージは有効期限切れになります。