CommuniGate Pro
Version 5.1
メッセージ転送
 
 
 
サービス

メッセージ転送

CommuniGate Pro サーバーの主な機能として、メッセージ転送があります。この場合、CommuniGate Pro サーバーはMTA ( メッセージ転送エージェント) として動作し、各種の異なるソース(モジュー ル、内部カーネルコンポーネントなど) からメッセージを受け取り、同一または複数のモジュールを 介して、メッセージをリモートデスティネーションまたはローカルデスティネーションに送信すると いう機能を果たします。

送信されたメッセージはすべて、CommuniGate Pro のベースディレクトリの中のキュー(Queue) ディ レクトリに個々のファイルとして格納されますが、その場合、同一のメッセージが複数の異なる キューに格納されることもあります(受信ユーザーが複数の場合など) 。また、通信モジュールはい ずれも、複数の論理キューを管理する機能があります。例えば、SMTP モジュールでは、インターネッ トの各ドメインについてそれぞれ単一のキューが用意され、したがって、キューはドメインの数だけ 存在することになります。

E-mail Sources and Destinations

CommuniGate Pro サーバーのメッセージソース(モジュール、コンポーネントなど) の種類と機能は次の通りです。

各モジュールのメッセージのデスティネーション(転送先) は次の通りです。

下記は、CommuniGate Pro サーバー上のメッセージフローを示した図です。
Transfer Scheme

メッセージ送信処理

送信されるメッセージはいずれも、まず、暫定ファイルとして作成されます。作成された暫定ファイ ル(拡張子.tmp) は、キュー(Queue) ディレクトリに格納されます。続いて、モジュールやカーネ ルによって、メッセージエンベロープやメッセージ本体が暫定ファイルに追加され、その後、メッセー ジ(ファイル) がカーネルに送られます。

メッセージエンベロープは、複数のテキスト行で構成されています。行には、メッセージのリターン パス、メッセージの受取人アドレス、メッセージ配信オプションなどが格納されています。

モジュールがメッセージの作成に失敗したときには(例えば、メッセージの転送中にSMTP 接続が切 断されたなど)、そのモジュールにより、そのメッセージの暫定ファイルが破棄され、また、ファイル がカーネルで削除されます。

メッセージの作成に成功し、カーネルに送られた場合、暫定ファイルの拡張子が.msg に変更され、 メッセージはスケジュールに登録されます。

システムの起動時には、カーネルモジュールにより、キューディレクトリのファイルのうち拡張子が .msg のファイルがあるかどうかがチェックされ、見つかった場合、再送信されます。

暫定ファイルは暫定ファイル(Temporary File) マネージャで管理されており、このマネージャの設 定は、Web ブラウザを使って変更できます([Temp File Options] パネル)。

一時ファイルマネージャー
ログレベル:
一時ファイルの再利用:
ログレベル
このオプションでは、暫定ファイルマネージャによってサーバーログに記録される情報の範 囲や種類を指定できます。通常、このオプションは[Failures] (ファイルシステムエラーレ ポート) に設定しておきます。何らかのモジュールでメッセージの送信に問題が発生してい るようであれば、このオプションを[Low-Level] または[All Info] に変更します。この場 合、システムログには、ファイルI/O 処理に関する情報も記録されます。その後、問題が解 決すれば、[Failures] に戻します。戻さない場合、システムログファイルのサイズが急速に 大きくなります。

暫定ファイルマネージャによって記録されたレコードには、TEMPFILE タグが付加されま す。

一時ファイルの再利用
このオプションを有効にしておくと、システムの負荷が大きくなったときでも処理速度はそ れほど低下しません。

キューの制限とフォルダリング

サーバーの負荷が大きいときには、キューディレクトリに数千ものメッセージが格納されることもあ ります。この場合、オペレーティング/ ファイルシステムでは通常、キューディレクトリを効率よく 処理できなくなります。この問題は、キューディレクトリを複数のサブディレクトリに分割し、サブ ディレクトリにそれぞれ暫定ファイル(.tmp) とキューファイル(.msg) を格納するという方法で対 応が可能です。

また、キューに置かれるメッセージの最大数を制限することもできます。キューのメッセージの総数 が、この上限に達すると、モジュールでは以後、キューに対するメッセージの送信が実行されなくな ります。

