Sun Java System Messaging Server 6.3 管理ガイド

第 5 章 POP、IMAP、および HTTP サービスの設定

Messaging Server は、クライアントのメールボックスへのアクセス用に Post Office Protocol 3 (POP3)、Internet Mail Access Protocol 4 (IMAP4)、および Hyper Text Transfer Protocol (HTTP) をサポートしています。IMAP と POP はいずれもインターネットの標準メールボックスプロトコルです。Web で使用する電子メールプログラムの Messnger Express で、エンドユーザーは HTTP でインターネットに接続されたコンピュータシステム上で動作しているブラウザを使って自分のメールボックスにアクセスすることができます。

この章では、コマンド行ユーティリティーを使って 1 つ以上のサービスをサポートするようにサーバーを構成する方法について説明します。

SMTP (Simple Mail Transfer Protocol) サービスの設定については、第 10 章「MTA サービスと設定について」を参照してください。

この章の内容は次のとおりです。

5.1 全般的な設定

Messaging Server の POP、IMAP、および HTTP サービスの全般的な機能の設定には、サービスの有効無効の指定、ポート番号の割り当て、および接続するクライアントへ送信されるサービスバナーの修正 (省略可) が含まれます。この節では、そのための基礎的な情報を提供します。これらの設定を行う手順については、「5.5 POP サービスを設定する」「5.6 IMAP サービスを設定する」、および 「5.7 HTTP サービスを設定する」を参照してください。

5.1.1 サービスの有効化と無効化

Messaging Server の特定のインスタンスがその POP、IMAP、または HTTP サービスを使用できるようにするかどうかを制御することができます。これは、サービスの開始や停止と同じではありません (「4.4 サービスを起動および停止する」を参照)。POP、IMAP、または HTTP が機能するには、有効化されていることと開始されていることの両方が必要です。

サービスの有効化は、サービスの開始や停止よりも「グローバルな」処理です。たとえば、有効にする設定はシステムを再起動しても持続されますが、前に「停止」したサービスは再起動後に再び開始する必要があります。

使用する予定がないサービスは有効にする必要はありません。たとえば、Messaging Server インスタンスをメッセージ転送エージェント (MTA) としてのみ使用する場合、POP、IMAP、および HTTP は無効にする必要があります。POP サービス用にのみ使用する場合、IMAP と HTTP を無効にする必要があります。Web ベースの電子メール用にのみ使用する場合、POP と IMAP を無効にする必要があります。

サービスの有効化と無効化は、サーバーレベルで行うことができます。この処理はこの章で説明されています。また、「4.4.2.1 起動できるサービスを指定する」でも説明されています。特定の LDAP 属性 mailAllowedServiceAccess を設定することにより、ユーザーレベルでサービスの有効化と無効化を行うことができます。

5.1.2 ポート番号を指定する

各サービスに対して、サーバーがサービスの接続に使用するポート番号を指定することができます。

たとえば 1 つのホストマシンに複数の IMAP サーバーインスタンスがある場合や、同じホストマシンを IMAP サーバーおよび Messaging Multiplexor サーバーとして使用している場合は、デフォルト以外のポート番号を指定する必要があります。Multiplexor については、第 7 章「マルチプレクササービスの設定および管理」を参照してください。

ポート番号を指定する際には、次の点に注意してください。

5.1.3 暗号化通信用のポート

Messaging Server は、SSL (Secure Socket Layer) プロトコルを使用することにより、IMAP、POP、および HTTP クライアントの暗号化通信をサポートします。Messaging Server の SSL サポートの一般情報については、「23.5 暗号化と証明書に基づく認証を構成する」を参照してください。

5.1.3.1 SSL を使用した IMAP

「SSL を使用した IMAP」のデフォルト (推奨) ポート番号 (993) を使用するか、または「SSL を使用した IMAP」に別のポートを指定することができます。

現在の IMAP クライアントの多くが個別の IMAP ポートおよび SSL を使用した IMAP ポートを必要としているため、Messaging Server ではオプションとしてそれぞれに個別のポートを使用できます。最近では、同じポートによる IMAP および「SSL を使用した IMAP」の通信が新たな標準となってきています。お使いの Messaging Server に SSL の証明書 (「23.5.1 証明書の入手」を参照) がインストールされていれば、同じポートを使って IMAP および「SSL を使用した IMAP」の通信を行うことができます。

