(57)【要約】指定されたメッセージに対して関係付けられた動作をもつフィルタを送信者が定義できるメッセージ配信手法が開示される。送信者はメッセージを処理システムに発信し、処理システムはメッセージに対してフィルタを評価する。整合すれば、処理システムは指定された動作を実施する。一実施形態において、処理システムは異なる受信側システムに同じメッセージを複数回送信でき、それぞれの受信側システムに対してメッセージのソースアドレス及び送出インターフェースを修正できる。さらに、ソースアドレスまたはインターフェースは、受信側システムがメッセージの別のコピーをブロックするというような外部イベントを受けて修正することができる。単一のメッセージ処理システムを多数のメッセージ送信ゲートウエイのように見せかけることができ、特定のメッセージが受信者におけるメッセージブロッキング技術による影響を受けずに宛先に届く機会を増やす。大量メール発信者の場合は、相異なるフィルタを相異なるキャンペーンに対応させることができる。
2006515703.tif 000002
【特許請求の範囲】
【請求項１】
電子メッセージを送信する方法において、
それぞれがルール及び関連付けられた動作を有する、１つまたはそれより多くのメッセージフィルタに関する定義を受信及び格納する工程、
一人またはそれより多くの受取人に宛てられた１つまたはそれより多くのメッセージを受信する工程、
前記メッセージフィルタの前記ルールを前記１つまたはそれより多くのメッセージに対して整合比較する工程、及び
前記メッセージフィルタの内の１つの特定のルールが前記メッセージの内の１つに整合した場合に、前記メッセージの内の前記１つを前記一人またはそれより多くの受取人への配信のために待ち行列に入れる前に、特定の関連付けられた動作を前記メッセージの内の前記１つに実施する工程、
を有してなることを特徴とする方法。
【請求項２】
前記関連付けられた動作が変更ソースからの配信を指定し、前記関連付けられた動作を実施する工程が、前記メッセージの配信元のソースホスト名を前記メッセージに設定する工程を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記関連付けられた動作が変更ソースからの配信を指定し、前記関連付けられた動作を実施する工程が、前記メッセージの配信元のソースＩＰアドレスを前記メッセージに設定する工程を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記関連付けられた動作が変更ソースからの配信を指定し、前記関連付けられた動作を実施する工程が、前記メッセージの配信元のインターフェースを前記メッセージに設定する工程を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記関連付けられた動作が、変更ソースからの配信を指定し、インターフェース名を識別し、前記関連付けられた動作を実施する工程が、前記メッセージの配信元のソースホスト名を前記メッセージに設定する工程及び前記インターフェース名に関連付けられたインターフェースを通じて前記メッセージを配信する工程を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記関連付けられた動作が変更ソースからの配信を指定してインターフェース名を識別し、
前記関連付けられた動作を実施する工程が、
前記指定されたインターフェースに関連付けられるホスト名を決定する工程、
前記メッセージの配信元のソースホスト名を前記メッセージに設定する工程、
前記メッセージの宛先ドメイン、前記インターフェース名及び前記ホスト名に一意的に関連付けられる配信待ち行列を作成する工程、及び
前記メッセージを前記配信待ち行列に入れる工程、
を含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記関連付けられた動作が変更ソースからの配信を指定してインターフェース名及びホスト名を識別し、前記関連付けられた動作を実施する工程が、前記メッセージに、「received by」メッセージヘッダを前記ホスト名と同じとして設定する工程を含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記関連付けられた動作が変更ｅ−メールアドレスへの配信を指定して配信アドレスを識別し、前記関連付けられた動作を実施する工程が、前記メッセージに、「RCPT TO」要素を前記変更ｅ−メールアドレスと同じとして設定する工程を含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記関連付けられた動作がさらにコピーカウント値を指定し、前記関連付けられた動作を実施する工程が、前記メッセージの本来の受取人の数に等しい数の前記メッセージのコピーを前記変更ｅ−メールアドレスに送信する工程を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記関連付けられた動作が変更ホストへの配信を指定してホスト名を識別し、前記関連付けられた動作を実施する工程が、前記メッセージの全ての受取人に対する宛先メールホストアドレスを前記ホスト名と同じとして前記メッセージに設定する工程を含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記関連付けられた動作が通知を指定して通知アドレスを識別し、
前記関連付けられた動作を実施する工程が、
前記メッセージフィルタの内の特定の１つを識別する情報、前記メッセージからのアドレス情報、及び前記メッセージフィルタの内の前記特定の１つに整合した前記メッセージからのヘッダ情報を含む電子通知を作成する工程、及び
前記電子通知を前記通知アドレスに送信する工程、
を含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記メッセージフィルタのそれぞれが、実質的に下表：
【表１】
2006515703.tif 000008
に等価なバッカス−ナウアフォーム（Backus-Naur Form）で記述することができる文法に準拠することを特徴とする請求項１に記載の方法。
【請求項１３】
前記メッセージフィルタのそれぞれが前記１つまたはそれより多くのメッセージの送信者の相異なる通信キャンペーンに関係付けられることを特徴とする請求項１に記載の方法。
【請求項１４】
前記受信、格納、整合比較及び実施する工程が、送信者から大量のメッセージを受信し、前記メッセージフィルタにしたがって前記メッセージを処理し、前記メッセージの１つまたはそれより多くを受信者または受取人に発信するメッセージ処理システムによって実施されることを特徴とする請求項１に記載の方法。
【請求項１５】
前記メッセージフィルタのそれぞれが前記１つまたはそれより多くのメッセージの送信者の相異なる通信キャンペーンに関係付けられ、
特定の通信キャンペーンに対する前記それぞれのメッセージフィルタが相異なるソースホスト名を指定し、
前記受信、格納、整合比較及び実施する工程が、前記送信者から大量のメッセージを受信し、前記メッセージフィルタにしたがって前記メッセージを処理し、前記メッセージフィルタにおいて前記送信者によって指定されるように複数の相異なるソースホスト名を用いて受信者または受取人に前記メッセージを発信することにより、前記送信者に対して仮想ゲートウエイとしてはたらく、メッセージ処理システムによって実施される、
ことを特徴とする請求項１に記載の方法。
【請求項１６】
電子メールメッセージを送信する方法において、
ルールと、変更ソースからの配信を指定し、インターフェース名及びホスト名を識別する、関連付けられた動作とをそれぞれが有する１つまたはそれより多くのメッセージフィルタの定義を受信及び格納する工程、
送信者から、一人またはそれより多くの受取人に宛てられた１つまたはそれより多くの電子メールメッセージを受信する工程、
前記メッセージフィルタを前記１つまたはそれより多くの電子メールメッセージに対して整合比較する工程、及び
前記メッセージフィルタの内の１つのルールが前記メッセージの内の１つに整合した場合に、前記メッセージの内の前記１つを前記一人またはそれより多くの受取人への配信のために待ち行列に入れる前に、
前記メッセージの配信元のソースホスト名を前記メッセージに設定し、
前記メッセージの宛先ドメイン、前記インターフェース名及び前記ホスト名に一意的に関係付けられる配信待ち行列を作成し、
前記メッセージを前記配信待ち行列に入れる、
ことにより、
前記関連付けられた動作を前記メッセージの内の前記１つに実施する工程、
を有してなることを特徴とする方法。
【請求項１７】
１つまたはそれより多くのネットワークインターフェースを有するメッセージ処理システムを用いて電子メッセージを送信する方法において、前記ネットワークフィルタのそれぞれを複数のネットワークアドレスのいずれかに割り当てることができ、
送出インターフェースへのメッセージ属性の１つまたはそれより多くのマッピングを受信及び格納する工程、
受取人に宛てられたメッセージを受信する工程、及び
前記１つまたはそれより多くのマッピングの内の第１のマッピングが前記メッセージに整合する第１のメッセージ属性を指定するときに、
関連付けられた第１の送出インターフェースを前記第１のマッピングから選択する工程、及び
前記選択された第１の出力インターフェースを通じて前記メッセージを送信する工程、
を有してなることを特徴とする方法。
【請求項１８】
１つまたはそれより多くのマッピングを受信及び格納する前記工程が、
メッセージ属性及び送出インターフェースを指定するコマンドラインインターフェースコマンドを受信する工程、及び
前記コマンドに基づくマッピング入力を送出インターフェースへの属性のマッピングのセットに作成及び格納する工程、
を含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
電子メッセージを配信するための命令の１つまたはそれより多くのシーケンスを搬送するコンピュータ読取可能媒体において、前記命令が１つまたはそれより多くのプロセッサによって実施されるときに、前記１つまたはそれより多くのプロセッサに、
ルール及び関連付けられた動作をそれぞれが有する１つまたはそれより多くのメッセージフィルタに関する定義を受信及び格納する工程、
一人またはそれより多くの受取人に宛てられた１つまたはそれより多くのメッセージを受信する工程、
前記メッセージフィルタの前記ルールを前記１つまたはそれより多くのメッセージに対して整合比較する工程、
前記メッセージフィルタの内の１つの特定のルールが前記メッセージの内の１つに整合した場合に、前記一人またはそれより多くの受取人への配信のために前記メッセージの内の前記１つを待ち行列に入れる前に、特定の関連付けられた動作を前記メッセージの内の前記１つに実施する工程、
を実行させることを特徴とするコンピュータ読取可能媒体。
【請求項２０】
前記関係付けられた動作が変更ソースからの配信を指定し、前記関連付けられた動作を実施する工程が、前記メッセージの配信元のソースホスト名を前記メッセージに設定する工程を含むことを特徴とする請求項１９に記載のコンピュータ読取可能媒体。
【請求項２１】
前記関連付けられた動作が変更ソースからの配信を指定し、前記関連付けられた動作を実施する工程が、前記メッセージの配信元のソースＩＰアドレスを前記メッセージに設定する工程を含むことを特徴とする請求項１９に記載のコンピュータ読取可能媒体。
【請求項２２】
前記関連付けられた動作が変更ソースからの配信を指定し、前記関連付けられた動作を実施する工程が、前記メッセージの配信元のインターフェースを前記メッセージに設定する工程を含むことを特徴とする請求項１９に記載のコンピュータ読取可能媒体。
【請求項２３】
前記関連付けられた動作が変更ソースからの配信を指定してインターフェース名を識別し、前記関連付けられた動作を実施する工程が、前記メッセージの配信元のソースホスト名を前記メッセージに設定する工程及び前記インターフェース名に関連付けられたインターフェースを通じて前記メッセージを配信する工程を含むことを特徴とする請求項１９に記載の方法。
【請求項２４】
前記関連付けられた動作が変更ソースからの配信を指定してインターフェース名を識別し、
前記関連付けられた動作を実施する工程が、
前記指定されたインターフェースに関連付けられるホスト名を決定する工程、
前記メッセージの配信元のソースホスト名を、前記メッセージに、設定する工程、
前記メッセージの宛先ドメイン、前記インターフェース名及び前記ホスト名に一意的に関連付けられる配信待ち行列を作成する工程、及び
前記メッセージを前記配信待ち行列に入れる工程、
を含むことを特徴とする請求項１９に記載のコンピュータ読取可能媒体。
【請求項２５】
前記関連付けられた動作が、変更ソースからの配信を指定してインターフェース名及びホスト名を識別し、前記関連付けられた動作を実施する工程が、「received by」メッセージヘッダを前記ホスト名と同じとして前記メッセージに設定する工程を含むことを特徴とする請求項１９に記載のコンピュータ読取可能媒体。
【請求項２６】
前記関連付けられた動作が、変更ｅ−メールアドレスへの配信を指定して配信先アドレスを識別し、前記関連付けられた動作を実施する工程が、「RCPT TO」要素を前記変更ｅ−メールアドレスと同じとして前記メッセージに設定する工程を含むことを特徴とする請求項１９に記載のコンピュータ読取可能媒体。
【請求項２７】
前記関連付けられた動作がさらにコピーカウント値を指定し、前記関連付けられた動作を実施する工程が、前記メッセージの本来の受取人の数に等しい数の前記メッセージのコピーを前記変更ｅ−メールアドレスに送信する工程を含むことを特徴とする請求項２６に記載のコンピュータ読取可能媒体。
【請求項２８】
前記関連付けられた動作が、変更ホストへの配信を指定し、ホスト名を識別し、前記関連付けられた動作を実施する工程が、前記メッセージに、前記メッセージの全ての受取人に対する宛先メールホストアドレスを前記ホスト名と同じとして設定する工程を含むことを特徴とする請求項１９に記載のコンピュータ読取可能媒体。
【請求項２９】
前記関連付けられた動作が、通知を指定して通知アドレスを識別し、
前記関連付けられた動作を実施する工程が、
前記メッセージフィルタの内の特定の１つを識別する情報、前記メッセージからのアドレス情報及び前記メッセージフィルタの内の前記特定の１つに整合した前記メッセージからのヘッダ情報を含む電子通知を作成する工程、及び
前記電子通知を前記通知アドレスに送信する工程、
を含むことを特徴とする請求項１９に記載のコンピュータ読取可能媒体。
【請求項３０】
前記メッセージフィルタのそれぞれが、実質的に下表：
【表２】
2006515703.tif 000009
に等価なバッカス−ナウアフォームで記述することができる文法に準拠することを特徴とする請求項１９に記載のコンピュータ読取可能媒体。
【請求項３１】
前記メッセージフィルタのそれぞれが前記１つまたはそれより多くのメッセージの送信者の相異なる通信キャンペーンに関係付けられることを特徴とする請求項１９に記載のコンピュータ読取可能媒体。
【請求項３２】
前記受信、格納、整合比較及び実施する工程が、送信者から大量のメッセージを受信し、前記メッセージフィルタにしたがって前記メールを処理し前記メッセージの１つまたはそれより多くを受信者または受取人に発信する、メッセージ処理システムによって実施されることを特徴とする請求項１９に記載のコンピュータ読取可能媒体。
【請求項３３】
前記メッセージフィルタのそれぞれが前記１つまたはそれより多くのメッセージの送信者の相異なる通信キャンペーンに関係付けられ、
特定の通信キャンペーンに対する前記それぞれのメッセージフィルタが相異なるソースホスト名を指定し、
前記受信、格納、整合比較及び実施する工程が、前記送信者から大量のメッセージを受信し、前記メッセージフィルタにしたがって前記メッセージを処理し、前記メッセージフィルタにおいて前記送信者によって指定されるように複数の相異なるソースホスト名を用いて受信者または受取人に前記メッセージを発信することにより、前記送信者に対して仮想ゲートウエイとしてはたらく、メッセージ処理システムによって実施される、
ことを特徴とする請求項１９に記載のコンピュータ読取可能媒体。
【請求項３４】
電子メッセージを配信するための装置において、
ルール及び関連付けられた動作をそれぞれが有する１つまたはそれより多くのメッセージフィルタの定義を受信及び格納するための手段、
一人またはそれより多くの受取人に宛てられた１つまたはそれより多くのメッセージを受信するための手段、
前記メッセージフィルタの前記ルールを前記１つまたはそれより多くのメッセージに対して整合比較するための手段、及び
前記メッセージフィルタの内の１つの特定のルールが前記メッセージの内の１つに整合したときに、前記一人またはそれより多くの受取人への配信のために前記メッセージの内の前記１つを待ち行列に入れる前に、特定の関連付けられた動作を前記メッセージの内の前記１つに実施するための手段、
を備えることを特徴とする装置。
【請求項３５】
前記関連付けられた動作が変更ソースからの配信を指定し、前記関連付けられた動作を実施するための前記手段が、前記メッセージの配信元のソースホスト名を前記メッセージに設定するための手段を含むことを特徴とする請求項３４に記載の装置。
【請求項３６】
前記関連付けられた動作が変更ソースからの配信を指定し、前記関連付けられた動作を実施するための前記手段が、前記メッセージの配信元のソースＩＰアドレスを前記メッセージに設定するための手段を含むことを特徴とする請求項３４に記載の装置。
【請求項３７】
前記関連付けられた動作が変更ソースからの配信を指定し、前記関連付けられた動作を実施するための前記手段が、前記メッセージの配信元のインターフェースを前記メッセージに設定するための手段を含むことを特徴とする請求項３４に記載の装置。
【請求項３８】
前記関連付けられた動作が変更ソースからの配信を指定してインターフェース名を識別し、前記関連付けられた動作を実施するための前記手段が、前記メッセージの配信元のソースホスト名を前記メッセージに設定するための手段及び前記インターフェース名に関連付けられたインターフェースを通じて前記メッセージを配信するための手段を含むことを特徴とする請求項３４に記載の装置。
【請求項３９】
前記関連付けられた動作が変更ソースからの配信を指定してインターフェース名を識別し、
前記関連付けられた動作を実施するための前記手段が、
前記指定されたインターフェースに関連付けられるホスト名を決定するための手段、
前記メッセージの配信元のソースホスト名を、前記メッセージに、設定するための手段、
前記メッセージの宛先ドメイン、前記インターフェース名及び前記ホスト名に一意的に関連付けられる配信待ち行列を作成するための手段、及び
前記メッセージを前記配信待ち行列に入れるための手段、
を含むことを特徴とする請求項３４に記載の装置。
【請求項４０】
前記関連付けられた動作が変更ソースからの配信を指定してインターフェース名及びホスト名を識別し、前記関連付けられた動作を実施するための前記手段が、前記メッセージに、「received by」メッセージヘッダを前記ホスト名と同じとして設定するための手段を含むことを特徴とする請求項３４に記載の装置。
【請求項４１】
前記関連付けられた動作が、変更ｅ−メールアドレスへの配信を指定して配信アドレスを識別し、前記関連付けられた動作を実施するための前記手段が、「RCPT TO」要素を前記変更ｅ−メールアドレスと同じとして前記メッセージに設定するための手段を含むことを特徴とする請求項３４に記載の装置。
【請求項４２】
前記関連付けられた動作がさらにコピーカウント値を指定し、前記関連付けられた動作を実施するための前記手段が、前記メッセージの本来の受取人の数に等しい数の前記メッセージのコピーを前記変更ｅ−メールアドレスに送信するための手段を含むことを特徴とする請求項４１に記載の装置。
【請求項４３】
前記関連付けられた動作が変更ホストへの配信を指定してホスト名を識別し、前記関連付けられた動作を実施するための前記手段が、前記メッセージの全ての受取人に対する宛先メールホストアドレスを前記ホスト名と同じとして前記メッセージに設定するための手段を含むことを特徴とする請求項３４に記載の装置。
【請求項４４】
前記関連付けられた動作が通知を指定して通知アドレスを識別し、
前記関連付けられた動作を実施するための前記手段が、
前記メッセージフィルタの内の特定の１つを識別する情報、前記メッセージからのアドレス情報、及び前記メッセージフィルタの内の前記特定の１つに整合した前記メッセージからのヘッダ情報を含む電子通知を作成するための手段、及び
前記電子通知を前記通知アドレスに送信するための手段、
を含むことを特徴とする請求項３４に記載の装置。
【請求項４５】
前記メッセージフィルタのそれぞれが、実質的に下表：
【表３】
2006515703.tif 000010
に等価なバッカス−ナウアフォームで記述することができる文法に準拠することを特徴とする請求項３４に記載の装置。
【請求項４６】
前記メッセージフィルタのそれぞれが前記１つまたはそれより多くのメッセージの送信者の相異なる通信キャンペーンに関係付けられることを特徴とする請求項３４に記載の装置。
【請求項４７】
前記受信、格納、整合比較及び実施するための前記手段が、送信者から大量のメッセージを受信し、前記メッセージフィルタにしたがって前記メールを処理し、前記メッセージの１つまたはそれより多くを受信者または受取人に発信するメッセージ処理システム内にあることを特徴とする請求項３４に記載の装置。
【請求項４８】
前記メッセージフィルタのそれぞれが前記１つまたはそれより多くのメッセージの送信者の相異なる通信キャンペーンに関係付けられ、
特定の通信キャンペーンに対する前記それぞれのメッセージフィルタが相異なるソースホスト名を指定し、
前記受信、格納、整合比較及び実施するための前記手段が、前記送信者から大量のメッセージを受信し、前記メッセージフィルタにしたがって前記メッセージを処理し、前記メッセージフィルタにおいて前記送信者によって指定されるように複数の相異なるソースホスト名を用いて受信者または受取人に前記メッセージを発信することにより、前記送信者に対し仮想ゲートウエイとしてはたらく、メッセージ処理システム内にある、
ことを特徴とする請求項３４に記載の装置。
【請求項４９】
電子メッセージを配信するための装置において、
データネットワークに接続された、前記データネットワークから１つまたはそれより多くのパケットフローを受信するためのネットワークインターフェース、
プロセッサ、
前記プロセッサにより実行されるときに、前記プロセッサに、
ルール及び関連付けられた動作をそれぞれが有する１つまたはそれより多くのメッセージフィルタの定義を受信及び格納する工程、
一人またはそれより多くの受取人に宛てられた１つまたはそれより多くのメッセージを受信する工程、
前記メッセージフィルタの前記ルールを前記１つまたはそれより多くのメッセージに対して整合比較する工程、及び
前記メッセージフィルタの内の１つの特定のルールが前記メッセージの内の１つの整合したときに、前記一人またはそれより多くの受取人への配信のために前記メッセージの内の前記１つを待ち行列に入れる前に、特定の関連付けられた動作を前記メッセージの前記１つに実施する工程、
を実行させる命令の１つまたはそれより多くの格納されたシーケンス、
を備えることを特徴とする装置。
【請求項５０】
前記関連付けられた動作が変更ソースからの配信を指定し、前記関連付けられた動作を実施する工程が、前記メッセージの配信元のソースホスト名を前記メッセージに設定する工程を含むことを特徴とする請求項４９に記載の装置。
【請求項５１】
前記関連付けられた動作が変更ソースからの配信を指定し、前記関連付けられた動作を実施する工程が、前記メッセージの配信元のソースＩＰアドレスを前記メッセージに設定する工程を含むことを特徴とする請求項４９に記載の方法。
【請求項５２】
前記関連付けられた動作が変更ソースからの配信を指定し、前記関連付けられた動作を実施する工程が、前記メッセージの配信元のインターフェースを前記メッセージに設定する工程を含むことを特徴とする請求項４９に記載の装置。
【請求項５３】
前記関連付けられた動作が変更ソースからの配信を指定してインターフェース名を識別し、前記関連付けられた動作を実施する工程が、前記メッセージの配信元のソースホスト名を前記メッセージに設定する工程及び前記インターフェース名に関連付けられたインターフェースを通じて前記メッセージを配信する工程を含むことを特徴とする請求項４９に記載の方法。
【請求項５４】
前記関連付けられた動作が変更ソースからの配信を指定してインターフェース名を識別し、前記関連付けられた動作を実施する工程が、
前記指定されたインターフェースに関連付けられるホスト名を決定する工程、
前記メッセージの配信元のソースホスト名を前記メッセージに設定する工程、
前記メッセージの宛先ドメイン、前記インターフェース名及び前記ホスト名に一意的に関連付けられる配信待ち行列を作成する工程、及び
前記メッセージを前記配信待ち行列に入れる工程、
を含むことを特徴とする請求項４９に記載の装置。
【請求項５５】
前記関連付けられた動作が変更ソースからの配信を指定してインターフェース名及びホスト名を識別し、前記関連付けられた動作を実施する工程が、「received by」メッセージヘッダを前記ホスト名と同じとして前記メッセージに設定する工程を含むことを特徴とする請求項４９に記載の装置。
【請求項５６】
前記関連付けられた動作が変更ｅ−メールアドレスへの配信を指定して配信アドレスを識別し、前記関連付けられた動作を実施する工程が、「RCPT TO」要素を前記変更ｅ−メールアドレスと同じとして前記メッセージに設定する工程を含むことを特徴とする請求項４９に記載の装置。
【請求項５７】
前記関連付けられた動作がさらにコピーカウント値を指定し、前記関連付けられた動作を実施する工程が、前記メッセージの本来の受取人の数に等しい数の前記メッセージのコピーを前記変更ｅ−メールアドレスに送信する工程を含むことを特徴とする請求項５６に記載の装置。
【請求項５８】
前記関連付けられた動作が変更ホストへの配信を指定してホスト名を識別し、前記関連付けられた動作を実施する工程が、前記メッセージの全ての受取人に対する宛先メールホストアドレスを前記ホスト名と同じとして前記メッセージに設定する工程を含むことを特徴とする請求項４９に記載の装置。
【請求項５９】
前記関連付けられた動作が通知を指定して通知アドレスを識別し、
前記関連付けられた動作を実施する工程が、
前記メッセージフィルタの内の特定の１つを識別する情報、前記メッセージからのアドレス情報、及び前記メッセージフィルタの内の前記特定の１つに整合した前記メッセージからのヘッダ情報を含む電子通知を作成する工程、及び
前記電子通知を前記通知アドレスに送信する工程、
を含むことを特徴とする請求項４９に記載の装置。
【請求項６０】
前記メッセージフィルタのそれぞれが、実質的に下表：
【表４】
2006515703.tif 000011
に等価なバッカス−ナウアフォームで記述することができる文法に準拠することを特徴とする請求項４９に記載の装置。
【請求項６１】
前記メッセージフィルタのそれぞれが前記１つまたはそれより多くのメッセージの送信者の相異なる通信キャンペーンに関係付けられることを特徴とする請求項４９に記載の装置。
【請求項６２】
前記受信、格納、整合比較及び実施する工程が、送信者から大量のメッセージを受信し、前記メッセージフィルタにしたがって前記メールを処理し、前記メッセージの１つまたはそれより多くを受信者または受取人に発信するメッセージ処理システムによって実施されることを特徴とする請求項１に記載の装置。
【請求項６３】
前記メッセージフィルタのそれぞれが前記１つまたはそれより多くのメッセージの送信者の相異なる通信キャンペーンに関係付けられ、
特定の通信キャンペーンに対する前記それぞれのメッセージフィルタが相異なるソースホスト名を指定し、
前記受信、格納、整合判定及び実施する工程が、前記送信者から大量のメッセージを受信し、前記メッセージフィルタにしたがって前記メッセージを処理し、前記メッセージフィルタにおいて前記送信者によって指定されるように複数の相異なるソースホスト名を用いて受信者または受取人に前記メッセージを発信することにより、前記送信者に対し仮想ゲートウエイとしてはたらくメッセージ処理システムによって実施される、
ことを特徴とする請求項４９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は全般的には電子メッセージの配信に関する。本発明は、さらに詳しくは、仮想ゲートウエイ手法を用いる電子メッセージの配信に関する。
【背景技術】
【０００２】
本節で説明する手法は実行可能であっても、必ずしも以前に考え出されたり実行されたりした手法ではない。したがって、本明細書で特に示されない限り、本節で説明される手法は本出願における請求事項に対する従来技術ではなく、本節における記載をもって従来技術と認められるものではない。
【０００３】
電子メッセージ通信システムの使用は近年大きく増加した。インターネットという特殊な情況において、今では電子メール（ｅメール）が、製造業者、商人、サービスプロバイダ及びその他の大量送信者による、既存または将来の顧客に対するマーケティングキャンペーン及びその他の通信のために広く用いられている。現代の電子システムを用いれば、数１００万件ものそのようなメッセージの送信費用は微々たるものであり、応答率が１％未満であっても送信した価値はあったと見なされている。すなわち、受取人の有効なメール受けへメッセージが無事に配信されることは、通常、送信者の収入に通じる。
【０００４】
一手法において、送信者は対象とする個人のｅメールアドレスからなるメーリングリストを作成する。送信者は対象とする個人に送るｅメールのための母型メッセージすなわちテンプレートも作成する。母型メッセージ及びメーリングリストは、メーリングリスト上のそれぞれのアドレスに母型メッセージのコピーを発信するメールゲートウエイまたはその他の送信デバイスに供給される。
【０００５】
一般に、送信デバイスは単一のインターネットプロトコル（ＩＰ）アドレスによってインターネットにおいて識別され、ＩＰアドレスは、メッセージを表す送出ＩＰパケットのソースＩＰフィールドにおかれる。リスト内の個人に送られるメッセージは初めに、インターネットサービスプロバイダ（ＩＳＰ）、大企業または様々なソースから大量のメッセージを毎日受け取るその他の受信者に付随する入りメールゲートウエイで受け取られることが多い。
【０００６】
しかし、今では、そのような受信者の多くが大量の要りもしないｅメールメッセージ（スパム）の配信の防止を目的とするフィルタリング及びブロッキング技術を用いているから、この手法では、メッセージの多くは配信され得ない。例えば、全て同じソースＩＰアドレスの数多くの入りメッセージをある受信者の入りメールゲートウエイが検出すると、受信者はそのメッセージの配信を拒否することができる。受信者は、同様のメッセージの将来の配信を防止するフィルタを確立することもできる。これは、メッセージが‘スパム’ではなく、メンバー、顧客あるいは過去に送信者と取引をしたかまたはそのメッセージの受け取りに同意したその他の個人への正当な通信である場合でさえもおこり得る。
【０００７】
一手法では、受信者が、メッセージ件名行のキーワードを検索し、禁制ワードのリストに一致するキーワードを含むメッセージを撥除または隔離するフィルタリングまたはブロッキング技術を用いる。別の手法では、受信者が、疑わしい送信者からのメッセージを識別してその表示を禁止するために‘ブラックリスト’を用いる。友人またはその他の受諾できる送信者の個人的‘ホワイトリスト’でこれらの技術を強化し、‘ホワイトリスト’にある送信者からのメッセージだけを受け入れる受信者もいる。‘ホワイトリスト’及び‘ブラックリスト’はネットワークでつながれたソースから入手することもできる。‘ブラックリスト’ルックアップを実施するための技法は、本明細書の作成時点では、ワールドワイドウエッブの‘declude.com’ドメインのディレクトリ‘/junkmail/support/’においてオンラインで入手可能なドキュメント‘ipr4.htm’に説明されている。
【０００８】
正当な送信者に関して、問題の１つは、正当なメッセージが、そのようなフィルタリングまたはブロッキング技術によってブロックされるため、目的とする受信者に届かないことである。一方で、フィルタリングまたはブロッキング技術を用いている受信者は、フィルタリングまたはブロッキング技術が正当なメッセージを不要なメッセージから適切に弁別することができないことにより、正当なメッセージを受け取ることが定常的にできない。ある工業標準技術略語が禁制キーワードと同じになることがあり、‘スパム’フィルタを混乱させる。
【０００９】
さらに、受信者は‘スパム’フィルタで適切に止められない大量の不要メッセージを受信し続ける。この結果、今や多くの受信者が、限定された環境の下でない限り受信者のアドレスの公開を拒否している。これを受け、評判のよい私企業など、多くの正当な送信者は、顧客などの受信者がメッセージの受信に肯定的に同意しない限り受信者のアドレスが全く用いられない、‘選択加入’手順を開発した。これがなされた場合でも、フィルタリングまたはブロッキング技術は、‘選択加入’した受信者に送られる正当な発信者からのメッセージでさえも削除または隔離することがあり得る。
【００１０】
したがって、‘選択加入’した受信者に送られる通信のための正当なマーケティングツールとしてのｅメールの価値が減じつつある。多くの受信者は、それぞれのｅメール受けに届く‘スパム’の日々の猛攻撃に対して基本的に無防備なままである。多くの国々は‘スパム’送信に対して民法または刑法上の罰を課す制定法を有するが、これらの救済手段を受信者が実行するには時間がかかる。さらに、多くのインターネットサービスプロバイダ（ＩＳＰ）は積極的に‘スパム’送信者との通信または取引を識別および撥除するが、そのような不適切な活動の取締りはＩＳＰにかなりの費用を課す。
【００１１】
ＩＳＰはそのＩＳＰとのアカウントをもたない受取人に向けられるメッセージの処理にともなう費用も負う。そのような受取人に関し、ＩＳＰのメールシステムは一般に、受取人が不明であることを述べる自動‘返送’メッセージを作成する。実際上、メッセージに無効な送信者アドレスが付され、メッセージが無効な受取人に送信される場合に、‘二重返送’がおこり得る。返送メッセージを作成する装置及びソフトウエアの維持及び返送メッセージを送信者に向けてネットワークに送り返すためには費用がともなう。したがって、ＩＳＰに課される、不要メッセージから生じる‘返送’及び‘二重返送’イベント数を減らすことができるシステムまたは方法が必要とされている。
【００１２】
すなわち、インターネットｅ−メール情況において‘スパム’の問題は基本的に消耗戦である。大量のｅ−メールによって販促メッセージを送信する正当なマーケティング機関があり、有効な大量メッセージを送信する他の送信者がいる。しかし、一般に、‘スパム屋’自身以外には誰も‘スパム屋’の活動から利益を得ることはない。ＩＳＰ、私企業及びエンドユーザは全て、不都合、費用及び迷惑に困惑している。
【００１３】
さらに、エンドユーザには、複雑で、ランダムで、変更されてばかりいて、秘密であると思われるルールに基づいて、高価値のｅ−メールメッセージが定常的にブロックされるかまたは‘バルク’メールフォルダにおかれ得る。これは、ｅ−メール市場商人に費用を課し、ｅ−メールマーケティングの利点への信頼を送信者に失わせる。さらに、エンドユーザには‘ホワイトリスト’または同様の機構のモニタ、チェック、配信及び取決めに時間をかける必要がある。ＩＳＰ及び企業が‘スパム’対抗技術を用いていてさえ、それでも大量の‘スパム’メッセージがエンドユーザのｅ−メール受けに届くか、または間違ってバルクメールフォルダにおかれる。
【００１４】
上例の問題はｅ−メールの情況で存在するが、電話及びファクシミリ通信も類似の問題を抱えている。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
上記に基づけば、当該分野においては、受信者による是認し得ないブロッキングを防止する態様での発信者によるメッセージ発信を可能にするための手段が必要とされている。ＩＳＰ及び大企業などの受信者に用いられるスパムブロッキング技術によるブロッキングまたはフィリタリングなしに、インターネットを通じて対象受取人に大量のｅ−メールを送信できる、改善されたｅ−メールゲートウエイが特に必要とされている。
【００１６】
１つの可能な代替手法はそれぞれの送信者に異なるメールゲートウエイを割り当てることであろう。しかし、この手法は、余りにも高価なハードウエアを必要とするから、費用効果が低い。さらに、この手法は、異なるユーザリストに複数の異なるマーケティングまたはメッセージ送付‘キャンペーン’を開始する大量送信者が、受信者が１つのキャンペーンを受信した後に、受信者が引き続くキャンペーンを全てブロックしていることを見いだすかもしれないから、不完全な解決策である。したがって、複数の異なる送信者による単一のメールゲートウエイからの複数のキャンペーンの管理を可能にするための手段が必要とされている。
【課題を解決するための手段】
【００１７】
上記課題は、返送及び二重返送イベントの数を減らすことができるシステムまたは方法、受信者によるブロッキングを防止する態様での発信者によるメッセージ発信を可能にするための手段及び複数の異なる送信者による単一のメールゲートウエイからの複数のキャンペーンの管理を可能にするための手段により解決される。
【発明を実施するための最良の形態】
【００１８】
本発明を、限定としてではなく、例として、添付図面に示す。図面において、同様の参照数字は同様の構成要素を示す。
【００１９】
本出願明細書においては電子メッセージ配信手法が説明される。以下の説明では、説明の目的のため、本発明の完全な理解を提供するために数多くの詳細が述べられる。しかし、本発明はこれらの特定の詳細なしに実施され得ることが当業者には明らかであろう。また、本発明を不必要に曖昧にすることを避けるため、周知の構造及びデバイスはブロック図の形態で示される。
【００２０】
本明細書では以下の梗概、
１.０  全般的概要
２.０  電子メッセージ配信手法
２.１  用語解説
２.２  システム構造及び機能概要
２.３  メッセージ処理機能概要
２.４  インジェクションフィルタによるメッセージフィルタリング
３.０  メッセージフィルタの詳細な説明
３.１  処理ルールの説明
３.２  整合比較
３.３  ヘッダパース
３.4   フィルタ構造
３.５  フィルタ構文及びメモリ表現
４.０  ユーザインターフェース
５.０  実施機構−ハードウエア概要
６.０  拡張及び変更
にしたがって実施形態を説明する。
【００２１】
１.０  全般的概要
上述の[背景技術]において明確にされた課題及び以下の説明で明らかになるであろうその他の課題及び目的は、一態様において、電子メッセージを配信する方法を含む、本発明において達成される。メッセージ処理システムが、そのネットワークインターフェースが多くの相異なるネットワークアドレスに割り当てられるように、構成される。ソフトウエアコンポーネントは、メッセージを受信し、利用可能なネットワークアドレスのいずれにもメッセージを送信することができる。ソフトウエアコンポーネントは、受信したメッセージを解析し、利用可能なネットワークアドレスの内の１つを選択するために発見的方法を適用し、選択されたネットワークアドレスにメッセージを送信する。別の態様において、本発明は電子メッセージ配信のために構成されたコンピュータ装置及びコンピュータ読取可能媒体を含む。
【００２２】
全般に、本明細書に説明される方法及びシステムは、それによってメッセージ送信者が指定された大量のｅ−メールキャンペーンを仮想ネットワークアドレスに関係付けることができる技法を提供する。単一のネイティブネットワークアドレスを有する単一のメールゲートウエイで、単一の出力インターフェースを通じて複数の仮想ネットワークアドレスを用いる大量のｅ−メールを送信することができる。送信者またはゲートウエイ運用者はトラフィックまたはその他の要件に基づいて特定のキャンペーンに対して仮想アドレスを選択することができる。
【００２３】
別の実施形態の１つにおいて、キャンペーンにおけるメッセージの属性に基づいて特定のキャンペーンのために用いられる送出ポートを指定するために、フィルタリング言語が用いられる。メッセージ送信に先立ち、１つまたはそれより多くのスクリプトがフィルタリング言語で書かれる。スクリプトはパースされ、スクリプトの意味論的オブジェクトモデルがゲートウエイのメモリに構築される。オブジェクトモデルで表されるフィルタはそれぞれの送出メッセージに適用され、この結果、メッセージが送信される時点における特定ポートの選択が行われる。次いで、選択されたポートにキャンペーンのメッセージが送られる。メッセージのパケットは、パケットのソースアドレスフィールドに選択された仮想アドレスをおくために修正される。
【００２４】
ゲートウエイは、受信者がキャンペーンまたは仮想アドレスをブロックしたことを示す情報を受け取ると動的に応答できる。そのような情報には、受信者のメールゲートウエイから受信されるエラーコード、拒否された接続を示す情報、送出メール待ち行列内の増加等がある。これを受けて、メールゲートウエイが新しい仮想ネットワークアドレスを選択してメッセージを再送信するかまたは別の動作をとる。
【００２５】
フィルタ及びルールで表されるマッピングが第１のデータコンポーネントを送出インターフェース名と関係付ける。様々な実施形態において、第１のデータコンポーネントは、ｅ−メールアドレス、ドメイン名、ユーザ名または（クライアントＩＰアドレスのような）クライアントネットワークアドレスである。特定の実施形態の１つにおいて、２５４までのクラスＣ ＩＰアドレスを相異なるキャンペーンにマッピングすることができる。すなわち、単一のメールゲートウエイで２５４の相異なるメールゲートウエイが動作しているように見せかけることができる。特定の実施形態の１つにおいて、管理者は、優先インターフェースへの入りメッセージのキーとなる属性をマッピングするようにメッセージ処理システムに命令するための「変更ソースホスト」コマンドを用いる。いかなる数のそのようなマッピングもメッセージ処理システムに確立することができる。メッセージ処理システムが送信者からの入りメッセージを受信すると、メッセージ処理システムは、メッセージがマッピングで識別されたキーとなる属性のいずれかを有するか否かを判定する。有していれば、関連付けられた優先インターフェースを通じてメッセージが受取人に発信される。
【００２６】
フィルタはシステムの実行中に変更可能である。拡張可能性がサポートされる。ＩＰアドレスはメッセージ優先権機構に対するプロクシとして作用できる。メッセージのソースＩＰまたはホスト名を宛先またはその他のメッセージの特徴に基づいて修正するフィルタルールを確立することにより、メッセージルーティング履歴セキュリティプロトコルを達成することができる。フィルタを定義するためのウイザードインターフェースまたはコマンドラインインターフェースを提供することができる。
【００２７】
すなわち、指定されたメッセージに関する評価のための関係付けられた動作をもつフィルタを送信者が定義できる、メッセージ配信手法が開示される。指定された動作をもつフィルタの作成及び格納後、送信者は処理システムにメッセージを発信し、処理システムはメッセージに対してフィルタを評価する。整合すれば、処理システムは指定された動作をメッセージに実施する。一実施形態において、処理システムは相異なる受信側システムに同じメッセージを複数回送信することができ、それぞれの受信側システムに対してメッセージのソースＩＰアドレス及び送出インターフェースを修正することができる。さらに、ソースＩＰアドレスまたはインターフェースは、受信側システムによるメッセージの別のコピーのブロックなどの外部イベントを受けてフィルタにより修正することができる。このようにして、単一のメッセージ処理システムを多数の仮想メッセージ送信ゲートウエイのように見せかけることができ、よって、受信者におけるメッセージブロッキングまたはフィルタリング技術によってブロックされることなく、特定のメッセージがその宛先に届く機会を増やすことができる。大量メール発信者については、相異なるフィルタを相異なる通信キャンペーンに関係付けることができる。
【００２８】
２.０  電子メッセージ配信手法
２.１  用語解説
本説明において、以下の用語は以下の例示的意味を有する。
【００２９】
‘企業’は大量メッセージ送信を主なビジネスとしないビジネスエンティティを意味し、その従業員は受取人であることが多い。
【００３０】
‘受信者’は、メッセージを受信し、そのメッセージを受取人に配布する、ビジネスエンティティ、ハードウエア装置、ソフトウエアコンポーネントまたはこれらの組合せを意味する。受信者の例には、私企業、インターネットサービスプロバイダ（ＩＰＳ）、ウエッブベースｅ−メールサービス、オンラインコミニュティサイト等がある。
【００３１】
‘受取人’は送信者によって送信されるメッセージを読むか、用いるか、そうでければ反古にする、個々のアカウント、コンピュータまたはエンドユーザを意味する。受取人は受信者とのアカウントをもつエンドユーザであることが多い。
【００３２】
‘送信者’は大量のメッセージを、既存または将来の顧客、加入者、メンバーまたはその他の受取人に定常的に送信する個人またはビジネスエンティティを意味する。送信者の例として、オンラインビジネス及び実店舗ビジネスを含む小売業、広告サービス会社等がある。送信者には、別々のエンドユーザに対して保証された送信者ネットワークアドレスを登録及び管理する個人、あるいはメッセージを送信するかまたはメッセージを送信させるシステムも含まれる。
【００３３】
‘サービス運用者’は本明細書で定められる機能及びサービスの提供者としてはたらく信頼される第三者を意味する。
【００３４】
２.２  システム構造及び機能概要
図１Ａは電子メッセージ配信のためのシステムの概要を示すブロック図である。送出メッセージゲートウエイを所有するか、運用するかまたはこれに関係付けられる企業に付帯する送信者ホスト１０２が、サービス運用者によって所有されるかまたは運用されるメッセージ処理システム１０６に１つまたはそれより多くのネットワークを介して直接的または間接的に通信可能な態様で接続される。サービス運用者における管理ホスト１１４は、メッセージ処理システム１０６を構成し、管理するために用いることができる。サービス運用者は１つまたはそれより多くの送信者のメッセージを受信し、処理し、転送する。簡単な例を説明する目的で、図１Ａには１つの送信者が示されているが、実用実施形態においては、１日当り数１００万のメッセージを処理及び転送できるメッセージ処理システム１０６に、いずれも通信可能な態様で接続された数千の送信者が分散して存在し得る。
【００３５】
受信者ホスト１０８が通信可能な態様でメッセージ処理システム１０６に接続される。受信者ホスト１０８は、入りメッセージゲートウエイ１１０を所有するか、運用するかまたはこれに関係付けられる受信者に付帯する。受取人１１２が通信可能な態様でゲートウエイ１１０に接続される。受信者は、最終的に受取人１１２に配信されて受取人１１２によって読まれることが目的とされる送信者からのメッセージを受信できる複数の企業の内のいずれかを表す。
【００３６】
それぞれのゲートウエイ１０４，１１０は、本明細書に説明される機能を実施するように特別にプログラムされた、メッセージ転送エージェント（ＭＴＡ）、メールリレー、ｅ−メールリレー、ｅ−メールルータ、簡易メール転送プロトコル（ＳＭＴＰ）サーバ、ＱＭＱＰサーバまたはｅ−メールゲートウエイとしても知られる、汎用メッセージゲートウエイトを含むことができる。
【００３７】
簡単な例を説明する目的で、図１Ａは上で示されたコンポーネントを１つずつ示す。しかし、実用実施形態においては、どのような数の送信者、受信者、ゲートウエイ及び受取人とすることもできるし、数１０００または数１００万のそのようなコンポーネントの使用が考えられる。大容量ネットワーク環境において、メッセージ処理システム１０６は、スケーラビリティまたは負荷バランス調整目的のため、１つまたはそれより多くの段階またはサイトに重複して設けることができる。さらに、例示目的のために、ある実施形態はｅ−メールメッセージの処理に関して本明細書で説明される。しかし、別の実施形態において、メッセージは電話呼出またはページャーメッセージを含む。
【００３８】
図１Ａの構成においては、一般に、一実施形態において、送信者はサービス運用者に登録し、アカウントを入手する。サービス運用者の代表者はメッセージ処理システム１０６上に１つまたはそれより多くのメッセージフィルタを構成するために管理ホスト１１４を用いる。その後は任意の時点において、送信者１０２は、受取人１１２に向けられる１つまたはそれより多くのメッセージを、送出メッセージゲートウエイ１０２に送信させる。メッセージ処理システム１０６はメッセージにメッセージフィルタを適用し、指定された動作をメッセージに実施する。例えば、動作には、「メッセージを打ち切るかまたは転送しない」、「メッセージの宛先を変える」、「メッセージのアドレスを再指定する」、「ログに記入する」等がある。
【００３９】
メッセージは受信者の入りメッセージゲートウエイ１１０で受信される。メッセージは受取人１１２に配信するか、破棄するか、大量メッセージとしてマークすることができ、あるいはその他の動作がとられる。
【００４０】
上記は読者を図１Ａに慣れさせる目的で提供される例示的実施例の１つの動作の全般的な説明であるが、本明細書では、多くの変形例及び例示的な付加機能をさらに説明する。
【００４１】
図１Ｂは図１Ａのシステムの補助コンポーネントを示すブロック図である。メッセージ処理システム１０６は、ウエッブサーバ１２２，データベース１２４，ＤＮＳサーバ１２６，フィルタ１３０及びフィルタロジック１３４をホストする１つまたはそれより多くのサーバ級コンピュータシステムとして実施できる。ウエッブサーバ１２２は、アパッチ（Apache）ＨＴＴＰサーバなどのＨＴＴＰサーバとウエッブロジック（WebLogic）アプリケーションサーバなどのアプリケーションサーバの組合せを含むことができる。データベース１２４は、送信者、受信者、受取人及びその他のメタデータに関する情報を格納するための貯蔵所を提供し、オラクル（Oracle）８ｉ，マイクロソフト（Microsoft）ＳＱＬサーバ等といったリレーショナルデータベースサーバを含むことができる。データベース１２４は、送信者によって付け加えられたかまたは削除されたネットワークアドレスの履歴のようなログ情報も収めることができる。
【００４２】
ＤＮＳサーバ１２６はインターネットドメイン名サービス（ＤＮＳ）プロトコルリクエストを用いてアクセスでき、ドメイン名をインターネットプロトコル（ＩＰ）アドレスへ分解でき、指定されたＩＰアドレスに関する情報を提供でき、他にも様々なことをすることができる。明解な例の説明の目的で、ここで、ある実施形態についてＤＮＳ及びＩＰを説明する。しかし、実施形態はアドレス処理のためのＤＮＳ及びＩＰの使用に限定されず、本発明は将来開発され得るいかなるネットワークアドレス指定機構またはプロトコルにも適用できる。
【００４３】
実用的実施形態に対し、ＤＮＳサーバ１２６は大容量を有する。例えば、適切なＤＮＳサーバ１２６は毎秒５０のピークレートで毎日１００万クエリー（毎秒１１.６クエリー）を処理することができる。さらに、ほぼ１００％のアベイラビリティを有し、過度のメッセージ待ち時間を課さないＤＮＳサーバを用意する必要がある。
【００４４】
本明細書で説明されるある機能は、１つまたはそれより多くのＪａｖａ（登録商標）サーバページ（ＪＳＰ）、アクティブサーバページ（ＡＳＰ）またはその他のソフトウエアコンポーネントで実施することができる。一例を説明する目的で、図１Ｂは、機能が、送信者ページ１２０Ａ，管理ページ１２０Ｂ及び受信者ページ１２０Ｃとして構成されるＪＳＰ実施形態を示す。本実施形態において、送信者ホスト１０２，受信者ホスト１０８及び管理ホスト１１４は、マイクロソフトインターネットエクスプローラー、ネットスケープコミニュケーター等のような、通常のウェッブブラウザアプリケーションを用いてシステム１０６の機能にアクセスできる。同様に、ゲートウエイ１１０はシステムにＨＴＴＰリクエストを送ることによってシステム１０６の機能にアクセスできる。
【００４５】
特に、送信者１０２は送信者ページ１２０Ａと対話をして、システムに登録し、１つまたはそれより多くのフィルタ１３０の読出し及び構成を行う。管理ホスト１１４は、管理ページ１２０Ｂと対話をしてユーザ登録及び検証、送信者の代表者への送信者情報の提供、ユーザメンテナンス、アドレスメンテナンス、システムメンテナンス、フィルタメンテナンス、インボイス作成、アカウン審査、論点解決、レポート作成等のような管理者機能を実施する。
【００４６】
フィルタ１３０は、送信者ホスト１０２または送出メッセージゲートウエイ１０４から受信されたメッセージを受信者ホスト１０８、入りメッセージゲートウエイ１１０または受取人１１２にメッセージが転送される前に、処理するためのルール及びメタデータを有する。フィルタ１３０は記号フィルタ定義言語で構成または表現することができ、フィルタロジック１３４によってパース及び実行される。フィルタ１３０及びフィルタロジック１３４の動作の詳細は以下で論じられる。
【００４７】
２.３  処理機能概要
メッセージ処理システム１０６は、本明細書で説明される機能を実施する、１つまたはそれより多くのその他のソフトウエアコンポーネント、ハードウエアコンポーネント、または手動操作も備えることができる。この構成では、システム１０６は数多くのメッセージ処理機能を実施することができ、その例をここで要約する。以下の説明において、‘ユーザ’の示す内容は、広く、送信者ホスト１０２，管理ホスト１１４及びその他のシステム１０６のユーザを指す。
【００４８】
一実施形態において、システムはいずれかの構成されたＩＰインターフェースをソースＩＰアドレスとして用いてメッセージを配信する。ソースＩＰは、ＳＭＴＰ接続起源として受取人によって認識されるＩＰアドレスとして定義される。ユーザは、以下でさらに説明される、インジェクションフィルタ及び／または特殊ヘッダの使用により、非デフォルトソースＩＰアドレスを用いて配信されるべきメッセージを指定できる。システムは、インジェクションフィルタ及び／または特殊ヘッダによって指定されない全てのメッセージに対してソースＩＰとして用いられるデフォルトＩＰインターフェースを有する。
【００４９】
さらに、一実施形態において、複数のホスト名からの配信がサポートされる。システムはユーザによって示されるようなメッセージヘッダに一意的なソースホスト名を書き込む。ユーザは、インジェクションフィルタ及び／または特殊ヘッダの使用により、非包括的ホスト名を用いて配信されるべきメッセージを指定することができる。システムはインジェクションフィルタ及び／または特殊ヘッダによって指定されない全てのメッセージヘッダに書き込まれる包括的ホスト名を有する。全ての特殊ヘッダは受取人に配信される前に取り去られる。
【００５０】
一手法において、メッセージ処理システム１０６は「変更ソースホスト」コマンドをサポートする。管理者は、管理ホスト１１４を用いて１つまたはそれより多くの「変更ソースホスト」コマンドをメッセージ処理システム１０６に発する。それぞれの「変更ソースホスト」コマンドはメッセージのキーとなる属性及びインターフェース名を指定する。キーとなる属性には、メッセージのエンベロープフォームにおける値、送信者アドレス等がある。「変更ソースホスト」コマンドの受取りに応答して、メッセージ処理システム１０６はキーとなる属性を優先インターフェースに関係付けるマッピングを作成し、格納する。そのようなマッピングは、どのような数であっても、メッセージ処理システムにおいて確立することができる。
【００５１】
その後、メッセージ処理システムが送信者から入りメッセージを受信すると、メッセージ処理システム１０６は、メッセージがマッピングにおいて識別されるキーとなる属性のいずれかを有しているか否かを判定する。判定はフィルタロジック１３４によるかまたはシステム１０６で実行されるアプリケーションプログラムによって実施することができる。整合するキーとなる属性をメッセージが有していれば、マッピングにおいて指定される、関連付けられた優先インターフェースを通じてメッセージが受取人に発信される。
【００５２】
この態様において、管理者は、インターフェースへのいかなる数のメッセージ属性マッピングも含む、メッセージ処理システム１０６を構成することができる。メッセージは、メッセージの内容、ヘッダ、または主題にしたがって相異なる送出インターフェースを通じて発信される。すなわち、メッセージ処理システム１０６は、外部の受取人には、独立した多数のメッセージゲートウエイであるように見える。
【００５３】
２.４  インジェクションフィルタによるメッセージフィルタリング
インジェクションフィルタ（ＩＦ）はある規準に基づいて入りメッセージをフィルタリングするために用いることができる。インジェクションフィルタの作用はメッセージ上の全ての受取人に適用される。ユーザは、第１の規準の整合比較の結果としてメッセージがある動作に割り当てられるように、インジェクションフィルタに優先準位をつける。したがって、より高い優先順位を最も特殊なインジェクションフィルタにおくことはユーザの責任である。インジェクションフィルタに整合しないメッセージはデフォルトとして扱われる。‘不活性’として設定されたインジェクションフィルタはフィルタリングプロセスから除外される。一実施形態において、いかなる数のインジェクションフィルタも定義することができる。
【００５４】
ＩＦの構造を以下で詳細に説明する。一般に、それぞれのＩＦは複数の属性及びフィルタリング規準を有する。一実施形態において、それぞれのＩＦはユーザが後からＩＦを参照することを可能にする呼称名属性を有するが、この呼称名は英数字の文字列とすることができる。さらに、それぞれのＩＦは、例えば１と１００の間の、整数値の形態の優先順位属性を有する。２つのインジェクションフィルタが同じ優先順位をもつことはない。
【００５５】
一実施形態において、利用できるフィルタリング規準には、受信ＩＰインターフェース、受信インジェクタ、インジェクタソースＩＰ、「MAIL FROM」値、「RCPT TO」値、ヘッダ件名フィールド値及びメッセージサイズがある。受信ＩＰインターフェースに基づくフィルタリングにおいて、ＩＰインターフェースの選択肢は呼称名によって現在構成されているＩＰインターフェースである。複数のＩＰインターフェースを指定することができ、「どのＩＰインターフェースでも可」がデフォルトである。受信インジェクタに基づくフィルタリングにおいて、フィルタは呼称名によって現在構成されているインジェクタの内の１つを指定する。複数のインジェクタを指定するフィルタを構成するためにブール式を用いることができる。インジェクションソースＩＰによるフィルタリングにおいて、インジェクションソースＩＰアドレスはメッセージをインジェクトするためにシステムに接続しているホストのＩＰアドレスである。インジェクションソースＩＰアドレスはＩＰアドレスのために用いられる「Allowed Hosts」構文を用いて示すことができる。
【００５６】
「MAIL FROM」フィルタリングにおいて、ＩＦはメッセージエンベロープ内の<MAIL FROM>コマンドにある特定の文字列に基づいてメッセージをフィルタリングする。このフィルタ及びその他の全てのフィルタにおいて完全Ｃ型正規表現が受け入れられる。「RCPT TO」フィルタリングにおいて、ＩＦはメッセージエンベロープ内の<RCPT TO>コマンドにある特定の文字列に基づいてメッセージをフィルタリングする。
【００５７】
ヘッダ件名フィールドフィルタリングにおいて、ＩＦはメッセージヘッダ内の件名フィールドにある特定の文字列に基づいてメッセージをフィルタリングする。件名フィールドフィルタリングが行われない場合には、ヘッダパースを停止することができる。メッセージサイズフィルタリングにおいて、ＩＦはメッセージサイズをユーザ定義値と比較して整合を判定する。ユーザは比較を実施するために用いられる演算（例えば、より小さい、より大きい等）を定めることができる。
【００５８】
それぞれのフィルタは、属性値によって示されるように、活性または不活性とすることができる。インジェクションフィルタが不活性に設定されると、フィルタはその優先順位を維持するが、フィルタ１３０を評価する際にフィルタリング順序においてフィルタロジック１３４によって飛ばされる。不活性フィルタは活性状態にリセットすることができる。
【００５９】
それぞれのフィルタ１３０は１つまたはそれより多くの関連付けられた動作を有する。一実施形態において、動作には、「撥除」、「スケジュール」、「優先順位」、「メールとして配信」、「変更ｅ−メールアドレスに配信」、「変更ドメインに配信」、「変更ＩＰに配信」、「ログに記入」、「メッセージ打切り」、「メッセージ返送」等がある。その他の動作を定めることができる。
【００６０】
本明細書に説明される実施形態のある変形例では、「撥除」オプションまたは「スケジュール」機能を提供することができる。フィルタの評価が撥除メッセージを示した場合、そのメッセージはＳＭＴＰまたはＱＭＱＰ対話中に撥除される。インジェクションフィルタは、メッセージが撥除された場合に、インジェクト中のホストに通信される特定の議論へのユーザ参入を可能にする。「スケジュール」動作が行われる場合、インジェクションフィルタは、全てのメッセージ受取人に対するスケジュール作成後配信プロトコル、全てのメッセージ受取人に対するスケジュール作成後返送プロトコルまたは全てのメッセージ受取人に対するスケジュール作成後削除プロトコルの内のいずれかまたは全てを設定することもできるし、いずれも設定しないこともできる。
【００６１】
別の変形例において、「優先順位」動作を提供することができる。「優先順位」動作において、配信構成は全てのメッセージ受取人について配信優先順位を設定する。「メールとして配信」動作は、受取人にメールとして配信するための、標準メール配信機構を提供する。標準ＳＭＴＰ配信がデフォルトの配信ＩＰインターフェースを通じて行われる。「変更ｅ−メールアドレスに配信」動作において、ＩＦは配信されるべきメッセージ受取人のｅ−メールアドレスを変更することができる。変更配信アドレスは、メッセージエンベロープの「RCPT TO」行にある既存の配信アドレスと入れ換わる。
【００６２】
特殊なＩＦ構成がなければ、メッセージ処理システム１０６はメッセージ受取人のアドレスを解析することによって宛先メールホストを決定する。「変更メールホストに配信」動作において、ＩＦはメールが配信されるホストのＩＰアドレスを決定するために動作のパラメータ値を用いる。メッセージエンベロープにある受取人アドレスは変更されない。
【００６３】
「ログに記入」動作において、ＩＦはフィルタロジック１３４に（受取人リストを含む）メッセージ全体をメールログに記入させる。「メッセージ打切り動作」において、ＩＦはフィルタロジック１３４に全メール受取人を打ち切らせる。この動作は、メールモニタリング目的のために打切りメッセージとして記録される。「メッセージ返送」動作において、ＩＦは包括的返送構成設定にしたがってメッセージを返送することができる。この動作はメールモニタリング目的のために打切りメッセージとして記録される。
【００６４】
実用用途の１つにおいて、上記の手法は、複数の大量通信キャンペーンにかかわる必要があるだけでなく、受信者におけるメッセージブロッキングまたはフィルタリング技術によりブロックされずに特定のメッセージがその宛先に届く機会を増やしたい送信者に有用である。そのような大量メール発信者の場合、相異なるフィルタを相異なる通信キャンペーンに関係付けることができる。例えば、送信者は、表１に示されるように、キャンペーンの内部マッピングをフィルタに確立することができよう。
【表１】
2006515703.tif 000003
【００６５】
この手法を用いれば、メッセージ処理システムは、異なるインターフェースを通じるかまたはメッセージによって表される通信キャンペーンに依存する異なるソースアドレスラベル付けにより、送信者ホストから受信したメッセージを自動的に送信するであろう。一実施形態において、処理システムは同じメッセージを異なる受信側システムに複数回送信することができ、それぞれの受信側システムに対するメッセージのソースＩＰアドレス及び送出インターフェースを修正することができる。さらに、ソースＩＰアドレスまたはインターフェースは、受信側システムによるメッセージの別のコピーのブロッキングなどの外部イベントを受けてフィルタによって修正することができる。このようにして、単一の処理システムが１つの送信者または多数の送信者のための多数の仮想メッセージ送信ゲートウエイのように見せることができる。
【００６６】
３.０  メッセージフィルタの詳細説明
システム１０６を介して転送される電子メッセージは、メッセージの特徴、インジェクションソース及びメッセージの宛先などの因子に基づいて、システム上で実施される動作を有することができる。整合比較されるべきパラメータ及びその結果の動作は、ルールテーブルを指定し、送信者またはその他のメール管理者によって作成されるフィルタ１３０において指定することができる。ルールセットの適用により生じ得る動作として、「打切り」、「リダイレクト」、「アドレス再指定」及び「ログ記入」がある。ルール定義言語は、管理者による整合比較規準の動作との関連付けを可能にし、コマンドラインインターフェース及びグラフィカルユーザインターフェースのいずれによっても、簡易テキストエディタの使用によっても、操作を受けることができる。
【００６７】
図１Ｂ，図２のフィルタ１３０はルールを有することができる。フィルタ整合比較及び動作の実行はフィルタロジック１３４によって実施される。フィルタロジック１３４は、１つまたはそれより多くのクラス、方法あるいは、通常のオブジェクト指向プログラム開発環境を用いて作成され、システム１０６によって実行される、その他のソフトウエアコンポーネントを用いて実施することができる。付録１はフィルタロジック１３４の一実施形態のためのクラス定義の一例を与える。
【００６８】
図２は一実施形態にしたがう電子メッセージ配信プロセスのデータフロー図である。メッセージ２００がメッセージ処理システム１０６に与えられる。一般に、メッセージ２００は、ソースアドレス２０４を含むヘッダ２０２，件名２０６及び本文２０８を有する。メッセージ２００は、メッセージにフィルタ１３０を適用するフィルタロジックで受信される。フィルタ１３０のそれぞれはパラメータ及び動作を有する。パラメータはメッセージ２００の属性と比較される。整合すれば、フィルタに指定される動作をフィルタロジック１３４が実施する。動作２１０には、「打切り」動作２１０Ａ、「リダイレクト」動作２１０Ｂ、「アドレス再指定」動作２１０Ｃ，「ログ記入動作」２１０Ｄ等がある。
【００６９】
ある動作の実行により、システム１０６は複数の配信待ち行列１３２の内の１つにメッセージ２００をおく。メッセージ２００が待ち行列１３２におかれると、システム１０６の配信プロセスが送出インターフェース１５０を通じてメッセージを送信する。ある実施形態においては、単一の送出インターフェースが備えられる。別の実施形態においては、複数の送出インターフェースが備えられ、フィルタロジック１３４によって１つが選択される。図２に示されるデータフローの結果、適切なフィルタの評価後にメッセージを特定の態様で送信することができる。例えば、メッセージの宛先にしたがってメッセージのヘッダに異なるソースＩＰアドレスをもつメッセージを連続して送信することができる。
【００７０】
図２の全体的プロセスを実施するために用いられるシステム１０６の動作詳細を、処理ルール説明、整合比較及び動作からなる３つの主要コンポーネントに基づいて本明細書で説明する。
【００７１】
３.１  処理ルール説明
ルールはフィルタ定義言語で記述される。フィルタリングルールはパースされて、メッセージが次いでシステムにインジェクトされたときに整合比較エンジンを駆動するために用いられる内部フォーマットに変換される。次いで、ルール作成者によって特定のルールに対して指定された動作にしたがい、メッセージ毎または受取人毎に多くの相異なる動作を起こすことができる。
【００７２】
３.２  整合比較
ここで、フィルタをメッセージに整合比較するための技法を、図３Ａを参照して、システム１０６による完全なメッセージ処理のより広い情況において説明する。図３Ａはメッセージに動作を実施する方法のフローチャートである。明確な例を示す目的で、図１Ａ，図１Ｂ及び図２のシステムを参照して図３Ａのプロセスを本明細書で説明する。
【００７３】
ブロック３０２において、メッセージが受信される。例えば、システム１０６は送信者ホスト１０２からメッセージ２００を受信する。ブロック３０４において、整合比較を実施することができる全ての値を識別するためにメッセージがパースされる。ブロック３０６において、その時点で活性かつ有効である全てのフィルタを用いて整合比較が実施される。
【００７４】
ブロック３０８において、ブロック３０６における整合比較の結果が一致であれば、あるフィルタに対するある動作が決定される。所要の動作が決定されると、ブロック３１０に示されるように動作を実施することができ、あるいはブロック３１２に示されるように動作に関する情報を後から使用するために格納することができる。
【００７５】
ある動作の結果、ブロック３１４に示されるように、メッセージは配信待ち行列に入れられる。待ち行列入れに成功すれば、ブロック３１６において、メッセージが配信に対して受け入れられたことがメッセージを提供したクライアントに告げられる。
【００７６】
ブロック３０４〜３０６を再び参照すれば、システム１０６にメッセージ２００がインジェクトされると、メッセージがパースされ、整合比較を実施することができる全ての値が識別される。値のほとんどは、関連付けられたソケットまたはインジェクタに基づいて入り接続からあるいはメッセージエンベロープから決定できるから、低処理費用で導出することができる。得るための処理に関してより費用がかかる情報は、整合比較ルールが要求する場合に限り、抽出される。
【００７７】
整合比較されるべき現在のフィールドセットに対し、全ての整合比較はブロック３１４においてメッセージ２００を配信待ち行列１３２の内の１つに入れる前になされる。動作を直ちにとることができ、あるいは処理の後の時点におけるさらなる修正または特別な扱いのために目印をつけることができる。インジェクションプロセスのこの時点においてのみ、利用可能フィルタを評価するために全ての情報が必要であり、あるメッセージ取扱動作を起こすことができるのはこの時点だけである。これらは全て、システム１０６が送信者ホスト１０２またはその他のクライアントにメッセージが受け入れられたことの確認通知を行う前に行われる。プロセス中に失敗がおこれば、クライアントがインジェクションに対する満足すべき応答を受けとることはなく、したがって、クライアントはメッセージの配信のための待ち行列入れに成功しなかったと想定できる。
【００７８】
整合比較プロセスは入りメッセージへの一連のフィルタの適用を含む。与えられたメッセージに対するフィルタのルールの評価結果が真であれば、ブロック３０８〜３１０に示されるように、フィルタの動作がメッセージに適用される。‘活性’かつ‘有効’なフィルタだけがメッセージに適用される。あるフィルタの活性属性または有効属性が偽であればそのフィルタはメッセージに適用されず、これは、そのフィルタのルールが評価されず、そのフィルタの動作が適用されないことを意味する。デフォルトでは、ユーザによって組み入れられたフィルタは‘活性’と設定される。ユーザはＣＬＩ（コマンドラインインターフェース）またはＧＵＩ（グラフィカルユーザインターフェース）を介してフィルタの状態を活性または不活性に設定することができる。
【００７９】
一実施形態において、有効または無効としてのフィルタの状態をユーザが見ることができるが、ユーザが状態を変えることはできない。フィルタは、そのルールまたは動作の１つまたはそれより多くがいずれかの理由で評価または実施され得なければ、無効と見なされる。一例は、ヘッダパースを必要とするがヘッダパースが停止されているルールであろう。別の例は、削除されている特定のインターフェースに依存するフィルタであろう。
【００８０】
３.３  ヘッダパース
図３Ｂは、図３Ａのブロック３０４の一実施形態において用いることができるフィルタルールをパースする方法のフローチャートである。
【００８１】
ブロック３２０において、そのようなパースがオンに設定されていれば、ヘッダがパースされる。（特殊ヘッダフィールドのパースを含む）ヘッダパースはユーザが包括的にオンまたはオフに設定できる。デフォルトでは、ヘッダパースはオフに設定されている。
【００８２】
一実施形態において、件名フィールド及び特殊ヘッダ拡張フィールドがメッセージヘッダで整合比較される。すなわち、ブロック３２２において、特殊ヘッダ拡張フィールドが識別され、関連付けられた値が格納される。ブロック３２４において、メッセージ件名が識別され、格納される。特殊ヘッダは、システム１０６が特殊ヘッダを取り除き、ヘッダ整合比較がフィルタルールの一部として用いられ得るように、特別に扱われる。
【００８３】
メッセージの内容がそのヘッダの終わりまでパースされ、空白行（シーケンス‘\r\n\r\n’）でマークされる。この時点を過ぎてから内容がパースされることはない。（ＬＳＭＴＰプロトコルを用いる）複数パーツメールマージメッセージの場合は、受信された第１の部分がヘッダデータについて調べられる。ヘッダパースが無効にされていれば、システムはいかなる情報に対してもメッセージヘッダをパースしようとはしない。
【００８４】
ヘッダパースを要求する新しいフィルタをユーザが入れようとし、ヘッダパースが無効であれば、フィルタロジック１３４は、ヘッダパースをオンにするように、システム１０６にユーザを促させる。ユーザがヘッダパースを有効にすると、ヘッダパースを要求するルールをもつという理由で無効とマークされていたフィルタで、その他のいかなる理由でも無効ではないようなフィルタは有効に設定される。ユーザがヘッダパースを無効にし、あるフィルタが比較を要求する場合、ユーザはヘッダを無効にするという決定を確認しなければならない。確認すると、そのようなルールをもつフィルタは無効に設定される。
【００８５】
ブロック３２４の一部として、メッセージ件名がメッセージ本文から取り出され、これを必要とするいかなるフィルタによっても容易に参照される態様で格納される。一実施形態において、メッセージの件名フィールドはシーケンス‘\r\Subject’でマークされる。件名は、文字シーケンスがシーケンス‘\r\n’に至るまでに現れる全ての文字である。このエンドマーカーシーケンスは件名の一部とは見なされない。別の実施形態において、現在のフィルタセットの中のどのフィルタもメッセージ件名を参照するルールを有していなければ、メッセージ件名がパースまたは格納される必要はない。
【００８６】
図３Ｂを再び参照すれば、図３Ａのブロック３０６の整合比較工程はブロック３２６における選択された値へのルールの適用及び、ブロック３２８に示されるような、ルールの整合比較結果に基づくフィルタ結果の決定を含むことができる。一実施形態において、メッセージをフィルタと整合比較するためにいくつかのタイプのデータを用いることができる。そのような比較は‘ルール’と称される。ルールは、メッセージがルールに整合するデータを含んでいれば、真と評価する。フィルタは、‘フィルタ構文’というタイトルが付けられた節で以下に説明されるように、ブール演算子、AND，OR及びNOTで関係付けられる１つより多くのルールをもつことができる。フィルタは、ブール式が真と評価すれば、メッセージが整合していると見なす。
【００８７】
一実施形態において、利用できるフィルタリング規準には、フィルタロジック１３４において以下のように実施される、受信ＩＰインターフェース、受信インジェクタ、インジェクションソースＩＰ、「MAIL FROM」値、「RCPT TO」値、ヘッダ件名フィールド値及びメッセージサイズがある。
【００８８】
１．受信ＩＰインターフェース。フィルタロジック１３４は受信ＩＰインターフェースに基づいてメッセージをフィルタリングすることができる。指定されるＩＰインターフェースは呼称名で現在構成されているＩＰインターフェースの内のいずれかである。複数のＩＰインターフェースを指定することができ、「どのＩＰインターフェースでも可」がデフォルトである。ユーザによって選ばれた呼称名の内のいずれかが既に削除されているかまたは名称変更されていれば、このルールをもつフィルタは無効に設定される。ユーザインターフェースを介して、ユーザがこのルールで参照されるインターフェースを削除するか、そうではなくとも修正しようとすれば、いかなる変更もそのインターフェースを参照しているいかなるフィルタをも無効にし得ることを示す警告が示される。
【００８９】
この比較の構文は‘recv-int==<cname>’であり、ここでcnameはメッセージが整合比較のために受信されなければならないインターフェースの呼称名である。
【００９０】
２．受信インジェクタ。メッセージフィルタは受信インジェクタに基づいてメッセージをフィルタリングすることができる。指定されるインジェクタは呼称名によって現在構成されているインジェクタの内の１つである。複数のインジェクタを指定することができ、「どのインジェクタでも可」がデフォルトである。ユーザによって選ばれる呼称名のいずれかが既に削除されているかまたは名称変更されていれば、このルールをもつフィルタは無効に設定される。ユーザインターフェースを介して、ユーザがこのルールで参照されるインジェクタを削除するか、そうではなくとも修正しようとすれば、いかなる変更もそのインジェクタを参照しているいかなるフィルタをも無効にし得ることを示す、警告が示される。
【００９１】
この比較の構文は‘recv-inj==<cname>’であり、ここでcnameはメッセージが整合比較のために受信されなければならないインジェクタの呼称名である。
【００９２】
３．リモートインジェクションＩＰ。この値は「インジェクションソースＩＰ」とも称される。メッセージフィルタはインジェクションソースＩＰアドレスに基づいてメッセージをフィルタリングすることができる。インジェクションソースＩＰアドレスは、送信者ホスト１０２のＩＰアドレスなどのメッセージをインジェクトするためにシステムに接続しているホストのＩＰアドレスである。インジェクションソースＩＰアドレスはＩＰアドレスに対して定義される「Allowed Hosts」構文を用いて示される。
【００９３】
この比較の構文は‘remote-ip==<allowed>’であり、ここでallowedはクライアントのＩＰアドレスに整合しなければならない完全または部分ＩＰアドレスである。例えばクライアントアドレスが‘1.2.3.4’であれば、比較は、許容される‘1.2.3.4’，‘1.2.3’，‘1.2’，及び‘1’に対して整合するであろう。
【００９４】
４．「MAIL FROM」。メッセージフィルタはメッセージエンベロープ内の<MAIL FROM>コマンドにある特定の文字列に基づいてメッセージをフィルタリングできる。整合比較パターンは完全正規表現として受け入れられる。デフォルトでは、正規表現は文字列の最初及び最後に対する行アンカーを推定しない。例えば、‘.*@ironport.com’は‘paul@ironport.com’に整合し、‘foo@ironport.com.foo’にも整合する。前者の例しか許さない、この正規表現の行アンカー版は‘.*@ironport.com$’である。
【００９５】
この比較の構文は‘mail-from==<regex>’であり、ここで‘regex’は「MAIL FROM」データ内の整合比較される正規表現である。
【００９６】
５．「RCPT TO」。メッセージフィルタはメッセージエンベロープ内の<RCPT TO>コマンドにある特定の文字列に基づいてメッセージをフィルタリングすることができる。整合比較パターンは完全正規表現として受け入れられる。デフォルトでは、上で与えられた「MAIL FROM」の例におけるように、正規表現は文字列の最初及び最後に対する行アンカーを推定しない。
【００９７】
メッセージの受取人リストの内のいずれか一人の受取人がこのルールに整合すれば、メッセージ全体が整合したと見なされる。そのようなルールへの整合の結果としてとられる動作は、いずれも、ルールが整合した特定の受取人に限定されない。例えば、‘*@ironport.com’に整合する受取人を探すようにルールが定義され、とられるべき動作がメッセージの打切りであれば、１つの受取人ｅ−メールしか‘*@ironport.com’に整合しない場合に、メッセージ全体が打ち切られる。
【００９８】
この比較の構文は‘rcpt-to==<regex>’であり、ここで‘regex’は、「RCPT TO」データ内の整合比較される正規表現である。
【００９９】
６．メッセージ件名。メッセージフィルタはメッセージヘッダ内の件名フィールドにある特定の文字列に基づいてメッセージをフィルタリングすることができる。件名フィールドはシーケンス‘\r\nSubject:’とシーケンス‘\r\n’の間のいずれかの文字として定義される。メッセージヘッダが件名行を含んでいなければ、このルールは真と評価できない。整合比較パターンは完全正規表現として受け入れられるであろう。デフォルトでは、上で与えられた「MAIL FROM」の例におけるように、正規表現は文字列の最初及び最後に対する行アンカーを推定しない。ヘッダパースが停止されていれば、このルールをもついずれのフィルタも無効とマークされるであろう。
【０１００】
この比較の構文は‘rcpt-to==<regex>’であり、ここで‘regex’は件名内の整合比較される正規表現である。
【０１０１】
７．特殊ヘッダ。インジェクションソースによって送信することができる特定の特殊ヘッダがある。これらは、‘X-IronPort-xxxxx’の形態をとる。メッセージフィルタリングルールは‘xxxxx’名及び文字列、すなわちヘッダ自体の内容のいずれをも整合比較することができる。一実施形態において、ヘッダ整合比較フィルタは、ヘッダ整合比較<name>が<regex>に整合する値をもっていれば真と評価する構文‘header（<name>）==<regex>’を用いる。あるいは、整合する名前をもつヘッダが見つかれば真と評価し、整合する名前が見つからなければ偽と評価する構文‘header（<name>）’を用いることができる。ヘッダパースが停止されていれば、このルールをもついずれのフィルタも無効とマークされる。
【０１０２】
８．本文サイズ。メッセージフィルタはメッセージのバイトサイズに関してフィルタリングすることができる。整合は、より大きい、より小さい、または等しいという比較によってなされる。フィルタのサイズ属性はヘッダを含むメッセージ本文全体のサイズである。メールマージ（ＬＳＭＴＰ）メッセージについては、いずれの受取人もメッセージの全文を受信するように予定されているか否かにかかわらず、全てのパーツの合計サイズであると見なされる。
【０１０３】
この比較の構文は‘body-size<relop><size>’であり、ここで‘relop’は、‘<’，‘<=’,‘>’，‘>=’または‘==’の内の１つであり、‘size’は、（バイト、キロバイト、メガバイト及びギガバイトに対する）‘b’，‘k’，‘M’または‘G’を添えることができる、引用符なしの整数である。
【０１０４】
３.４  フィルタ構造
図３Ｃはフィルタのブロック図である。一実施形態にしたがえば、それぞれのフィルタ３３０はシステム１０６のメモリに格納することができ、１つまたはそれより多くのルール３３２，それぞれのルールに対する動作３３４，呼称名３３６，優先順位値３３８，活性値３４０及び有効値３４２を有する、データ構造体である。メッセージフィルタは、ルールセット及び動作セットの、２つの主要部からなる。フィルタのルールが、メッセージに適用されたときに、真と評価すると、フィルタの動作がメッセージに実行され、おそらくは、メッセージの属性を変えるかまたはメッセージの配信に影響を与える。
【０１０５】
フィルタは優先順位値３３８によって指定される順序でメッセージに適用される。ユーザは優先順位値を設定することによりメッセージフィルタに対する実行シーケンスを定めることができる。デフォルトでは、フィルタがシステムに入れられた順にフィルタが実行される。メッセージが全てのフィルタを通過した後に、メッセージが打ち切られていないか、返送されていないか、または配信されていなければ、メッセージが配信される。
【０１０６】
図３Ｃの呼称名値３３６は、ユーザまたはプログラマが後の時点でフィルタを参照するために用いることができる名前を含む。名前は全てのインジェクションフィルタ名の間で一意的である。一実施形態において、名前は任意の長さの英数文字列である。ＩＦ優先順位値３３８は、全てのフィルタのシーケンス内でのフィルタの場所に基づいてフィルタに対する優先順位を確立する。ユーザはこのシーケンスを認識することができ、定義によってフィルタの優先順位を変えるであろう。ユーザインターフェースの目的のために、シーケンス内の第１のフィルタには優先順位‘１’が割り当てられ、第２のフィルタには優先順位‘２’が割り当てられ、以下同様である。
【０１０７】
ユーザが新しいフィルタを挿入し、既存のフィルタと同じ優先順位を割り当てると、新しいフィルタが与えられた優先順位をもつとされ、新しいフィルタと同じかまたはそれより大きい優先順位値をもつ既存のフィルタは全て１だけ増分された優先順位をもつことになろう。例えば、優先順位値がそれぞれ１，２，３及び４の、４つのフィルタ‘ａ’，‘ｂ’，‘ｃ’及び‘ｄ’があり、優先順位値が２の新しいフィルタ‘ｅ’が挿入された場合に、フィルタ‘ａ’は影響されない。新しいフィルタ‘ｅ’の優先順位は２である。したがって、フィルタ‘ｂ’，‘ｃ’及び‘ｄ’の優先順位はそれぞれ、３，４及び５に変更される。
【０１０８】
活性フラッグ３４０はフィルタが活性であるか不活性であるかを示す。ユーザはメッセージフィルタを不活性に設定できる。不活性フィルタはその優先順位を維持するが、フィルタリング順序内で飛ばされる。不活性フィルタはユーザによって活性状態にリセットされ得る。有効フラッグ３４２はフィルタが有効であるか無効であるかを示す。メッセージフィルタはシステムによって無効に設定され得る。無効フィルタはその優先順位を維持するが、評価されない。無効フィルタは、そのフィルタがもはや無効ではないとシステムが判断したときに、システムによって有効にリセットされる。ユーザは、グラフィカルユーザインターフェースまたは本明細書で説明されるＣＬＩを介して、フィルタの有効／無効状態を調べることができる。一実施形態において、ユーザはフィルタの有効／無効状態を変えることができない。
【０１０９】
３.５    フィルタ構文及びメモリ表現
一実施形態にしたがえば、フィルタは、上に概説した特徴を明確に指定できる構文を有するフィルタ定義言語を用いて定義される。表２は、フィルタ定義言語に対する文法の一例の、バッカス−ナウアフォーム（Backus-Naur Form）（ＢＮＦ）での、記述を示す。
【表２】
2006515703.tif 000004
【０１１０】
文法に挙げられているいくつかのターミナル（例えば、qstr, val）は、明示的には定義されない。一実施形態において、ＦＤＬ（フィルタ定義言語）で表されるパースフィルタは意味解析段階までの正当値の検証の延期を含む。構文解析は、フィルタ内のトークンを識別し、引用符及び空白文字を理解する、辞書的解析器プロセスによって実施される。上に挙げられた非ターミナルの確認はルール全体の検証後まで延期される。
【０１１１】
ルール動作はルール定義行に挙げられた順序で実行される。最終動作はその後に他のいかなるルールももち得ないという特定の一文法規則の強化は、意味解析により実施される。
【０１１２】
値‘Ipaddr’及び‘hostname’は、ＩＰアドレスがドット付四つ組１０進数として表されるという十分よく受け入れられている慣習を確認する。一実施形態において、‘filtname’は英数字と‘-’（マイナス符号）及び‘_’（アンダースコア）からなるが、マイナス符号及び数字が第１文字となることは許されない。本実施形態においては、‘my-rule_1’，‘_10’及び‘r101’は認められるが、‘-101’及び‘101’は認められない。引用符で囲むことは許されない。これらの制約により、システムがフィルタ順番及びフィルタ名を自動的に明確にすることが可能になる。
【０１１３】
さらに、一実施形態において、‘all’，‘last’，‘if’，‘else’，‘true’，‘and’，‘or’，‘not’，‘relop’，‘alt-src-host’，‘alt-rcpt-to’，‘alt-mailhost’，‘abort’，‘bounce’，‘deliver’，‘notify’，‘bcc’，‘log’，‘recv-int’，‘recv-inj’，‘remote-ip’，‘mail-from’，‘rcpt-to’，‘subject’及び‘body-size’という語は、大文字化によるいかなる変形も含めて予約され、フィルタ名に用いることはできない。
【０１１４】
‘value’は区切り文字ではないいずれかからなる文字列であり、確証のための意味解析に基づく適切な文脈に移される。すなわち、‘remote-ip’に基づく整合比較の構築を試みる場合、‘value’は論理的にＩＰアドレスまたはＣＩＤＲ型ＩＰブロックでなければならないであろう。‘subject’に基づく整合比較は正規表現からなる。整合比較されるべきそれぞれのパラメータに対する正当値は、本明細書の個別の整合比較ルールに関する箇所でさらに詳細に説明される。
【０１１５】
下の表３はフィルタセットの例を示す。
【表３】
2006515703.tif 000005
【０１１６】
パース後、フィルタは、全ての最上位フィルタのリストを含むフィルタセットオブジェクトをルートとするツリー構造としてメモリ内に表現される。フィルタロジック１３４内の整合比較エンジンがリストの初めから終わりにかけて順次に反復して作動し、最後の動作が呼び出されるかまたはリストが尽きるまでフィルタが適用される。すなわち、整合比較エンジンはメッセージの運命が決定されるまでツリーのトラバースを実施する。
【０１１７】
整合比較エンジンは、メッセージが完全に受信された後、但しメッセージが待ち行列に割り当てられる前に、直ちに実行を開始する。処理パイプラインの後段で必要な情報はメッセージ内でエンコードされる。パイプラインの後段で適用される動作の一例は「変更ソースからの配信」である。メッセージフィルタはそのような動作をともなうメッセージにタグを付け、変更ソース名をエンコードする。後に、配信中に、この情報はソースホスト名及びＩＰアドレスを変更するために用いられる。
【０１１８】
３.６    フィルタ動作
メッセージは、フィルタが整合し、指定された動作が適用されるべきであるとフィルタロジック１３４のフィルタ整合比較エンジンが決定したときに、特別な扱いを受けることができる。ほとんど全ての整合比較規準はフィルタルールに指定されるようにメッセージ全体をフィルタロジック１３４に処理させる。しかし、受取人に関して整合比較するルールは、動作が受取人のサブセットにしか適用されないから、より複雑な挙動を生じさせ得る。
【０１１９】
単一のフィルタが複数の動作の実行を起動することができる。それぞれの動作は、最終動作が実行されるまで、フィルタに入れられた順序で実行される。フィルタが最終動作をもっていなければ、残りのフィルタがなくなるまで、順番が次のフィルタがメッセージに適用される。いかなる数のメッセージ動作も単一のメッセージに適用され得る。この結果、処理中に同じメッセージ属性の数回のリセットがおこり得る。
【０１２０】
利用できるフィルタ動作の例がここで説明される。一実施形態にしたがえば、利用できる動作の１つは「変更ソースからの配信」である。図４は、図３Ａのブロック３０８における動作の決定の一部として実施され得る、変更ソースからのｅ−メール配信プロセスのフローチャートである。すなわち、図４では、メッセージがメッセージ処理システム１０６において送信者ホスト１０２から受信され、フィルタがメッセージに整合し、フィルタにより指定される動作の評価が行われていると想定されている。
【０１２１】
ブロック４０２において、指定された動作が「変更ソースからの配信」であるか否かを判定するための試験が実施される。ブロック４０２は、フィルタのパースまたは実行の一部として、文字列‘alt-src-host’の認識を含むことができる。ブロック４０２の試験結果が偽であれば、制御は、フィルタにおいて動作がどのように指定されているかに依存して、別の動作が処理されるブロック４１２に移る。そうでなければ、ブロック４０４において、プロセスは変更ソースのホスト名及びメッセージを送信するべき送出インターフェースの呼称名を決定する。一実施形態において、ブロック４０４は‘alt-src-host’コマンドにあるパラメータとしての呼称名のパース及び認識を含み、インターフェースへのホスト名の内部マッピングからホスト名が得られる。本実施形態においては、メッセージ処理システム１０６のインターフェースの構成中に、管理者がホスト名をそれぞれの特定のインターフェースに関係付ける。別の手法において、ホスト名をコマンドの一部として指定することができよう。しかし、そのような手法では同じインターフェースに対してユーザが不注意に複数のホスト名を用いることが可能になり、これは、受信メールサーバによって実施されるときに、逆ＤＮＳルックアップを必ず失敗させるであろう。
【０１２２】
ブロック４０６において、メッセージのソースＩＰアドレスが指定されたインターフェースに関係付けられたホスト名に基づいて修正される。ブロック４０８において、修正されたメッセージが指定されたインターフェースに送られる。ブロック４０８は、配信のためにメッセージを指定されたホスト名に関係付けられた待ち行列に入れる工程を含むことができる。すなわち、それぞれが相異なるホストに関係付けられた、複数の配信待ち行列があり得る。ブロック４１０において、処理が完了する。
【０１２３】
したがって、図４のプロセスを用いれば、メッセージの配信元のソースＩＰアドレス及びホスト名をメッセージフィルタが設定することができる。有効インターフェースの選択枝には現在構成されている全てのＩＰインターフェースがあり、そのようなインターフェースは呼称名で指定される。インターフェースの選択は参照によってなされる。すなわち、インターフェース名の変更またはインターフェースの削除はフィルタ全体を無効にするが、いずれか別の仕方でのインターフェースの構成の変更はフィルタの動作に影響しない。
【０１２４】
ユーザはどのようなホスト名を入れることもできる。しかし、ほとんどのメールサーバはクライアントのＩＰアドレスに関して、すなわちフィルタによって選ばれたＩＰアドレスに関して、逆ＤＮＳルックアップを実施し、これらが整合しなければ、ホスト名を無視するかまたはメッセージを撥除することができる。ＤＮＳにおけるＩＰアドレス及びホスト名の整合を保証することは、フィルタを指定するユーザの責任である。
【０１２５】
デフォルトでは、デフォルトの配信インターフェース及びデフォルトのホスト名を用いて受取人への配信がなされる。この動作によって参照されるインターフェースを、ユーザインターフェースを介して、ユーザが削除しようとするか、そうではなくとも修正しようとすれば、いかなる変更もそのインターフェースを参照しているいかなるフィルタも無効にし得ることを示す、警告が示されるであろう。表２から推定され得るように、フィルタにおいてこの動作を指定するための構文は‘alt-src-host（<cname>）’であり、ここでcnameはｅ−メールの送信時に用いられるべきインターフェースの呼称名である。
【０１２６】
一実施形態において、宛先ドメインと‘alt-src-host’情報の異なる組合せに対して別々の待ち行列がつくられる。例えば、第１の待ち行列は（デフォルトの配信インターフェースを介して）‘foo.com’に宛てられたメールを保持し、ルールにより‘foo.com’へのいくつかのメッセージが‘alt-src-host’動作を用いて別々のインターフェース／ホスト名で発信される必要が生じた場合に、‘foo.com（my-alt-host-interface, my-alt-hostname）’に宛てられたメールのための待ち行列がさらにつくられ、用いられる。
【０１２７】
別の実施形態において、フィルタロジック１３４は、メッセージが配信されるべき受取人に対するｅ−メールアドレスをメッセージフィルタが変更することができる、「変更ｅ−メールアドレスに配信」動作をサポートする。変更配信アドレスはメッセージエンベロープの「RCPT TO」行にある既存の配信アドレスに入れ換わる。この変更はメッセージの全受取人に適用される。この変更はメッセージの配信のためにどのメールホストが接続されているかには影響しない。
【０１２８】
表２から推定され得るように、この動作の構文は‘alt-rcpt-to（<email>）’であり、ここでemailはｅ−メールの全コピーが送信されるべきアドレスである。‘alt-rcpt-to（<email>,<int>）’という別の構文もサポートされ、ここでintは本明細書でコピーカウント値とも称される整数値である。この別の構文においては、整数がゼロであれば、与えられたアドレスにｅ−メールの１つのコピーだけが送信される。整数がゼロでなければ、あるいはオプションパラメータが用いられていなければ、ｅ−メールの１つのコピーが本来の受取人の全てに送信される。
【０１２９】
ある実施形態では、「変更ホストに配信」動作がサポートされる。メッセージの全受取人に対する宛先メールホストに用いられるＩＰアドレスはこの動作のパラメータに変更され得る。パラメータは（a.b.c.dフォーマット）ＩＰアドレスまたは分解されていないホスト名とすることができる。メッセージエンベロープ内の受取人アドレスは変更されない。この動作の構文は‘alt-mailhost（<hostname>）’であり、ここでhostnameはｅ−メールを送信する目的のために接続するマシン名（またはＩＰ）である。
【０１３０】
別の実施形態では、「ログにメッセージ書込」動作がサポートされる。この動作では、メッセージフィルタが、受取人リストを含むメッセージ全体を、ユーザが選択したメールログに書き込むことができる。ユーザは通常のログ作成機能を選ぶことができ、またはこれらのイベントを特に記録するための別のログを指定することができる。この動作の構文は‘log（<logname>）’であり、ここでlognameはメッセージがログされるべきファイルの名前である。
【０１３１】
また別の実施形態において、「Ｂｃｃ」動作が提供され、この動作がとられると、受信されたメッセージの完全な複製が作成され、宛先受取人に送信される。コピーに関する送還経路は、本来の送信者のいかなる返送の受信も防止する、空白文字列に変更される。複製ｅ−メールはいかなる形でも処理またはフィルタリングされず、よってＬＳＭＴＰ型メッセージは変数が置き換えられず、パーツがメッセージ内で集められることはない。この動作の構文は‘bcc（<email>）’であり、ここでemailはｅ−メールのコピーの送信先アドレスである。
【０１３２】
別の実施形態において、「通知」動作が提供され、この動作がとられると、インジェクションフィルタの呼称名、「MAIL FROM」、「RCPT TO」及び関連するルールに整合した入りメッセージのヘッダを含む、新しいメッセージが作成される。この通知メッセージは宛先受取人に送信され、処理またはフィルタリングされない。この動作の構文は‘notify（<email>）’であり、ここでemailは通知の送信先アドレスである。
【０１３３】
ある実施形態において、いくつかの動作が‘最終’と見なされる。最終動作がメッセージに実行されれば、そのフィルタでさらに動作がとられることはなく、そのメッセージに関してそれ以上フィルタが評価されることはない。一実施形態において、最終動作には、「返送」、「打切り」及び「配信」がある。
【０１３４】
「打切り」動作において、メッセージフィルタは全てのメッセージ受取人を打ち切ることができる。この動作はメールモニタ目的のため打切りメッセージとして記録される。本明細書で説明されるほかの全ての最終動作によるように、現在のフィルタ内でこの動作に続いて現れる動作は全く実行されない。この動作は実行されると、このメッセージに対してそれ以上フィルタが評価されることはない。一実施形態において、この動作の構文は‘abort（）’である。「メッセージ返送」動作において、メッセージフィルタは包括的返送構造設定にしたがってメッセージを送り返すことができる。一実施形態において、この動作の構文は‘bounce（）’である。「配信」動作において、メッセージは、前段のフィルタの処理の間に変更されてもよい現在のデータとともに、配信のために直ちに待ち行列に入れられる。
【０１３５】
４.０  ユーザインターフェース
一実施形態において、送信者ページ１２０Ａまたは管理ページ１２０Ｂによって提供されるグラフィカルユーザインターフェースは、インジェクションフィルタの作成、編集及び削除を可能にする。インジェクションフィルタは序列順に表示することができ、順序は修正することができる。ユーザは、呼称名、フィルタリング順序、受信イーサネット（登録商標）インターフェース、受信ＩＰインターフェース、（「Allowed Hosts」表記を用いる）「Allowed Hosts」、「MAIL FROM」、「RCPT TO」、メッセージサイズ及び活性／不活性状態を含む、属性値を設定できる。
【０１３６】
このインターフェースを用いて、撥除または既存の配信構成への割当ての、動作をＩＦに割り当てることができる。動作がメッセージの撥除であれば、論拠をインジェクトホストへの返送メッセージに含めて提供することができる。
【０１３７】
別の実施形態において、フィルタロジック１３４またはシステム１０６へのコマンドラインインターフェース（ＣＬＩ）が提供される。ＣＬＩを用いて、送信者ホスト１０２または管理ホスト１１４はシステムへの端末接続を確立し、文字ベースコマンドをシステムに与えることができる。システム１０６のコマンドラインインタープリーターが、システムの１つまたはそれより多くの別の内部プロセスを用いて、コマンドを受け取り、パースし、実行する。ＣＬＩを用いて、ユーザは個々のフィルタを作成、削除及び操作することができ、フィルタをインポートし、外部ファイルにエクスポートすることもできる。付録２はＣＬＩの仕様の例を提示する。
【０１３８】
５.０  実施機構−ハードウエア概要
図５は本発明の実施形態を実装することができるコンピュータシステム５００を示すブロック図である。コンピュータシステム５００は、バス５０２または情報を通信するための別の通信機構及び情報を処理するためのバス５０２に接続されたプロセッサ５０４を備える。コンピュータシステム５００は、情報及びプロセッサ５０４によって実行されるべき命令を格納するためのバス５０２に接続された、ランダムアクセスメモリ（ＲＡＭ）またはその他の動的記憶装置のような主メモリ５０６も備える。主メモリ５０６はプロセッサ５０４によって実行されるべき命令の実行中に一時変数またはその他の中間情報を格納するために用いることもできる。コンピュータシステム５００はさらに、静的情報及びプロセッサ５０４に対する命令を格納するためのバス５０２に接続されたリードオンリメモリ（ＲＯＭ）またはその他の静的記憶装置を備える。磁気ディスクまたは光ディスクのような記憶装置５１０が備えられ、情報及び命令を格納するためにバス５０２に接続される。
【０１３９】
コンピュータシステム５００は、コンピュータユーザに情報を表示するための、陰極線管（ＣＲＴ）のようなディスプレイ５１２に、バス５０２を介して接続することができる。情報及びコマンド選択をプロセッサ５０４に通信するために、英数字キー及びその他のキーを有する、入力デバイス５１４がバス５０２に接続される。別のタイプのユーザ入力デバイスは、プロセッサ５０４に方向情報及びコマンド選択を通信するため及びディスプレイ５１２上のカーソル移動制御のための、マウス、トラックボール、スタイラス、またはカーソル方向キーなどのカーソル制御手段５１６である。この入力デバイスは一般に、デバイスによる平面上の位置の指定を可能にする、第１の軸（例えばｘ）及び第２の軸（例えばｙ）という２本の軸において自由度２を有する。
【０１４０】
本発明は、本明細書に説明されるような電子メッセージ配信手法のためにコンピュータシステム５００を使用することに関する。本発明の一実施形態にしたがえば、本明細書に説明されるような電子メッセージ配信手法は、主メモリ５０６に収められた１つまたはそれより多くの命令の１つまたはそれより多くのシーケンスを実行するプロセッサ５０４に応答して、コンピュータシステム５００によって提供される。そのような命令は、記憶装置５１０のような別のコンピュータ読取可能媒体から主メモリ５０６に読み込むことができる。主メモリ５０６に収められた命令のシーケンスの実行により、本明細書に説明されるプロセス工程がプロセッサ５０４によって実施される。別の実施形態において、結線回路を本発明を実施するためのソフトウエア命令の代りに、またはソフトウエア命令と組み合せて用いることができる。すなわち、本発明の実施形態はハードウエア回路とソフトウエアのいかなる特定の組合せにも限定されない。
【０１４１】
本明細書に用いられる術語‘コンピュータ読取可能媒体’は実行のためのプロセッサ５０４への命令の供給に関与するあらゆる媒体を指す。そのような媒体は、限定するものではないが、不揮発性媒体、揮発性媒体、及び通信媒体を含む多くの形態をとることができる。不揮発性媒体として、例えば、記憶装置５１０のような光ディスクまたは磁気ディスクが挙げられる。揮発性媒体として、主メモリ５０６のようなダイナミックメモリがある。通信媒体として、バス５０２を構成する電線を含む、同軸ケーブル、銅線及び光ファイバがある。通信媒体は、電波データ通信及び赤外線データ通信中に発生するような、音波または光波の形態をとることもできる。
【０１４２】
コンピュータ読取可能媒体の普遍的形態には、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープまたはその他のいずれかの磁気媒体、ＣＤ-ＲＯＭ，その他のいずれかの光媒体、パンチカード、紙テープ、孔のパターンをもつその他のいずれかの物理的媒体、ＲＡＭ、ＰＲＯＭ及びＥＰＲＯＭ、フラッシュＥＰＲＯＭ、その他のいずれかのメモリＩＣまたはメモリカートリッジ、以降で説明するような搬送波、またはコンピュータが読み取ることができるその他のいずれかの媒体がある。
【０１４３】
様々な形態のコンピュータ読取可能媒体が、実行のためのプロセッサ５０４への１つまたはそれより多くの命令の１つまたはそれより多くのシーケンスの搬送にかかわることができる。例えば、命令は初めにリモートコンピュータの磁気ディスク上に載せることができる。リモートコンピュータはその命令をダイナミックメモリにロードし、モデムを用い、電話回線を通じて命令を送信することができる。コンピュータシステム５００側のモデムは、電話回線を通じてデータを受信し、赤外線送信器を用いてデータを赤外線信号に変換することができる。赤外線検出器が赤外線信号で搬送されるデータを受け取り、適切な回路がデータをバス５０２上におくことができる。バス５０２はデータをメインメモリ５０６に搬送し、メインメモリ５０６からプロセッサ５０４が命令を取り込んで実行する。メインメモリ５０６によって受け取られる命令は、必要に応じて、プロセッサ５０４による実行の前または後に記憶装置５１０に格納できる。
【０１４４】
コンピュータシステム５００はバス５０２に接続された通信インターフェース５１８も備える。通信インターフェース５１８は、ローカルネットワーク５２２に接続されたネットワークリンク５２０への双方向データ通信接続を提供する。例えば、通信インターフェース５１８は、対応するタイプの電話回線へのデータ通信接続を提供するための、統合サービスデジタル通信網（ＩＳＤＮ）カードまたはモデムとすることができる。別の例として、通信インターフェース５１８は互換ローカルエリアネットワーク（ＬＡＮ）へのデータ通信接続を提供するためのＬＡＮカードとすることができる。無線リンクも実施できる。そのような実施形態のいずれにおいても、通信インターフェース５１８は、様々なタイプの情報を表すデジタルデータストリームを搬送する、電気信号、電磁気信号または光信号を送受信する。
【０１４５】
ネットワークリンク５２０は一般に、１つまたはそれより多くのネットワークを介する他のデータ装置へのデータ通信を提供する。例えば、ネットワークリンク５２０は、ローカルネットワーク５２２を介する、ホストコンピュータ５２４またはインターネットサービスプロバイダ（ＩＳＰ）５２６によって運用されるデータ装置への接続を提供することができる。ＩＳＰ５２６は続いて、今では一般に‘インターネット’５２８と称される、ワールドワイドパケットデータ通信ネットワークを介するデータ通信サービスを提供する。ローカルネットワーク５２２及びインターネット５２８はいずれも、デジタルデータストリームを搬送する、電気信号、電磁信号または光信号を用いる。デジタルデータをコンピュータシステム５００に伝え、コンピュータシステム５００から伝える様々なネットワークを通る信号及び、ネットワークリンク５２０を通じ、通信インターフェース５１８を介する信号は、情報を輸送する搬送波の例示的形態である。
【０１４６】
コンピュータシステム５００は、１つの（または複数の）ネットワーク、ネットワークリンク５２０及び通信インターフェース５１８を介して、メッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例においては、サーバ５３０が、インターネット５２８，ＩＳＰ５２６，ローカルネットワーク５２２及び通信インターフェース５１８を介して、アプリケーションプログラムのためのリクエストされたコードを送信することができよう。本発明にしたがえば、そのようにダウンロードされたアプリケーションの１つが本明細書に説明されるような電子メッセージ配信手法を提供する。
【０１４７】
受信するコードは、受信しながらプロセッサ５０４によって実行することができ、及び／または後の実行のために記憶装置５１０またはその他の不揮発性記憶装置に格納することができる。この態様において、コンピュータシステム５００は搬送波の形態でアプリケーションコードを入手することができる。
【０１４８】
６.０  拡張及び変更
上述の明細において、本発明を本発明の特定の実施形態を参照して説明した。しかし、本発明のより広範な精神及び範囲を逸脱することなく、様々な改変及び変更がそのような実施形態になされ得ることは明らかであろう。例えば、上述したフィルタ手法及び「変更ソースホスト」コマンド手法に加えて、メッセージ処理システム１０６は特定のインターフェースに対して特定のインターフェースを選択するためにラウンドロビン手法を用い、相異なる送出インターフェースを通じてメッセージを送信することができる。したがって、明細書及び図面は限定的意味ではなく、例示的意味にとられるべきである。
【０１４９】
[付録１−クラス定義例]
１  設計詳細
本節では、メッセージオブジェクトのためのデータ構造及び処理方法、受取人にどのようにして情報でタグがつけられるか、メッセージメタデータがどのように送られるか、等の例を説明する。
【０１５０】
１.１  フィルタ表現
ユーザにとり、フィルタはＦＤＬ内で定義されるであろうように見える。システム内で、フィルタは、以下の表に示される例示的構造におけるように、システムによる、定義されたフィルタへのメッセージの効率的な適用を可能にする、データ構造として実施される。
【表４】
2006515703.tif 000006
【０１５１】
１.１.１  ルールクラス
全てのルールは、以下のように定義される、基本ルールクラス‘Rule’から導かれなければならない。
【０１５２】
クラス Rule：
def__init__（self）:
"""クラスルールのための基本コンストラクタ"""
pass
＃以下は'仮想方法'である。これらは
＃本基本クラスから継承されるいかなるクラスによっても優先されなければならない
def name （self）
"""ルールのＦＤＬ構文表現を返す"""
「AttributeError」をたて、"'ルール'段階では'name'属性がない"
def eval （self,msg）
"""与えられたメッセージオブジェクトをルールに対して評価する"""
<msg>: 評価されるメッセージオブジェクトへの参照
メッセージが整合しなければ０を返し、そうでなければ非０を返す。"""
「AttributeError」をたて、"'ルール'段階では'eval'属性がない"
def is_valid （self）
"""ルールが無効であれば０を返し、そうでなければ非０を返す"""
「AttributeError」をたて、"'ルール'段階では'is_valid'属性がない"
方法"eval"及び"name"はクラスルールから継承されるクラスによって実施されなければならない。
【０１５３】
ルールは、フィルタが活性かつ有効であるとマークされているが、実際は無効であれば、「InvalidFilterError」例外を出すことができる。このルールを含むフィルタクラスはこの例外を捕捉し、それ自体を無効とマークする責任がある。
【０１５４】
１.１.１.１  「MAIL FROM」ルール
このルールはユーザによって与えられた正規表現に対するメッセージの「MAIL TO」データの整合比較を試みる。このルールはそのコンストラクター‘__init__（）’へのパラメータとしてＦＤＬ定義ワイルドカード化正規表現を受け入れ、これを処理して、将来の参照のためにオブジェクト内にキャッシュされたままにされる、コンパイルされた正規表現データ構造にする。
【０１５５】
クラス MAIL_FROM_Rule（Rule）:
def__init__（self,mail_from）:
"""クラス MAIL_FROM_Ruleのためのコンストラクター"""
<pattern>: 整合比較するためのregex文字列"""
Rule.__init__（self）
self._mail_from_regex = re.compile（mail_from）
self._mail_from = mail_from
def name（self）
"""ルールのＦＤＬ構文表現を返す"""
return "MAIL_FROM_Rule（'%s'）" %（self._mail_from）
def eval（self,msg）
"""ルールがメッセージに整合すれば１を返し、そうでなければ０を返す"""
<msg>: 整合比較されるべきメッセージオブジェクト"""
if re.match（self._mail_from_regex,msg.get_return_path（））:
return 1
else:
return 0
def is_valid（self）:
"""このルールが無効であれば０を返し、そうでなければ非０を返す"""
#「MAIL FROM」は必ず受け入れられ、よって必ず有効である
return 1。
【０１５６】
１.１.１.２  「AND」ルール
「AND」ルールは実際上ブール演算子‘AND’の実施である。これは、演算子の左側及び右側に対応する、‘lefthand’及び‘righthand’の、２つのルールで例示される。
【０１５７】
クラス AND_Rule:
def__init__（self,lefthand,righthand）:
"""クラス AND_Ruleのためのコンストラクター
<lefthand>: ‘AND’演算子の左側へのルール
<righthand>: ‘AND’演算子の右側へのルール"""
if isinstance（lefthand,Rule） and isinstance（righthand,Ruke）:
Rule.__init__（self）
self._left=lefthand
self._righr=righthand
else:
raise TypeError, "非ルールパラメータがAND_Ruleに与えられる"
def name（self）:
"""ルールのＦＤＬ構文表現を返す"""
return "（" + self._left.name（） + " AND " + self._rught.name（） + "）"
def eval（self,msg）
"""ルールがメッセージに整合すれば１を返し、そうでなければ０を返す"""
<msg>: 整合比較されるべきメッセージオブジェクト"""
if self._left.eval（msg） and self._rught.eva（msg）:
return 1
else:
return 0。
【０１５８】
[付録２−コマンドラインインターフェース例]
２  コマンドラインインターフェース
メッセージフィルタリング機能は、下表に要約され、以下でさらに詳細に説明される、インターフェースコマンドを用いることができる。
【表５】
2006515703.tif 000007
【０１５９】
用法：filters[filters-args]コマンド[command-args]
現在「filters-args」は実施されていないが、将来、filtersコマンドの冗長及び出力フォーマットのような事柄を制御するためにフラッグが導入され得る。これは、filtersコマンドに自動化インターフェースを実施する際に特に有用であろう。
【０１６０】
以下の一般的な３タイプのパラメータがある：
・ seqnum − フィルタリスト内のフィルタの位置に基づいてフィルタを表す整数。例えば、２のseqnumはリスト内で２番目のフィルタを表す。
【０１６１】
・ filtname − フィルタの呼称名。
【０１６２】
・ range − rangeは１つより多くのフィルタを表すために用いることができ、‘Ｘ-Ｙ’の形で現れる。ここでＸ及びＹは範囲を識別する最初と最後のseqnumである。例えば、‘２-４’は２番目、３番目及び４番目の位置にあるフィルタを表すことになろう。ＸまたはＹは無制限リストを表すために省略され得る。‘-４’は初めの４つのフィルタを表し、‘２-’は１番目のフィルタを除く全てのフィルタを表すことになろう。rangeは、フィルタリスト内の全てのリストを表す、キーワード‘all’とすることもできる。
【０１６３】
２.１  ＣＬＩコマンドの例
２.１.１  fiters add
用法： ... add [seqnum|filtname|last]
引数：
seqnum
（１つまたは複数の）新しいフィルタを挿入する位置を指定する。省略されるかまたはキーワード‘last’が与えられれば、入れられるフィルタはフィルタリストの後におかれるであろう。順序番号の飛びは許されない。ユーザは現在のリストの境界の外側のseqnumを入れることはできないであろう。ユーザが未知のfiltnameを入れると、ユーザは、有効なfiltname、seqnumまたは‘last’を入れるように促されるであろう：
エラー条件：
・ 現在の順序番号範囲をこえる順序番号
・ 一意的ではないfiltnameをもつフィルタ
・ 予約語をfiltnameとしてもつフィルタ
・ 構文エラーがあるフィルタ
・ 存在しない、インターフェースのような、システムリソースを参照する動作をもつフィルタ。
【０１６４】
２.１.２  filters delete
用法： ... delete [seqnum|filtname|range]
識別される（１つまたは複数の）フィルタを削除する：
エラー条件：
・ 与えられたfiltnameをもつフィルタがない
・ 与えられた順序番号をもつフィルタがない。
【０１６５】
２.１.３  filters move
用法： ... move seqnum|filtname|range seqnum|last
第１パラメータで識別されるフィルタを第２パラメータで識別される位置に移す。第２パラメータがキーワード‘last’であれば、フィルタはフィルタリストの最後に移されるであろう。１つより多くのフィルタが移される場合、それぞれの順序は互いに対して同じままであろう：
エラー条件：
・ 与えられたfiltnameをもつフィルタがない
・ 与えられた順序番号をもつフィルタがない
・ 現在の順序番号範囲をこえる順序番号
・ 移動が順序の変更を生じないであろう。
【０１６６】
２.１.４  filters set
用法： ... set seqnum|filtname|range active|inactive
識別されるフィルタを与えられた状態をもつように設定する。正当状態は：    ・ 活性
選択されたフィルタの状態を活性に設定する
・ 不活性
選択されたフィルタの状態を不活性に設定する：
エラー条件：
・ 与えられたfiltnameをもつフィルタがない
・ 与えられた順序番号をもつフィルタがない。
【０１６７】
２.１.５  filters import
用法： ... import filename
引数：
filename
処理されるべきフィルタを含むファイルの名称。このファイルは、IronPortボックス上のftpルートディレクトリーの‘filters’サブディレクトリーになければならない。このファイルは取り込まれて、パースされ、いかなるエラーも報告されるであろう。インポートされるフィルタは現在のフィルタセットに存在する全てのフィルタと入れ換わるであろう：
エラー条件：
・ ファイルが存在しない
・ 一意的ではないfiltnameをもつフィルタ
・ 予約語であるfiltnameをもつフィルタ
・ 構文エラーがあるフィルタ
・ 存在しない、インターフェースのような、システムリソースを参照する動作をもつフィルタ。
【０１６８】
２.１.６  filters export
用法： ... export filename[seqnum|filtname|range]
引数：
filename
既存のフィルタセットのフォーマット版をファイルに出力する：
エラー条件：
・ 与えられたfiltnameをもつフィルタがない
・ 与えられた順序番号をもつフィルタがない。
【０１６９】
２.１.７  filters list
用法： ... list [seqnum|filtname|range]
リスト機能は、フィルタ本体をプリントせずに、識別されたフィルタに関する要約された情報を表形式で示す。表示される情報には：
・ フィルタ名
・ フィルタ順序番号
・ フィルタの活性／不活性状態
・ フィルタの有効／無効状態
がある：
エラー条件：
・ 不当なrangeフォーマット。
【０１７０】
２.１.８  filters detail
用法： ... detail [seqnum|filtname|range]
detailコマンドは識別されるフィルタに関する完全な情報を提供する。情報には、フィルタ本体及び、そのフィルタに関係付けられ得るいかなるカウンタも含む、いかなる付加的状態情報も含まれる：
引数：
range
rangeはlistコマンドと正確に同じ仕方で指定される。
【０１７１】
２.１.９  filters parseheaders
用法： ... parseheaders
parseheadersコマンドは、システムがメッセージヘッダのパースを許すか否かを判定するフラッグのオン／オフをユーザがトグル式に切り換えることを可能にする。デフォルトは'オフ'である。ヘッダのパースが無効にされている場合、件名ルールをもついかなるフィルタも無効になる。
【図面の簡単な説明】
【０１７２】
【図１Ａ】電子メッセージ配信のためのシステムの概要を示すブロック図である
【図１Ｂ】図１Ａのシステムの補助コンポーネントを示すブロック図である
【図２】一実施形態にしたがう電子メッセージ配信のプロセスのデータフロー図である
【図３Ａ】メッセージに動作を実施する方法のフローチャートである
【図３Ｂ】フィルタルールをパースする方法のフローチャートである
【図３Ｃ】フィルタのブロック図である
【図４】変更ソースからｅ−メールメッセージを配信するプロセスのフローチャートである
【図５】実施形態を実装することができるコンピュータシステムを示すブロック図である。
【符号の説明】
【０１７３】
１０２    送信者
１０４    送出メッセージゲートウエイ
１０６    メッセージ処理システム
１０８    受信者
１１０    入りメッセージゲートウエイ
１１２    受取人
１２０Ａ    送信者ページ
１２０Ｂ    管理ページ
１２０Ｃ    受信者ページ
１２２    ウエッブサーバ
１２４    データベース
１２６    ＤＮＳサーバ
１３０    フィルタ
１３２    メッセージ配信待ち行列
１３４    フィルタロジック
【図１Ａ】
2006515703.tif 000012
【図１Ｂ】
2006515703.tif 000013
【図２】
2006515703.tif 000014
【図３Ａ】
2006515703.tif 000015
【図３Ｂ】
2006515703.tif 000016
【図３Ｃ】
2006515703.tif 000017
【図４】
2006515703.tif 000018
【図５】
2006515703.tif 000019
【国際調査報告】
2006515703.tif 000020
2006515703.tif 000021