サブディレクトリの生成やメッセージの最大数の設定を行いたい場合、WebAdmin インターフェイス の[Settings] セクションの[Queue] ページを開きます。

メッセージキュー
ログレベル:   
キューサイズ制限: キューフォルダー方法:
キューサイズ制限
このオプションでは、キューに格納されるメッセージの最大数を指定できます。設定してお いた場合、キューのメッセージの数が指定した値を超えると、CommuniGate Pro のモジュー ル(SMTP、PIPE、RPOP、MAPI、WebUser) による新規のメッセージの受信が停止します。 したがって、メッセージがキューに送られることはありません。
キューフォルダー方法
このオプションでは、キューディレクトリのフォルダリイング(フォルダ組み立て) に関する 設定を行えます。
このオプションの値を0 (ゼロ) にしておいた場合、キューディレクトリの中にはサブディレク トリは作成されません。つまり、暫定ファイルはすべて、キューディレクトリの中に作成され ます。
値を10 または100 に設定しておいたときには、NN という名前(NN は、00 から99 までの2 桁 の数値) のサブディレクトリがキューディレクトリの中に作成されます。新たに作成された暫 定ファイルは、各サブディレクトリに格納されます。サブディレクトリは、設定した値(10 ま たは100) に応じて作成されます。値を[Auto] に設定した場合、キューのメッセージの数が 5000 を超えると、自動的にサブディレクトリが作成されます。

ルーティング

モジュールからメッセージが送信されると、カーネルコンポーネントにより、そのメッセージのエン ベロープ情報がチェックされます。チェックでは、受取人アドレスが解析され、その情報がルーテコンポーネントに渡されます。その後、ルータコンポーネントによって、そのメッセージを処理する モジュールまたはカーネルコンポーネントが決定(ルーティング) されます。


エンキューア

上記の受取人アドレスの解析、またルーティングと並行して、エンキューア(Enqueuer) コンポーネ ントにより、そのメッセージに対してサーバーワイドルールが適用され、処理されます。その後、エ ンキューアから、ルータコンポーネントで指定されたモジュールにメッセージが渡されます。

メッセージがモジュールで受信された場合、そのモジュールですぐには処理されず、メッセージは、 そのモジュールのキューに一時的に格納されます。例えば、SMTP モジュールには、インターネット ドメインごとにキューがあり、ドメインに応じて、キューにメッセージが格納されます。また、Local Delivery モジュールの場合、ローカルアカウントごとにキューが用意されます。

The Enqueuer component can enqueue messages:

Most of the internal components enqueue messages asynchronously, as they cannot do anything useful if a message is rejected with the Enqueuer component. The components receiving messages directly from users or remote systems (SMTP, MAPI, WebMail, XIMSS) try to enqueue messages synchronously, so if a message is rejected with the Enqueuer component, the submitting agent (a user or a remote system) can get an error message.

エンキューアコンポーネントの動作( メッセージがモジュールに送信されるときの処理) は、Web ブラウザを使って設定が可能です。設定する場合、WebAdmin インターフェイスの[Settings] セク ションの[Queue] ページを開きます。

メッセージエンキュー
ログレベル: スレッド数:
ホップ数制限:  非同期エンキュー
ログレベル
このオプションを使って、エンキューアコンポーネントによってサーバーログに記録される情 報の種類または範囲を指定できます。このオプションは、通常、[Failures] (ファイルシステ ムエラーレポート) に設定しておきます。
エンキューアコンポーネントのログレコードには、ENQUEUER タグが付加されます。  また、ログレコードがサーバーワイドルールを使って処理された場合、そのログレコードには ENQUEUERRULES タグが付加されます。
非同期エンキュー
Select this option to use the asynchronous Enqueuer mode for all components, including those directly receiving messages from users or remote systems.
スレッド数
このオプションでは、エンキューアプロセッサ(スレッド) の数を指定できます。なお、エ ンキューアスレッドは、負荷が大きい場合でも通常は1 つで十分です。スレッドの数は、例 えば、次のような場合に増やす必要があります
  • 適用されるルールの数が多い。
  • サーバーワイドルールで、Execute アクションを使って外部プログラムを起動するように設定している。
  • 外部フィルタ (アンティウィルス、コンテンツフィルタリングなど) プログラムを有効にしている。
  • 受信処理の負荷が大きく、SMTP モジュールなどを介して毎秒多くのメッセージが送信される。