5.1.3.2 SSL を使用した POP

POP 用の個別 SSL ポートは、デフォルトでは 995 です。STLS コマンドを使用して、通常の POP ポートで SSL を開始することもできます (「5.5 POP サービスを設定する」を参照)。

5.1.3.3 SSL を使用した HTTP

「SSL を使用した HTTP」のデフォルトポート番号 (443) を使用するか、または HTTPS に別のポートを指定することができます。

5.1.4 サービスバナー

クライアントがはじめて Messaging Server の POP または IMAP のポートに接続すると、サーバーがクライアントに確認用のテキスト文字列を送信します。このサービスバナー (通常、クライアントのユーザーには表示されない) は、サーバーが Sun Java System Messaging Server であることを証明するもので、そこにはサーバーのバージョン番号が表示されます。一般に、このバナーはクライアントのデバッグまたは問題をつきとめるために使用されます。

接続中のクライアントにほかのメッセージを送信する場合、POP または IMAP サービスのデフォルトのバナーを変更できます。

サービスバナーを設定するには、configutil ユーティリティー (service.imap.bannerservice.pop.banner) を使用します。configutil の構文の詳細については、『Sun Java System Messaging Server 6.3 Administration Reference 』を参照してください。

5.2 ログインの要件

ユーザーは POP、IMAP、または HTTP サービスにログインしてメールを取り込みます。このユーザーによるログインの方法は制御できます。パスワードに基づくログイン (すべてのサービス)、および証明書に基づくログイン (IMAP または HTTP サービス) を許可することができます。この節では、そのための基礎的な情報を提供します。これらの設定を行う手順については、「5.5 POP サービスを設定する」「5.6 IMAP サービスを設定する」、および 「5.7 HTTP サービスを設定する」を参照してください。さらに、POP ログインの有効なログイン区切りを指定することもできます。

ProcedurePOP クライアントのログイン区切りを設定する

メールクライアントによっては、ログイン区切りとして @ を使用できない場合があります。アドレスに含まれる@uid@domain と似ているからです。これらのクライアントの例には、Microsoft Windows 2000 上で動作する Netscape Messenger 4.76、Netscape Messenger 6.0、および Microsoft Outlook Express があります。これを回避するには次のようにします。

  1. 次のコマンドを使って + を有効な区切りにします。

    configutil -o service.loginseparator -v "@+"

  2. POP クライアントユーザーに @ ではなく + をログイン区切りとして使ってログインするよう知らせます。

5.2.1 ドメイン名を使用せずにログインを許可する

標準のログインでは、ユーザーがユーザー ID、区切り文字、ドメイン名の順に入力し、次にパスワードを入力する必要があります。ただし、インストール時に指定したデフォルトのドメインのユーザーは、ドメイン名や区切り文字を入力しなくてもログインできます。

ほかのドメインのユーザーもユーザー ID だけでログインできるようにする (ドメイン名と区切り文字を不要にする) には、sasl.default.ldap.searchfordomain を 0 に設定します。ユーザー ID はディレクトリツリー全体で一意になるようにする必要があります。ユーザー ID が一意でない場合、ドメイン名を指定せずにログインすると失敗します。

ログイン時にユーザーが入力する必要がある属性を変更することもできます。たとえば、電話番号 (telephoneNumber) や従業員番号 (employeeID) を入力させたい場合は、configutil のパラメータ sasl.default.ldap.searchfilter で定義されている LDAP 検索を変更します。このパラメータは、ドメイン単位の inetdomainsearchfilter 属性のグローバルなデフォルト設定であり、同じ構文に従っています。

これらのパラメータの詳細については、『Sun Java System Messaging Server 6.3 Administration Reference 』を参照してください。

5.2.2 パスワードに基づくログイン

一般的なメッセージングインストールでは、ユーザーは POP、IMAP、または HTTP メールクライアントにパスワードを入力してメールボックスにアクセスします。クライアントがパスワードをサーバーに送信すると、サーバーはそのパスワードを使ってユーザーを認証します。ユーザーが認証されると、アクセス制御ルールに基づき、そのサーバーに保存されている特定のメールボックスへのアクセスを許可するかどうかが決定されます。

パスワードログインを認めると、ユーザーはパスワードを入力することにより POP、IMAP、または HTTP にアクセスできるようになります。POP サービスにおける認証方法は、パスワードまたは SSL に基づくログインのみです。パスワードは LDAP ディレクトリに保存されます。パスワードの必要最小文字数などのポリシーは、ディレクトリポリシーによって決まります。

IMAP または HTTP サービスに対してパスワードログインを認めない場合は、パスワードに基づく認証は許可されません。その場合、次の節で説明する証明書に基づくログインを行わなければなりません。

IMAP および HTTP サービスにおけるパスワード送信のセキュリティーを強化するために、サーバーに送信する前にパスワードを暗号化するように要求できます。そのためには、ログインに必要な暗号化最小文字数を選択します。

クライアントにおける暗号化のキー長設定がサーバーのサポートする最大長より大きい場合、またはサーバーにおける暗号化のキー長設定がクライアントのサポートする最大長より大きい場合は、パスワードに基づくログインを行うことができません。さまざまな暗号化方式とキー長をサポートするようにサーバーを設定する方法については、「23.5.2 SSL を有効化し暗号化方式を選択する」を参照してください。

5.2.3 証明書に基づくログイン

Sun Java System サーバーでは、パスワードに基づくログインに加えて、デジタル証明書の確認によるユーザー認証もサポートしています。サーバーとの SSL セッションを確立するときに、パスワードの代わりにユーザーの証明書を提示します。証明書の信頼性が確認されると、そのユーザーは認証済みであるとみなされます。

IMAP または HTTP サービスに対し、証明書に基づくログインを認めるように Messaging Server を設定する方法については、「23.5.3 証明書に基づくログインを設定する」を参照してください。

証明書に基づくログインを有効にするためにパスワードログインを無効にする必要はありません。パスワードログインが有効になっていても、証明書に基づくログインの設定を行なった場合は、パスワードに基づくログインと証明書に基づくログインの両方がサポートされます。その場合、クライアントが SSL セッションを確立して証明書を提示すると、証明書に基づくログインが使用されます。クライアントが SSL を使用しない場合や、クライアント証明書を提示しない場合には、代わりにパスワードが送信されます。

5.3 パフォーマンスパラメータ

Messaging Server の POP、IMAP、および HTTP サービスに対し、いくつかの基本的なパフォーマンスパラメータを設定できます。ハードウェアの容量に基づきユーザーベースでもっとも効率的なサービスを実行できます。この節では、そのための基礎的な情報を提供します。これらの設定を行う手順については、「5.5 POP サービスを設定する」「5.6 IMAP サービスを設定する」、および 「5.7 HTTP サービスを設定する」を参照してください。

5.3.1 プロセス数

Messaging Server は作業をいくつかの実行プロセスに分割することができます。こうすると、場合によっては効率が上がることがあります。この機能はマルチプロセッサのサーバーマシンにおいて特に効果があります。多くのサーバープロセス数を調整することによりハードウェアプロセッサ間で複数のタスクをより効率よく分配できます。

ただし、タスクを複数のプロセスに割り当てたり、プロセッサ間で切り替えたりする際に、パフォーマンスオーバーヘッドが発生します。新たなプロセスが 1 つ追加されるごとに、複数のプロセスを持つ利点が薄れていきます。ほとんどの設定では、サーバーマシンの各ハードウェアプロセッサ当たり 1 つのプロセス (最大でも 4 プロセス) を、割り当てるのが原則です。用途によっては最適とされる設定が異なることがあるため、この原則はあくまでも参考として把握しておいてください。

: プラットフォームによっては、パフォーマンスに影響を与える可能性のある、そのプラットフォーム固有のプロセスに対する制限 (最大ファイルディスクリプタ数など) を緩めるために、プロセス数を増やした方がよいこともあります。

POP、IMAP、および HTTP サービスのデフォルトのプロセス数は、1 です。

5.3.2 プロセス当たりの接続数

POP、IMAP、または HTTP サービスが同時に持てるクライアント接続の数が多いほど、クライアントにとって有利になります。空いている接続がないためにクライアントがサービスにアクセスできない場合、別のクライアントが接続を切断するまで待たなければなりません。

その一方で、各オープン接続がそれぞれメモリーリソースを消費し、サーバーマシンの入出力サブシステムに負担をかけるため、実際にサーバーがサポートできる同時セッションの数には限界があります。サーバーのメモリーを増やすか入出力を拡大すれば、制限枠を上げることができます。