モジュールで受信されたメッセージの数は、SNMP要素numEnqueuerMessages で取得でき ます。なお、値は、キューに格納されたメッセージの数で、未格納のメッセージの数は入っ ていません。この値が増えるようであれば、エンキューアプロセッサの数を増やすことが必 要です。
ホップ数制限
メッセージがいずれかのホストまたはモジュールで受信されるときには、Received: ヘッダ フィールドが自動的に追加されます。[Hop Counter] オプションを使って、このReceived:ヘッダフィールドの最大数を指定できます。Received: ヘッダフィールドの数が非常に多い場 合、そのメッセージはメールループに陥っていることも考えられます。この問題は、このオ プションを使って回避できます。メッセージのReceived: ヘッダフィールドの数が、ここで 設定した値を超えているときには、そのメッセージはエンキューアで拒否されます。つま り、メッセージのエンベロープに指定されている受取人アドレスにメッセージが配信される ことはありません。

処理の遅延

通信モジュールでメッセージの転送に失敗した場合、そのモジュールにより、カーネルキュー管理コ ンポーネントを介して処理が遅延されます。この場合の処理としては、次の3 種類があります。


デキューア

通信モジュールによってメッセージが転送された場合、または、致命的エラーが発生したためメッセー ジの処理が拒否された場合、そのメッセージは、モジュールのキューから削除されます。同時に、モ ジュールにより配信レポートが作成され、そのレポートがデキューア(Dequeuer) カーネルコンポー ネントに渡されます。

デキューアコンポーネントで配信レポートが受信されると、その情報が処理されます。続いて、デ キューア上で配信ステータス通知メッセージ(DSN) が作成され、システムに送られます。その後、配信ステータス通知メッセージがメッセージのオリジナルの差出人に配信されます。ここで、メッセー ジの受取人が複数あるときには、各受取人に関する情報が配信ステータス通知メッセージに挿入され ます(設定可能、下記を参照)。

上記のようにして受取人に関する情報がすべて挿入されると、そのメッセージがすべてのキューから デキュー(キューから削除) されます。同時に、デキューアによって、そのメッセージのファイルが キューディレクトリから削除されます。

デキューアによる処理は、Web ブラウザを使って設定できます。設定する場合、WebAdmin インター フェイスの[Settings] セクションの[Queue] ページを開きます。

メッセージデキュー
ログレベル: スレッド数:
DSNメッセージまでの最大遅延時間: Return-Receipts送信先:
バウンス時のDSNメール内容:
フェールレポートのコピー先:
ログレベル
このオプションでは、デキューアによってサーバーログに記録される情報の種類を指定できま す。通常は、[Major & Failures] (配信レポート) に設定しておきます。
デキューアコンポーネントで生成されたログレコードには、DEQUEUER タグが付加されます。
スレッド数
このオプションでは、デキューアプロセッサ(スレッド) の数を指定できます。なお、デキュー アスレッドは、負荷が大きい場合でも通常は1 つで十分です。メッセージの処理が特殊であり、 生成される配信ステータス通知(DSN) メッセージの数が多いときなどに、スレッドの数を増や します。
DSNメッセージまでの最大遅延時間
このオプションを使って、メッセージの転送に成功または失敗したときから、配信ステータス 通知(DSN) メッセージが生成されるまでの時間を指定できます。この遅延時間が長いほど、配信ステータス通知(DSN) メッセージに格納されるレポート(受取人に関する情報) の数は多く なります。配信ステータス通知メッセージは、最後の受取人に関する情報が挿入された後、作 成されます。
バウンス時のDSNメール内容
DSN (配信ステータス通知のうちのエラーレポート) には、転送に失敗したメッセージの内容を 挿入することができます。このオプションでは、メッセージのうち、どの部分をDSN に挿入す るかを指定できます。
  • このオプションを[headers by default]に設定しておき、一方、このオプション をメッセージの送信者(差出人)が明示的に指定していなかったときには、転送に失敗 したメッセージのヘッダだけが挿入されます。
  • このオプションを[default]に設定しておき、一方、このオプションをメッセージの 送信者が明示的に指定していなかったときには、転送に失敗したメッセージ全体が挿入 されます。
  • このオプションを[always headers]に設定しておくと、メッセージのヘッダだけ がDSN に挿入されます。これは、メッセージの送信者がメッセージ全体が返るように 指定していたときでも同じです(送信者の設定は無視されます)
  • このオプションを[always body]に設定しておくと、メッセージ全体がDSN に挿入さ れます。これは、メッセージの送信者がメッセージのヘッダだけが返るように指定して いたときでも同じです(送信者の設定は無視されます)