IMAP、HTTP、および POP には、それぞれ以下のような違いがあります。


注 –

HTTP セッションのセキュリティーの詳細については、「23.2 HTTP のセキュリティーについて」を参照してください。


したがって、所定の時間とユーザーの要求により、Messaging Server はオープン IMAP 接続または HTTP 接続を POP 接続よりも多くサポートできる場合があります。

プロセス当たりの接続数は、IMAP のデフォルトが 4000、HTTP のデフォルトが 6000、POP のデフォルトが 600 です。これらの値は、一般的な設定のサーバーマシンが処理できる要求とほぼ同等です。用途によっては最適とされる設定が異なることがあるため、これらのデフォルト値はあくまでも一般的なガイドラインとして参考にしてください。

通常、アクティブな POP 接続では、サーバーリソースと帯域幅について、アクティブな IMAP 接続よりもはるかに厳しい要件が求められます。これは、POP 接続が継続的にメッセージをダウンロードしている間、IMAP 接続はほとんどずっとアイドル状態だからです。POP のセッション数は、少なくすることをお勧めします。逆に言えば、POP 接続は電子メールのダウンロードに要する時間しか継続しないため、アクティブな POP ユーザーはその時間のほんの数パーセントしか接続できません。これに対し、IMAP 接続は一連のメールチェックの間ずっと接続状態です。

5.3.3 プロセス当たりのスレッド数

複数のプロセスをサポートするだけでなく、Messaging Server ではタスクを複数のスレッドに分配することにより、さらにパフォーマンスを向上させています。サーバーがスレッドを使用すると、処理中のコマンドがほかのコマンドの実行を妨げることがなくなるため、実行効率が向上します。スレッドは、設定した最大数の範囲内で、コマンドの実行中に、必要に応じて作成され破棄されます。

同時に実行されるスレッドが多いほど、より多くのクライアント要求を遅延なく処理することができます。そのためより多くのクライアントに迅速にサービスを提供できます。ただし、スレッド間のディスパッチがパフォーマンスオーバーヘッドになるため、実際にサーバーが使用できるスレッド数には限界があります。

POP、IMAP、および HTTP のプロセス当たりの最大スレッド数は、デフォルトで 250 です。IMAP および HTTP のデフォルトの接続数が POP のデフォルト値より大きいにもかかわらず、同じ数値になります。同じ最大スレッド数で、より多くの IMAP および HTTP 接続が、より少なく、ただし頻度の高い POP 接続と同じくらい効率よく処理されると考えられます。用途によっては最適とされる設定が異なることがありますが、これらのデフォルト値は十分高いため、設定値を大きくする必要はおそらくありません。通常、これらのデフォルト値で十分なパフォーマンスが得られます。

5.3.4 アイドル接続を切断する

応答のないクライアントへの接続に使用されているシステムリソースを回復するために、IMAP4、POP3、および HTTP プロトコルは、一定の時間が過ぎたアイドル接続をサーバーが一方的に切断することを許可します。

それぞれのプロトコル仕様により、サーバーはアイドル接続を指定されている最小時間オープンにしておくことが要求されます。最低時間のデフォルト値は POP が 10 分、IMAP が 30 分、HTTP が 3 分です。アイドル時間を増やしてデフォルト値を増やすことはできますが、それ以下に減らすことはできません。

POP または IMAP 接続が切断されると、ユーザーは新たに接続するときに再び認証する必要があります。これに対し、HTTP 接続が切断された場合は、HTTP セッションがオープンにされたままなので、再認証の必要はありません。HTTP セッションのセキュリティーの詳細については、「23.2 HTTP のセキュリティーについて」を参照してください。

POP のアイドル接続は、通常クライアントが応答できない何らかの問題 (クラッシュやハングアップするなど) により起こります。一方、IMAP アイドル接続は正常な状態で発生します。IMAP ユーザーが接続を一方的に切断されないようにするため、IMAP クライアントは通常 30 分以下の一定間隔で IMAP サーバーにコマンドを送信します。

5.3.5 HTTP クライアントをログアウトする