フェールレポートのコピー先
チェックして有効にし、右側のテキストフィールドに電子メールアドレスを入力しておくと、デ キューアで生成されたエラーメッセージは、失敗したメッセージのリターンパスのほか、その 電子メールアドレスにも送信されるようになります。
Return-Receipts送信先
エラーレポートとは異なり、肯定レポート(配信ステータス通知のうちの配信レポートまた はリレーレポート) は、メッセージの送信者が要求したときにだけ生成されます。このオプ ションを使って、肯定レポートを要求できる送信者を指定できます。
全員  この設定にしておくと、メッセージの送信者はすべて肯定レポートを要求できるようになります。
クライアント この設定にしておくと、メッセージの送信者のIP アドレスが[Client IP Addresses] リストに登録されている場合、または、メッセージの送信者が正規(認証済み) のユーザーだった場合、肯定レポートの要求が可能になります。
認証済 この設定にしておくと、メッセージの送信者が正規(認証済み)のユーザー(WebUser, XIMSS, SMTP AUTH, MAPI, 経由で認証) だったときに、肯定レポートの要求が可能になります。
なし この設定では、どのユーザーも肯定レポートを要求できません。

キューのモニタリング

転送モジュール(SMTPLocal DeliveryLISTPIPE) mには単一もしくは複数のキューがあり、この キューを介してメッセージが配信されます。モジュールではそれぞれ、独自の方法を使ってキューが 構築されます(例えば、SMTP モジュールでは通常、メッセージ配信先のリモートドメインごとに独 立したキューを構築され、一方、Local Delivery モジュールではローカルアカウントごとにキューが 構築されます)。各モジュールによるキュー構築については、詳しくは各モジュールの説明を参照し てください。

モジュールの[Monitor] ページには、キュー名( リンク) が表示されます。このリンクをクリック すると、そのモジュール(ホスト) のキューページが開きます。

  2 件中 2 件が選択されました

モジュール状態最後の問題
SMTP 処理 no response

メッセージ キュー内 Return Path 宛先数 サイズ 遅延 最後の問題
44220010 5 min <system_admin@domain.dom> 2 634
44220003 15 min <user2@domain3.dom> 1 26K

キューページの表の上部には、キューに関する次のような情報が表示されます。
モジュール
このキューが、どの転送モジュール(SMTP など)のキューであるかが示されます。モジュー ルの名前はリンクになっており、クリックすると、そのモジュールの[Monitor]ページが開 きます。
状態
Active - この文字列が表示されている場合、このキューが現在、モジュールによって処理されている(アクティブである)ことを示します。
Ready - このキューがいつでも、モジュールによって処理可能な状態であること、つまり処理の準備ができていることを示します。
Delayed till time - 時刻- このキューが、指定されている時刻まで処理されないこと(遅延される) を示します。例えば、このキューによる転送処理にエラーが発生している場合(SMTP ホストが応答しない、ローカルアカウントのストレージクォータが超過など)、この状態になります。
最後の問題
この欄には、直前のキュー転送処理エラーが示されます。

上記の情報の下には、キューに格納されている各メッセージに関する情報が表示されます。表示され る情報は次の通りです。