HTTP セッションは複数の接続にわたって維持されます。HTTP クライアントは、接続が切断されてもログアウトされません。ただし、HTTP セッションが指定された時間以上アイドル状態であると、サーバーは HTTP セッションを自動的に切断し、クライアントはログアウトされます (デフォルト値は 2 時間)。セッションが切断されると、クライアントのセッション ID が無効になり、クライアントは新たにセッションを確立するために、再び認証しなければなりません。HTTP のセキュリティーおよびセッション ID の詳細については、「23.2 HTTP のセキュリティーについて」を参照してください。

5.4 クライアントアクセスの制御

Messaging Server にはアクセス制御機能があり、POP、IMAP、または HTTP メッセージングサービス (および SMTP) にアクセスできるクライアントを決定することができます。さまざまな条件に基づき、クライアントのアクセスを許可または拒否する柔軟性のあるアクセスフィルタを作成できます。

クライアントアクセスの制御は、Messaging Server に備わっている重要なセキュリティー機能です。クライアントアクセスの制御フィルタの作成と使用法の例については、「23.7 POP、IMAP、および HTTP サービスへのクライアントアクセスを構成する」および 「23.9 SMTP サービスへのクライアントアクセスを構成する」を参照してください。

5.5 POP サービスを設定する

configutil コマンドを使用して、Messaging Server POP サービスの基本設定を行うことができます。この節では、一般的な POP サービスのオプションについて説明します。完全なリストは、『Sun Java System Messaging Server 6.3 Administration Reference』「configutil Parameters」にあります。


注 –

POP サービスの場合は、パスワードに基づくログインが自動的に有効になります。


詳細は、以下を参照してください。

POP サービスを有効または無効にする

configutil -o service.pop.enable -v [ yes | no ]

ポート番号を指定する

configutil -o service.pop.port -v number

プロセス当たりの最大ネットワーク接続数を設定する (詳細は、「5.3.2 プロセス当たりの接続数」を参照)

configutil -o service.pop.maxsessions -v number

接続の最大アイドル時間を設定する (詳細は、「5.3.4 アイドル接続を切断する」を参照)

configutil -o service.pop.idletimeout -v number

プロセス当たりの最大スレッド数を設定する (詳細は、「5.3.3 プロセス当たりのスレッド数」を参照)

configutil -o service.pop.maxthreads -v number

最大プロセス数を設定する (詳細は、「5.3.1 プロセス数」を参照)

configutil -o service.pop.numprocesses -v number

SSL を使用した POP を有効にする


configutil -o service.pop.enablesslport -v 1
configutil -o service.pop.sslport -v 995

SSL が正しく設定されている場合、TLS もサポートされます。

プロトコルにようこそバナーを指定する

configutil -o service.pop.banner -v banner

5.6 IMAP サービスを設定する

configutil コマンドを使用して、Messaging Server IMAP サービスの基本設定を行うことができます。この節では、一般的な IMAP サービスのオプションについて説明します。完全なリストは、『Sun Java System Messaging Server 6.3 Administration Reference』の第 3 章「Messaging Server Configuration」にあります。詳細は、以下を参照してください。

コマンド行: 次に示すように、コマンド行から IMAP 属性の値を設定できます。

IMAP サービスを有効または無効にする

configutil -o service.imap.enable -v [ yes | no ]

ポート番号を指定する

configutil -o service.imap.port -v number

「SSL を使用した IMAP」用に別のポートを有効にする

configutil -o service.imap.enablesslport -v [ yes | no ]

「SSL を使用した IMAP」のポート番号を指定する

configutil -o service.imap.sslport -v number

IMAP サービスでパスワードログインを有効または無効にする

configutil -o service.imap.plaintextmincipher -v value

が 0 より大きい場合は、セキュリティーレイヤー (SSL または TLS) が有効でないかぎり、プレーンテキストのパスワードの使用を無効にします。これによりユーザーは、ログインする自分のクライアントで SSL または TLS を強制的に有効にすることになり、自分のパスワードがネットワーク上で漏洩することを防ぎます。デフォルトは 0 です。

プロセス当たりの最大ネットワーク接続数を設定する (詳細は、「5.3.2 プロセス当たりの接続数」を参照)

configutil -o service.imap.maxsessions -v number

接続の最大アイドル時間を設定する (詳細は、「5.3.4 アイドル接続を切断する」を参照)

configutil -o service.imap.idletimeout -v number

プロセス当たりの最大スレッド数を設定する (「5.3.3 プロセス当たりのスレッド数」を参照)

configutil -o service.imap.maxthreads -v number

最大プロセス数を設定する (「5.3.1 プロセス数」を参照)

configutil -o service.imap.numprocesses -v number

プロトコルにようこそバナーを指定する

configutil -o service.imap.banner -v banner

5.6.1 IMAP IDLE の設定

IMAP 仕様に対する IMAP IDLE 拡張 (RFC 2177 で定義) では、新しいメッセージが到着したときやその他の更新がユーザーのメールボックスで発生したときに、IMAP サーバーが電子メールクライアントに通知する機能が追加されています。IMAP IDLE 機能には次の利点があります。

5.6.1.1 前提条件

IMAP IDLE 機能では、イベント通知サービス (ENS) を使用して通知を伝達します。IMAP IDLE を使用するには、次の ENS コンポーネントを設定してください。

Messaging Server 用の ENS の設定については、『Sun Java System Communications Services Event Notification Service Guide』を参照してください。

Ibiff 通知プラグインの設定については、「B.1 Messaging Server に ENS Publisher をロードする」を参照してください。

ProcedureIMAP IDLE を設定する

  1. メッセージストアを実行しているホストからの接続のみを受け付けるように enpd サーバーを設定します。

    メッセージストアホストへの接続を制限するには、ENS_ACCESS 環境変数を設定します。この環境変数は、enpd へのアクセスを許可するアクセス権のリストを設定します。構文は次のとおりです。


    setenv ENS_ACCESS 'allowdeny ipaddress|mask;
    allowdeny ipaddress|mask; ...' 

    次に、各引数について説明します。

    allowdeny

    + (許可を指定する場合) または — (拒否を指定する場合) のどちらかです。

    ipaddress

    ドット区切り 10 進数の IP アドレスを指定します。

    mask

    ドット区切り 10 進数の IP アドレスマスクを指定します。

    例:

    次の例では、ローカルホストへのアクセスのみを許可しています。


    setenv ENS_ACCESS '+127.0.0.1|255.255.255.255'

    次の例では、ローカルホストと、192.168.0.17 を除くすべての IP アドレス 192.168.0.* へのアクセスを許可しています。


    setenv ENS_ACCESS '+192.168.0.1|255.255.255.0;+127.0.0.1|255.255.255.255; \
    -192.168.0.17;255.255.255.255'
  2. mailsrv として configutil ユーティリティーを実行して、ENS サーバーが動作しているホストの名前を指定します。


    cd msg-svr-base
    ./configutil -o local.store.notifyplugin.ensHost -v "ipaddress"

    ここで、ipaddress は、ENS ホストマシンのドット区切り 10 進数の IP アドレスを指定します。

    例:


    cd msg-svr-base
    ./configutil -o local.store.notifyplugin.ensHost -v "127.0.0.1"
  3. 通知に使用するイベントキーを指定します。

    ENS イベントキー (ensEventKey) がデフォルト値に設定されていると、IMAP IDLE は動作しません。

    ensEventKey 値を %M で終わるように設定してください。文字列 %M は、イベントが発生したメールボックスの名前に置き換えられる置換コードです。

    次のように configutil コマンドを実行します。


    ./configutil -o local.store.notifyplugin.ensEventKey -v "eventkey"

    ここで、eventkey は ENS で使用される一意の識別子です。そのデフォルト値は enp://127.0.0.1/store です。イベントキーのホスト名の部分は、ENS が実行されているホストの判定には使用されず、単に識別子の一部でしかありません。

    例:


    ./configutil -o local.store.notifyplugin.ensEventKey -v "enp://127.0.0.1/store/%M"
  4. Messaging Server 用の ENS パブリッシャーを有効にする libibiff 通知プラグインファイルを読み込みます。

    次のように configutil コマンドを実行します。


    ./configutil -o local.store.notifyplugin -v "msg-svr-base/lib/libibiff"
  5. 受信箱だけでなく、すべてのユーザーメールボックスから通知が送信されるようにします。

    デフォルトでは、受信箱内で発生したイベントによってのみ通知が生成されます。ただし、IMAP IDLE RFC (2177) では、どのメールボックスでイベントが発生した場合でも常に、IDLE はクライアントに通知する必要があると規定されています。

    この RFC に準拠するために、IMAP IDLE 機能を使用するには、すべてのメールボックスの通知を有効にする必要があります。そうでない場合、IMAP サーバーは IDLE 機能を通知しません。

    すべてのメールボックスの通知を設定するには、configutil コマンドの noneinbox を 1 の値に設定します。


    ./configutil -o local.store.notifyplugin.noneinbox.enable -v 1

    ここで、-v 1 は、すべてのメールボックスからの通知を有効にします。

  6. root として Messaging Server をいったん停止してから再起動します。


    cd msg-svr-base/sbin
    
    ./stop-msg
    
    ./start-msg
  7. IMAP サービスに IDLE 機能が含まれたことを確認します。telnet を使用して IMAP のホストとポートに接続します。


    telnet IMAP_hostname port
    

    例:


    telnet myhost imap
    trying 192.18.01.44 ... 
    connected to myhost.siroe.com
    
    * OK [CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS
    CHILDREN BINARY UNSELECT SORT LANGUAGE STARTTLS IDLE XSENDER X-NETSCAPE
    XSERVERINFO X-SUN-SORT X-SUN-IMAP X-ANNOTATEMORE AUTH=PLAIN]
    myhost.siroe.com IMAP4 service (Sun Java(tm) System 
    Messaging Server 6.3-0.05 (built Feb 7 2006))