メッセージ
この欄には、メッセージの内部ID が表示されます。内部ID はリンクになっており、クリッ クすると[Message Monitor] ページが開きます。
キュー内
この欄には、メッセージが今までキューに置かれている時間の長さが表示されます。
Return Path
メッセージのエンベロープの"Return-Path" アドレスです。
宛先数
メッセージの宛先アドレスの数で、この数のアドレスが、このキューのホスト(モジュー ル)に送られます。例えば、宛先アドレスがuser1@company.dom とuser2@company.dom の メッセージがSMTP を介して送信される場合、そのメッセージはSMTP のドメインcompany. dom のキューに格納され、この欄の値は2 となります。
サイズ
メッセージのサイズです。
遅延 最後の問題
メッセージの配信が失敗したときには、転送モジュールによって、そのメッセージの配信が 遅延されます(キュー全体の処理が遅延されることはありません)。その場合、この欄に再 度、そのメッセージが配信される時刻が表示されます。[Last Error] 欄には、転送処理が失敗した理由が示されます。

[Can Release Queues]アクセス権があり、現在の状況(Status) が[Delayed] の場合(上記を参照)、 モジュールのキューページには[Release Now] ボタンが表示されます。このボタンをクリックする と、キューに設定されている遅延時間がリセットされ、キューの処理がすぐに再開されます。

また、[Can Reject Queues]アクセス権があり、現在の状況(Status) が[Delayed] または[Ready] の場合(上記を参照)、モジュールのキューページには[Reject Host Queue] ボタンが表示されます。 このボタンをクリックすると、キューが拒否(取り消し) されます。

配信失敗レポート停止

[Reject Host Queue] ボタンの右のフィールドにはテキストを入力できます。入力したテキストを 使って、このキューに格納されている全メッセージに関するエラーレポートが作成されます。


メッセージのモニタリング

サーバーキューのメッセージの状態をチェックしたい場合、モジュールのキューページのメッセージ ( リンク)、またはモジュール以外のコンポーネントの[Monitor] ページのメッセージ( リンク) を クリックします。[Message Monitor] ページが開きます。

Return-Path:<CGatePro-report@mail.communigate.com>
Message-ID:<list-26325892@mail.communigate.com>
Envelope-ID:
Subject:Re: FormMail.pl configured for CGP
Size:37222 bytes (34018 in envelope)
Submitted:Mon, 30 Dec 2002 09:16:58 -0800 (12hours ago)

宛先 モジュール キュー 状態 リトライ
postmaster@domain1.domSMTPdomain1.domDelayed24min
john.smith@domain2.domSMTPdomain2.domDelayed57min

[Message Monitor] ページの上部には、メッセージの各種属性が表示されます。属性は上から順に、 リターンパス、メッセージID、エンベロープID (存在する場合)、メッセージの件名、サイズ、メッ セージがサーバーキューに送信されたときの時刻です。

各種属性の下には、メッセージのアクティブの受取人アドレスがすべて表示されます(処理済みのア ドレスは表示されません)。また、各アドレスについてそれぞれ次の情報が表示されます。

宛先
受取人(宛先)アドレスです。
モジュール
このアドレスを処理するモジュールの名前で、リンクになっています。クリックすると、そ のモジュールの[Monitor]ページが開きます。
キュー
このアドレスが格納されているキューのホスト(キューの構築元のモジュール)の名前で、 リンクになっています。クリックすると、そのモジュールのキューページが開きます。
状態
処理中 - このアドレスが現在、処理されていることを示します。
レディ - このアドレスの処理の準備が整っており、いつでも処理を開始できることを示します。
停止 - このアドレスを受取人とするメッセージの処理が遅延されていることを示します。
遅延 - このアドレスを受取人とするメッセージのキューの処理が遅延されていることを示します。
リトライ
このアドレスを受取人とするメッセージの処理、または、このアドレスを受取人とするメッ セージのキューの処理が再開されるまでの時間の長さです。

[Can Reject Queues]アクセス権がある場合、[Reject Message] ボタンが表示されます。このボタン をクリックすると、アクティブのアドレスの処理がすべて拒否(取り消し) されます。

配信失敗レポート停止

[Reject Message] ボタンで拒否されるのは、アクティブのアドレス(未処理のアドレス) だけです。

ボタンの右のフィールドにはテキストを入力でき、このテキストを使って、拒否された受取人アドレ スに関するエラーレポートが生成されます。


CommuniGate® Pro Guide. Copyright © 1998-2007, Stalker Software, Inc.