5.7 HTTP サービスを設定する

Messaging Server は、Messenger Express および Communications Express と呼ばれる HTTP メールクライアントをサポートしています。POP および IMAP クライアントがルーティングまたは配信のためにメールを直接 Messaging Server MTA に送信するのに対して、HTTP クライアントは、メールを Webmail サーバーと呼ばれる特殊な Web サーバー (mshttpd または Messaging Server http デーモンとも呼ばれる) に送信します。メッセージの宛先に応じて、Webmail サーバーはルーティングのためにメールをアウトバウンド MTA に転送するか、または IMAP を使用していずれかのバックエンドメッセージストアに転送します。図 5–1 はこのことを示しています。Communications Express サーバーは Webmail サーバーとの間で要求のルーティングを行なっているだけであることに注意してください。

図 5–1 HTTP サービスのコンポーネント

この図は、Messaging Server 用の HTTP サービスコンポーネントを示します。

以前のバージョンでは、Webmail サーバーがメッセージストアに直接アクセスしていました。現在は、IMAP サーバーを介してメッセージストアにアクセスします。これにより、次のような利点がもたらされます。

以前のバージョンでは、MEM が HTTP クライアント要求を受信し、適切なバックエンドメッセージストア上の適切な Webmail サーバーにその要求を転送していました。このため、すべてのバックエンドサーバー上に mshttpd のコピーをインストールする必要がありました。現在は、Webmail サーバーがフロントエンドサーバーとして動作し、HTTP クライアントの電子メール要求を受信します。Webmail サーバーは受信した要求を SMTP または IMAP 呼び出しに変換し、その呼び出しを、バックエンドメッセージストア上の MTA または適切な IMAP サーバーのどちらかに転送します。Messaging Server が Web ベースの電子メールのためにだけ使用されている場合は、IMAP を必ず有効にしてください。

5.7.1 HTTP サービスの設定

HTTP 設定パラメータの多くは、POP および IMAP サービスで提供されるパラメータに似ています。これらには、接続設定とプロセス設定のパラメータが含まれています。この節では、一般的な HTTP サービスのオプションについて説明します。完全なリストは、『Sun Java System Messaging Server 6.3 Administration Reference』「configutil Parameters」にあります。詳細は、以下を参照してください。

ユーザーがアクセスする各 IMAP サーバーについて、Webmail サーバーはその IMAP ポート、SSL を使用するかどうか、およびユーザーログインに使用する管理資格を認識している必要があります。これを実行するための configutil パラメータは次のとおりです。

local.service.proxy.imapport[.hostname ] — 接続に使用する IMAP ポート (デフォルト: 143)。

local.service.proxy.imapssl — SSL を有効にする (デフォルト: no)。

local.service.proxy.admin[.hostname ] — 管理 ID。

local.service.proxy.adminpass[.hostname ] — 管理パスワード。

これらのパラメータは、グローバルに設定することも (すべての IMAP バックエンドサーバーに適用される)、オプションの名前にバックエンドの完全修飾ドメイン名を追加することにより、個別の IMAP バックエンドサーバーごとに設定することもできます。

SSL を使用した IMAP を使用するには、mshttpd も SSL HTTP サーバーとして設定されている必要があり、さらに mshttpd 証明書データベースが IMAP バックエンドの CA を信頼している必要があります。service.http.sslusessl を必ず有効にしてください。IMAP を実行しているバックエンドメッセージストアが (たとえば、generate-certDB で作成された) 自己署名付き証明書を使用している場合は、この証明書をフロントエンドの mshttpd デーモンサーバーに追加する必要があります。

local.service.proxy.admin/pass が設定されていない場合は、「メールサーバーを使用できません。管理者は、サーバーログで詳細を調べてください。」というエラーでログインが拒否され、存在しない設定オプションが http ログにリストされることに注意してください。

HTTP 属性に対する追加の値を、次のようにコマンド行で設定することができます。

HTTP サービスを有効または無効にする

configutil -o service.http.enable -v [ yes | no ]

デフォルトでは、HTTP サービスは送信 Web メールをローカルの MTA に送信してルーティングまたは配信します。サイトがホストサービスで、ほとんどの受取人がローカルホストマシンと同じドメインではない場合には、メールをリモート MTA に送信するように HTTP サービスを設定できます。Web メールをリモート MTA に送信するには、リモートホスト名およびリモートホストの SMTP ポート番号を指定する必要があります。ポート番号を指定する

configutil -o service.http.port -v number

「SSL を使用した HTTP」用に別のポートを有効にする

configutil -o service.http.enablesslport -v [ yes | no ]

「SSL を使用した HTTP」にポート番号を指定する

configutil -o service.http.sslport -v number

パスワードログインを有効または無効にする

configutil -o service.http.plaintextmincipher -v value

が 0 より大きい場合は、セキュリティーレイヤー (SSL または TLS) が有効でないかぎり、プレーンテキストのパスワードの使用を無効にします。これによりユーザーは、ログインする自分のクライアントで SSL または TLS を強制的に有効にすることになり、自分のパスワードがネットワーク上で漏洩することを防ぎます。デフォルトは 0 です。

プロセス当たりの最大ネットワーク接続数を設定する (詳細は、「5.3.2 プロセス当たりの接続数」を参照)

configutil -o service.http.maxsessions -v number

接続の最大アイドル時間を設定する (詳細は、「5.3.4 アイドル接続を切断する」を参照)

configutil -o service.http.idletimeout -v number

クライアントセッションの最大アイドル時間を設定する (詳細は、「5.3.5 HTTP クライアントをログアウトする」を参照)

configutil -o service.http.sessiontimeout -v number

プロセス当たりの最大スレッド数を設定する

configutil -o service.http.maxthreads -v number

最大プロセス数を設定する

configutil -o service.http.numprocesses -v number

HTTP クライアントが添付ファイル付きのメッセージを構成すると、添付ファイルはサーバーにアップロードされファイルに保存されます。ルーティングまたは配信するためにメッセージを MTA に送信する前に、HTTP サービスは添付ファイルを取得し、メッセージを構成します。この場合、デフォルトの添付スプールディレクトリを使用するか、または代わりのディレクトリを指定することができます。また、添付ファイルの最大サイズを指定することもできます。クライアント送信メール用の添付スプールディレクトリを指定するには、次のコマンドを使用します。このサイズは base64 でエンコードされたすべての添付ファイルが含まれること、および base64 でエンコードするには容量が 33% 多く必要になることに注意してください。このため、パラメータでの 5M バイトの容量制限を考慮すると 1 つのメッセージと添付ファイルの最大サイズは 3.75M バイトになります。

configutil -o service.http.spooldir -v dirpath

メッセージの最大サイズを指定する

configutil -o service.http.maxmessagesize -v size

size はバイト単位です。このサイズは base64 でエンコードされたすべての添付ファイルが含まれること、および base64 でエンコードするには容量が 33% 多く必要になることに注意してください。このため、パラメータでの 5M バイトの容量制限を考慮すると 1 つのメッセージと添付ファイルの最大サイズは 3.75M バイトになります。

代わりの MTA ホスト名を指定する

configutil -o service.http.smtphost -v hostname

代わりの MTA ホスト名のポート番号を指定する

configutil -o service.http.smtpport -v portnum