【誤訳訂正書】
【提出日】平成21年6月16日(2009.6.16)
【誤訳訂正１】
【訂正対象書類名】特許請求の範囲
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】
電子メッセージの配信方法において、
ルールと該ルールに関連付けられた電子メッセージの配信に関する動作とが記述された１以上のメッセージフィルタであって、前記ルールの記述において前記電子メッセージの件名または本文と前記動作との組み合わせを指定し、前記動作の記述において前記電子メッセージの件名または本文が前記ルールで指定された件名または本文と一致したときに所定の送信元ホスト名のホストから電子メッセージを配信することを定める、メッセージフィルタの定義情報を受け付けてメモリに格納するステップと、
１以上の受信者に宛てられた前記電子メッセージを受信するステップと、
前記各メッセージフィルタに記述されたルールと前記受信した電子メッセージとを照合するステップと、
前記各メッセージフィルタに記述されたルールにより指定された件名または本文と、前記受信した電子メッセージの件名または本文とが一致したときに、該電子メッセージを前記各受信者への配信用の待ち行列に入れる前に、該電子メッセージの中に、前記照合で一致したメッセージフィルタが指定する特定の送信元ホスト名であって、前記電子メッセージの配信を実際に行う送信元ホスト名を設定することにより、前記動作を実行するステップとを備えた電子メッセージの配信方法であって、
前記各メッセージフィルタが、それぞれ、前記電子メッセージの送信者の異なるコミュニケーションキャンペーンに関するものであり、
前記１以上のメッセージフィルタのうちの各メッセージフィルタは、コミュニケーションキャンペーンごとに、それぞれ異なる送信元ホスト名を指定するものであり、
前記各メッセージフィルタの定義情報を格納するステップ、前記ルールと電子メッセージとを照合するステップ、および、前記動作を実行するステップを実行するメッセージ処理システムが、前記送信者から大量の電子メッセージを受信し、該大量の電子メッセージを前記１以上のメッセージフィルタにしたがって処理し、前記１以上のメッセージフィルタの中で前記送信者が指定した複数の異なる送信元ホスト名を使用して、該大量の電子メッセージを前記１以上の受信者に振り分ける、送信者用の仮想ゲートウエイとして機能することを特徴とする電子メッセージの配信方法。
【請求項２】
前記動作の記述において、さらにインターフェース名が指定されているときは、
前記動作を実行するステップが、
前記指定されたインターフェース名に関連付けられた前記特定の送信元ホスト名を決定し、
前記電子メッセージの宛先ドメイン、前記指定されたインターフェース名および前記特定の送信元ホスト名に、一意に関連付けられる配信待ち行列を作成し、
前記電子メッセージを前記配信待ち行列に入れるものであることを特徴とする請求項１記載の電子メッセージの配信方法。
【請求項３】
前記動作の記述において、代替ｅ−メールアドレスへの配信と配信先アドレスとが指定されているときは、
前記動作を実行するステップが、
前記電子メッセージの”RCPT TO”項目に、前記代替ｅ−メールアドレスを設定するものであることを特徴とする請求項１記載の電子メッセージの配信方法。
【請求項４】
前記動作の記述において、代替ホストへの配信と特定の宛先ホスト名とが指定されているときは、
前記動作を実行するステップが、
前記電子メッセージの全受信者用の宛先メールホストアドレスとして、前記特定の宛先ホスト名を設定することを特徴とする請求項１記載の電子メッセージの配信方法。
【請求項５】
前記１以上の電子メッセージの受信者の中の少なくとも一人によりアクセス可能なドメインサーバが、前記特定の送信元ホスト名を認知していることを特徴とする請求項１記載の電子メッセージの配信方法。
【請求項６】
電子メッセージの配信プログラムであって、１以上のプロセッサを備えたメッセージ処理システムに、
ルールと該ルールに関連付けられた電子メッセージの配信に関する動作とが記述された１以上のメッセージフィルタであって、前記ルールの記述において前記電子メッセージの件名または本文と前記動作との組み合わせを指定し、前記動作の記述において前記電子メッセージの件名または本文が前記ルールで指定された件名または本文と一致したときに所定の送信元ホスト名のホストから電子メッセージを配信することを定める、メッセージフィルタの定義情報を受け付けてメモリに格納する処理と、
１以上の受信者に宛てられた前記電子メッセージを受信する処理と、
前記各メッセージフィルタに記述されたルールと前記受信した電子メッセージとを照合する処理と、
前記各メッセージフィルタに記述されたルールにより指定された件名または本文と、前記受信した電子メッセージの件名または本文とが一致したときに、該電子メッセージを前記各受信者への配信用の待ち行列に入れる前に、該電子メッセージの中に、前記照合で一致したメッセージフィルタが指定する特定の送信元ホスト名であって、前記電子メッセージの配信を実際に行う送信元ホスト名を設定することにより、前記動作を実行する処理とを実行させる配信プログラムであり、
前記各メッセージフィルタが、それぞれ、前記電子メッセージの送信者の異なるコミュニケーションキャンペーンに関するものであり、
前記１以上のメッセージフィルタのうちの各メッセージフィルタは、コミュニケーションキャンペーンごとに、それぞれ異なる送信元ホスト名を指定するものであり、
前記各メッセージフィルタの定義情報を格納する処理、前記ルールと電子メッセージとを照合する処理、および、前記動作を実行する処理を実行するメッセージ処理システムを、前記送信者から大量の電子メッセージを受信し、該大量の電子メッセージを前記１以上のメッセージフィルタにしたがって処理し、前記１以上のメッセージフィルタの中で前記送信者が指定した複数の異なる送信元ホスト名を使用して、該大量の電子メッセージを前記１以上の受信者に振り分ける、送信者用の仮想ゲートウエイとして機能させる電子メッセージの配信プログラム。
【請求項７】
前記動作の記述において、さらにインターフェース名が指定されているときは、
前記動作を実行する処理が、
前記指定されたインターフェース名に関連付けられた前記特定の送信元ホスト名を決定する処理と、
前記電子メッセージの宛先ドメイン、前記指定されたインターフェース名および前記特定の送信元ホスト名に、一意に関連付けられる配信待ち行列を作成する処理と、
前記電子メッセージを前記配信待ち行列に入れる処理とをさらに実行することを特徴とする請求項６記載の電子メッセージの配信プログラム。
【請求項８】
前記動作の記述において、代替ホストへの配信と特定の宛先ホスト名とが指定されているときは、
前記動作を実行する処理が、
前記電子メッセージの全受信者用の宛先メールホストアドレスとして、前記特定の宛先ホスト名を設定する処理をさらに実行することを特徴とする請求項６記載の電子メッセージの配信プログラム。
【請求項９】
電子メッセージの配信装置であって、
ルールと該ルールに関連付けられた電子メッセージの配信に関する動作とが記述された１以上のメッセージフィルタであって、前記ルールの記述において前記電子メッセージの件名または本文と前記動作との組み合わせを指定し、前記動作の記述において前記電子メッセージの件名または本文が前記ルールで指定された件名または本文と一致したときに所定の送信元ホスト名のホストから電子メッセージを配信することを定める、メッセージフィルタの定義情報を受け付けてメモリに格納する手段と、
１以上の受信者に宛てられた前記電子メッセージを受信する手段と、
前記各メッセージフィルタに記述されたルールと前記受信した電子メッセージとを照合する手段と、
前記各メッセージフィルタに記述されたルールにより指定された件名または本文と、前記受信した電子メッセージの件名または本文とが一致したときに、該電子メッセージを前記各受信者への配信用の待ち行列に入れる前に、該電子メッセージの中に、前記照合で一致したメッセージフィルタが指定する特定の送信元ホスト名であって、前記電子メッセージの配信を実際に行う送信元ホスト名を設定することにより、前記動作を実行する手段とを備え、
前記各メッセージフィルタが、それぞれ、前記電子メッセージの送信者の異なるコミュニケーションキャンペーンに関するものであり、
前記１以上のメッセージフィルタのうちの各メッセージフィルタは、コミュニケーションキャンペーンごとに、それぞれ異なる送信元ホスト名を指定するものであり、
前記送信者から大量の電子メッセージを受信し、該大量の電子メッセージを前記１以上のメッセージフィルタにしたがって処理し、前記１以上のメッセージフィルタの中で前記送信者が指定した複数の異なる送信元ホスト名を使用して、該大量の電子メッセージを前記１以上の受信者に振り分ける、送信者用の仮想ゲートウエイとして機能する電子メッセージの配信装置。
【請求項１０】
前記動作の記述において、さらにインターフェース名が指定されているときは、
前記動作を実行する手段が、
前記指定されたインターフェース名に関連付けられた前記特定の送信元ホスト名を決定する手段と、
前記電子メッセージの宛先ドメイン、前記指定されたインターフェース名および前記特定の送信元ホスト名に、一意に関連付けられる配信待ち行列を作成する手段と、
前記電子メッセージを前記配信待ち行列に入れる手段とを有することを特徴とする請求項９記載の電子メッセージの配信装置。
【請求項１１】
前記動作の記述において、代替ホストへの配信と特定の宛先ホスト名とが指定されているときは、
前記動作を実行する手段が、
前記電子メッセージの全受信者用の宛先メールホストアドレスとして、前記特定の宛先ホスト名を設定する手段を有することを特徴とする請求項９記載の電子メッセージの配信装置。
【請求項１２】
電子メッセージの２以上の送信元のネットワークアドレスに関する情報をメモリに格納する手段をさらに備え、
前記２以上の送信元がドメインサーバにより認知されており、前記各送信元が特定する装置が物理的に同一の装置であることを特徴とする請求項９記載の電子メッセージの配信装置。
【請求項１３】
電子メッセージの配信装置であって、
データネットワークに接続された、該データネットワークから１以上のパケットフローを受信するためのネットワークインターフェース、
プロセッサ、および
１以上の命令シーケンスが記録されたコンピュータ読取可能な記録媒体を備え、
前記命令シーケンスが前記プロセッサにより実行されることにより、
ルールと該ルールに関連付けられた電子メッセージの配信に関する動作とが記述された１以上のメッセージフィルタであって、前記ルールの記述において前記電子メッセージの件名または本文と前記動作との組み合わせを指定し、前記動作の記述において前記電子メッセージの件名または本文が前記ルールで指定された件名または本文と一致したときに所定の送信元ホスト名のホストから電子メッセージを配信することを定める、メッセージフィルタの定義情報を受け付けてメモリに格納する処理と、
１以上の受信者に宛てられた前記電子メッセージを受信する処理と、
前記各メッセージフィルタに記述されたルールと前記受信した電子メッセージとを照合する処理と、
前記各メッセージフィルタに記述されたルールにより指定された件名または本文と、前記受信した電子メッセージの件名または本文とが一致したときに、該電子メッセージを前記各受信者への配信用の待ち行列に入れる前に、該電子メッセージの中に、前記照合で一致したメッセージフィルタが指定する特定の送信元ホスト名であって、前記電子メッセージの配信を実際に行う送信元ホスト名を設定することにより、前記動作を実行する処理として機能するものであり、
前記各メッセージフィルタが、それぞれ、前記電子メッセージの送信者の異なるコミュニケーションキャンペーンに関するものであり、
前記１以上のメッセージフィルタのうちの各メッセージフィルタは、コミュニケーションキャンペーンごとに、それぞれ異なる送信元ホスト名を指定するものであり、
前記各メッセージフィルタの定義情報を格納する処理、前記ルールと電子メッセージとを照合する処理、および、前記動作を実行する処理を実行することにより、前記送信者から大量の電子メッセージを受信し、該大量の電子メッセージを前記１以上のメッセージフィルタにしたがって処理し、前記１以上のメッセージフィルタの中で前記送信者が指定した複数の異なる送信元ホスト名を使用して、該大量の電子メッセージを前記１以上の受信者に振り分ける、送信者用の仮想ゲートウエイとして機能する電子メッセージの配信装置。
【請求項１４】
前記動作の記述において、さらにインターフェース名が指定されているとき、
前記動作を実行する処理が、
前記指定されたインターフェース名に関連付けられた前記特定の送信元ホスト名を決定する処理と、
前記電子メッセージの宛先ドメイン、前記指定されたインターフェース名および前記特定の送信元ホスト名に、一意に関連付けられる配信待ち行列を作成する処理と、
前記電子メッセージを前記配信待ち行列に入れる処理とをさらに実行するものであることを特徴とする請求項１３記載の電子メッセージの配信装置。
【請求項１５】
前記動作の記述において、代替ホストへの配信と特定の宛先ホスト名とが指定されているときは、
前記動作を実行する処理が、
前記電子メッセージの全受信者用の宛先メールホストアドレスとして、前記特定の宛先ホスト名を設定する処理をさらに実行するものであることを特徴とする請求項１３記載の電子メッセージの配信装置。
【請求項１６】
前記１以上の電子メッセージの受信者の中の少なくとも一人によりアクセス可能なドメインサーバが、前記特定の送信元ホスト名を認知していることを特徴とする請求項９および１３記載の電子メッセージの配信装置。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【書類名】  明細書
【発明の名称】
電子メッセージの配信方法、配信装置および配信プログラム
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は全般的には電子メッセージの配信に関する。本発明は、さらに詳しくは、仮想ゲートウエイ手法を用いる電子メッセージの配信に関する。
【背景技術】
【０００２】
本節で説明する手法は実行可能であっても、必ずしも以前に考え出されたり実行されたりした手法ではない。したがって、本明細書で特に示されない限り、本節で説明される手法は本出願における請求事項に対する従来技術ではなく、本節における記載をもって従来技術と認められるものではない。
【０００３】
電子メッセージ通信システムの使用は近年大きく増加した。インターネットという特殊な状況において、今では電子メール（ｅメール）が、製造業者、商人、サービスプロバイダ及びその他の大量送信者による、既存または将来の顧客に対するマーケティングキャンペーン及びその他の通信のために広く用いられている。現代の電子システムを用いれば、数１００万件ものそのようなメッセージの送信費用は微々たるものであり、応答率が１％未満であっても送信した価値はあったと見なされている。すなわち、受取人の有効なメール受けへメッセージが無事に配信されることは、通常、送信者の収入に通じる。
【０００４】
一手法において、送信者は対象とする個人のｅメールアドレスからなるメーリングリストを作成する。送信者は対象とする個人に送るｅメールのマスターメッセージすなわちテンプレートを作成する。マスターメッセージ及びメーリングリストは、メーリングリスト上のそれぞれのアドレスにマスターメッセージのコピーを配信するメールゲートウエイまたはその他の送信デバイスに供給される。
【０００５】
一般に、送信デバイスは単一のインターネットプロトコル（ＩＰ）アドレスによってインターネットにおいて識別され、ＩＰアドレスは、メッセージを表す送出ＩＰパケットの送信元（ソース）ＩＰアドレスフィールドにおかれる。リスト内の個人に送られるメッセージは初めに、インターネットサービスプロバイダ（ＩＳＰ）、大企業、または、様々な送信元から大量のメッセージを毎日受け取っている他の受信者に対応した入りメールゲートウエイで受け取られることが多い。
【０００６】
しかし、今では、そのような受信者の多くが大量の要りもしないｅメールメッセージ（スパム）の配信の防止を目的とするフィルタリング及びブロッキング技術を用いているため、この手法では、メッセージの多くは配信されていない。例えば、全て同じ送信元ＩＰアドレスから送られて入ってきたメッセージがある受信者の入りメールゲートウエイで数多く検出されると、受信者はそのメッセージの配信を拒否することができる。受信者は、同様のメッセージが将来においても配信されるのを防止するフィルタを確立することもできる。これは、メッセージが‘スパム’の場合だけではなく、顧客あるいは過去に送信者と取引をしたかまたはそのメッセージの受け取りに同意した個人などの正当なメンバーへの通信である場合でさえもおこり得る。
【０００７】
一手法では、メッセージ件名行のキーワードを検索して禁止されているワードのリストに一致するキーワードを含むメッセージを拒否または隔離するフィルタリングまたはブロッキング技術を、受信者が用いている。別の手法では、受信者が、疑わしい送信者からのメッセージを識別してその表示を禁止するために‘ブラックリスト’を用いている。友人またはその他の受諾できる送信者の個人的に‘ホワイトリスト’でこれらの技術を強化し、‘ホワイトリスト’にある送信者からのメッセージだけを受け入れる受信者もいる。‘ホワイトリスト’及び‘ブラックリスト’はネットワークでつながれたソースから入手することもできる。‘ブラックリスト’検索を実施するための技法は、本明細書の作成時点では、ワールドワイドウエッブの‘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 000001
【００６５】
この手法を用いれば、メッセージ処理システムは、異なるインターフェースを通じて、または、メッセージによって表される通信キャンペーンに依存する異なる送信元アドレスのラベル付けにより、送信者ホストから受信したメッセージを自動的に送信することができる。一実施形態において、処理システムは同じメッセージを異なる受信側システムに複数回送信することができ、それぞれの受信側システムに対するメッセージの送信元ＩＰアドレス及び送出インターフェースを変更することができる。さらに、受信側システムによってメッセージのコピーがブロックされたなどといった外部イベントを受けて、送信元ＩＰアドレスまたはインターフェースはフィルタによって変更される。このようにして、単一の処理システムが１つの送信者または多数の送信者のための多数の仮想メッセージ送信ゲートウエイのように見せることができる。
【００６６】
３.０ メッセージフィルタの詳細説明
システム１０６を介して転送される電子メッセージは、メッセージの特徴、インジェクションソース及びメッセージの宛先などの因子に基づいて、システム上で実施される動作を決めることができる。整合比較されるべきパラメータ及びその結果の動作は、ルールテーブルを指定し、送信者またはその他のメール管理者によって作成されるフィルタ１３０において指定することができる。ルールセットの適用により生じ得る動作として、「異常終了」、「リダイレクト」、「アドレス再指定」及び「ログ記録」がある。ルール定義言語は、管理者によって整合比較規準を動作と関連付けることを可能にし、コマンドラインインターフェース及びグラフィカルユーザインターフェース、のいずれかによる操作、あるいは簡易テキストエディタを使用した操作に応じて関連付けることができる。
【００６７】
図１Ｂ，図２に示すようにフィルタ１３０はルールを有することができる。フィルタ整合比較及び動作の実行はフィルタロジック１３４によって実施される。フィルタロジック１３４は、１つまたはそれより多くのクラス、メソッドあるいは、通常のオブジェクト指向プログラム開発環境を用いて作成され、システム１０６によって実行される、その他のソフトウエアコンポーネントを用いて実施することができる。付録１はフィルタロジック１３４の一実施形態のためのクラス定義の一例である。
【００６８】
図２は一実施形態にしたがう電子メッセージ配信プロセスのデータフロー図である。メッセージ２００がメッセージ処理システム１０６に与えられる。一般に、メッセージ２００は、送信元アドレス２０４を含むヘッダ２０２，件名２０６及び本文２０８を有する。メッセージ２００は、フィルタロジックで受け取られ、メッセージにフィルタ１３０が適用される。フィルタ１３０のそれぞれはパラメータ及び動作を有する。パラメータはメッセージ２００の属性と比較される。整合すれば、フィルタに指定される動作をフィルタロジック１３４が実施する。動作２１０には、「異常終了」動作２１０Ａ、「リダイレクト」動作２１０Ｂ、「アドレス再指定」動作２１０Ｃ，「ログ記入動作」２１０Ｄ等がある。
【００６９】
ある動作の実行により、システム１０６は複数の配信待ち行列１３２の内の１つにメッセージ２００をおく。メッセージ２００が待ち行列１３２におかれると、システム１０６の配信プロセスが送出インターフェース１５０を通じてメッセージを送信する。ある実施形態においては、単一の送出インターフェースが備えられる。別の実施形態においては、複数の送出インターフェースが備えられ、フィルタロジック１３４によって１つが選択される。図２に示されるデータフローの結果、適切なフィルタの評価後にメッセージを特定の態様で送信することができる。例えば、メッセージの宛先にしたがってメッセージのヘッダに異なる送信元ＩＰアドレスをもつメッセージを連続して送信することができる。
【００７０】
図２の全体的プロセスを実施するために用いられるシステム１０６の動作詳細を、処理ルール説明、整合比較及び動作からなる３つの主要コンポーネントに基づいて本明細書で説明する。
【００７１】
３.１ 処理ルール説明
ルールはフィルタ定義言語で記述される。フィルタリングルールは解析されて、内部フォーマットに変換され、メッセージが次いでシステムにインジェクトされたときに整合比較エンジンを駆動するために用いられる。次いで、ルール作成者によって特定のルールに対して指定された動作にしたがい、メッセージ毎または受取人毎に多くの相異なる動作を起こすことができる。
【００７２】
３.２ 整合比較
ここで、フィルタをメッセージに整合比較するための技法を、図３Ａを参照して、システム１０６による完全なメッセージ処理のより広い状況について説明する。図３Ａはメッセージに動作を実施する方法のフローチャートである。明確な例を示す目的で、図１Ａ，図１Ｂ及び図２のシステムを参照して図３Ａのプロセスを本明細書で説明する。
【００７３】
ブロック３０２において、メッセージが受信される。例えば、システム１０６は送信者ホスト１０２からメッセージ２００を受信する。ブロック３０４において、整合比較を実施することができる全ての値を識別するためにメッセージが解析される。ブロック３０６において、その時点で活性化されかつ有効である全てのフィルタを用いて整合比較が実施される。
【００７４】
ブロック３０８において、ブロック３０６における整合比較の結果が一致であれば、あるフィルタに対するある動作が決定される。所要の動作が決定されると、ブロック３１０に示されるように動作を実施することができ、あるいはブロック３１２に示されるように動作に関する情報を後から使用するために格納することができる。
【００７５】
ある動作の結果、ブロック３１４に示されるように、メッセージは配信待ち行列に入れられる。待ち行列に入れることに成功すれば、ブロック３１６において、メッセージが配信に対して受け入れられたことがメッセージを提供したクライアントに告げられる。
【００７６】
ブロック３０４〜３０６を再び参照すれば、システム１０６にメッセージ２００がインジェクトされると、メッセージが解析され、整合比較を実施することができる全ての値が識別される。値のほとんどは、関連付けられたソケットまたはインジェクタに基づいて、入ってくるときの接続、あるいは、メッセージのエンベロープから決定できる、低処理費用で導出することができる。得るための処理に関してより費用がかかる情報は、整合比較ルールが要求する場合に限り、抽出される。
【００７７】
整合比較されるべき現在のフィールドセットに対し、全ての整合比較はブロック３１４においてメッセージ２００を配信待ち行列１３２の内の１つに入れる前になされる。動作を直ちにとることができ、あるいは処理の後の時点におけるさらなる修正または特別な扱いのために目印をつけることができる。インジェクションプロセスのこの時点においてのみ、利用可能フィルタを評価するために全ての情報が必要であり、あるメッセージが取扱う動作を起こすことができるのはこの時点だけである。これらは全て、システム１０６が送信者ホスト１０２またはその他のクライアントにメッセージが受け入れられたことの確認通知を行う前に行われる。プロセス中に失敗がおこれば、クライアントがインジェクションに対する満足すべき応答を受けとることはなく、したがって、クライアントはメッセージの配信のための待ち行列入れに成功しなかったと想定できる。
【００７８】
整合比較プロセスは入ってきたメッセージへの一連のフィルタの適用を含む。与えられたメッセージに対するフィルタのルールの評価結果が真であれば、ブロック３０８〜３１０に示されるように、フィルタの動作がメッセージに適用される。‘活性’かつ‘有効’なフィルタだけがメッセージに適用される。あるフィルタの活性属性または有効属性が偽であればそのフィルタはメッセージに適用されず、これは、そのフィルタのルールが評価されず、そのフィルタの動作が適用されないことを意味する。デフォルトでは、ユーザによって組み入れられたフィルタは‘活性’と設定される。ユーザはＣＬＩ（コマンドラインインターフェース）またはＧＵＩ（グラフィカルユーザインターフェース）を介してフィルタの状態を活性または不活性に設定することができる。
【００７９】
一実施形態において、有効または無効としてのフィルタの状態をユーザが見ることができるが、ユーザは状態を変えることはできない。フィルタは、そのルールまたは動作の１つまたはそれより多くがいずれかの理由で評価または実施され得なければ、無効と見なされる。一例は、ヘッダ解析を必要とするがヘッダ解析がすでに停止されているルールであろう。別の例は、すでに削除された特定のインターフェースに依存するフィルタであろう。
【００８０】
３.３ ヘッダ解析
図３Ｂは、図３Ａのブロック３０４の一実施形態において用いることができるフィルタルールを解析する方法のフローチャートである。
【００８１】
ブロック３２０において、そのような解析がオンに設定されていれば、ヘッダが解析される。（特殊ヘッダフィールドの解析を含む）ヘッダ解析はユーザがグローバルにオンまたはオフに設定できる。デフォルトでは、ヘッダ解析はオフに設定されている。
【００８２】
一実施形態において、件名フィールド及び特殊ヘッダの拡張フィールドがメッセージヘッダで整合比較される。すなわち、ブロック３２２において、特殊ヘッダの拡張フィールドが識別され、関連付けられた値が格納される。ブロック３２４において、メッセージ件名が識別され、格納される。特殊ヘッダは、システム１０６が特殊ヘッダを取り除き、ヘッダ整合比較がフィルタルールの一部として用いられ得るように、特別に扱われる。
【００８３】
メッセージの内容がそのヘッダの終わり、空白行（シーケンス‘\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 000002
【０１１０】
文法に挙げられているいくつかのターミナル（例えば、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 000003
【０１１６】
解析後、フィルタは、全ての最上位フィルタのリストを含むフィルタセットオブジェクトをルートとするツリー構造としてメモリ内に表現される。フィルタロジック１３４内の整合比較エンジンがリストの初めから終わりにかけて順次に反復して作動し、最後の動作が呼び出されるかまたはリストが終わるまでフィルタが適用される。すなわち、整合比較エンジンはメッセージの最終結果が決定されるまでツリーを横断して実施する。
【０１１７】
整合比較エンジンは、メッセージが完全に受信された後、但しメッセージが待ち行列に割り当てられる前に、直に実行を開始する。パイプライン処理の後段で必要な情報が、メッセージ内でエンコードされる。パイプラインの後段で適用される動作の一例は「代替送信元からの配信」である。メッセージフィルタは、その動作に関連するメッセージにタグを付け、代替送信元名をエンコードする。後で、配信中に、送信元ホスト名及びＩＰアドレスを変更するために用いられる。
【０１１８】
３.６ フィルタ動作
メッセージは、フィルタが整合し、指定された動作が適用されるべきであるとフィルタロジック１３４のフィルタ整合比較エンジンが決定したときに、特別な扱いを受けることができる。ほとんど全ての整合比較規準はフィルタルールに指定されるようにメッセージ全体をフィルタロジック１３４に処理させる。しかし、受取人に関して整合比較するルールは、動作が受取人のサブセットにしか適用されないから、より複雑な挙動を生じさせ得る。
【０１１９】
一つのフィルタが複数の動作の実行を起動することができる。それぞれの動作は、最終動作が実行されるまで、フィルタに入れられた順序で実行される。フィルタに最終動作がなければ、残りのフィルタがなくなるまで、順番に次のフィルタがメッセージに適用される。いかなる数のメッセージ動作も１つのメッセージに適用することができる。この結果、処理中に同じメッセージの属性が数回リセットされることがおこり得る。
【０１２０】
利用できるフィルタ動作の例をここで説明する。一実施形態にしたがえば、利用できる動作の１つは「代替送信元からの配信」である。図４は、図３Ａのブロック３０８における動作の決定の一部として実施され得る、変更した送信元からのｅ−メール配信プロセスのフローチャートである。すなわち、図４では、メッセージがメッセージ処理システム１０６において送信者ホスト１０２から受信され、フィルタがメッセージに整合し、フィルタにより指定される動作の評価が行われていると想定されている。
【０１２１】
ブロック４０２において、指定された動作が「代替送信元からの配信」であるか否かを判定する。ブロック４０２は、フィルタの解析または実行の一部として、文字列‘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 000004
【０１５１】
１.１.１ ルールクラス
全てのルールは、以下のように定義される、基本のクラス‘Rule’から導かれなければならない。
【０１５２】
class Rule:
def __init__ (self):
"""Base constructor for class Rule."""
pass
# The following are 'virtual methods'.  They must be overridden by
# any classes that inherit from this base class.
def name (self):
"""Returns the FDL-syntax representation of the rule."""
raise AttributeError, "'Rule' instance has no attribute 'name'"
def eval (self, msg):
"""Evaluates the given Message object against the rule.
<msg>:  Reference to the Message object to evaluated.
Returns 0 if the message does not match, non-zero otherwise."""
raise AttributeError, "'Rule' instance has no attribute 'eval'"
def is_valid (self):
"""Returns 0 if rule is invalid, non-zero otherwise."""
raise AttributeError, "'Rule' instance has no attribute 'is_valid'"
メソッド"eval"及び"name"はクラスRuleから継承されるクラスによって実施されなければならない。
【０１５３】
ルールは、フィルタが活性かつ有効であるとマークされているが、実際は無効であれば、「InvalidFilterError」例外処理を出すことができる。このルールを含むフィルタクラスはこの例外処理を捕らえると、それ自体を無効とマークする責任がある。
【０１５４】
１.１.１.１ 「MAIL FROM」ルール
このルールはユーザによって与えられた正規表現に対するメッセージの「MAIL TO」データの整合比較を試みる。このルールはそのコンストラクター‘__init__（）’へのパラメータとしてＦＤＬ定義のワイルドカードの正規表現を受け付け、これを処理して、コンパイルされた正規表現データ構造にし、将来参照するためにオブジェクト内にキャッシュされたままにする。
【０１５５】
class MAIL_FROM_Rule (Rule):
def __init__ (self, mail_from):
"""Constructor for class MAIL_FROM_Rule.
<pattern>: The regex string to match against."""
Rule.__init__ (self)
self._mail_from_regex = re.compile (mail_from)
self._mail_from = mail_from
def name (self):
"""Returns FDL-syntax representation of the rule."""
return "MAIL_FROM_Rule ('%s')" % (self._mail_from)
def eval (self, msg):
"""Returns 0 if the rule matches against the message, 1 otherwise.
<msg>:  Message object to be matched against."""
if re.match(self._mail_from_regex, msg.get_return_path()):
return 1
else:
return 0
def is_valid (self):
"""Returns 0 if this rule is invalid, non-zero otherwise."""
# MAIL FROM is always accessible, so it's always valid.
return 1
【０１５６】
１.１.１.２ 「AND」ルール
「AND」ルールは実際上ブール演算子‘AND’の実施である。これは、演算子の左側及び右側に対応する、‘lefthand’及び‘righthand’の、２つのルールが例示される。
【０１５７】
class AND_Rule:
def __init__ (self, lefthand, righthand):
"""Constructor for class AND_Rule.
<lefthand>: The rule to the left of the AND operator
<righthand>: The rule to the right of the AND operator"""
if isinstance (lefthand, Rule) and isinstance (righthand, Rule):
Rule.__init__ (self)
self._left = lefthand
self._right = righthand
else:
raise TypeError,  "Non-Rule parameter given to AND_Rule"
def name (self):
"""Returns the FDL-syntax representation of the rule."""
return "(" + self._left.name() + " AND " + self._right.name() + ")"
def eval (self, msg):
"""Returns 1 if the rule matches against the message, 0 otherwise.
<msg>:  Message object to be matched against."""
if self._left.eval(msg) and self._right.eval(msg):
return 1
return 0
【０１５８】
[付録２−コマンドラインインターフェース例]
２ コマンドラインインターフェース
メッセージフィルタリング機能は、下表に要約され、以下でさらに詳細に説明される、インターフェースコマンドを用いることができる。
【表５】
2006515703.tif 000005
【０１５９】
用法：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コマンドは、システムがメッセージヘッダの解析を許すか否かを判定するフラッグのオン／オフをユーザがトグル式に切り換えることを可能にする。デフォルトは'オフ'である。ヘッダの解析が無効にされている場合、件名ルールをもついかなるフィルタも無効になる。
【図面の簡単な説明】
【０１７２】
【図１Ａ】電子メッセージ配信のためのシステムの概要を示すブロック図である
【図１Ｂ】図１Ａのシステムの補助コンポーネントを示すブロック図である
【図２】一実施形態にしたがう電子メッセージ配信のプロセスのデータフロー図である
【図３Ａ】メッセージに動作を実施する方法のフローチャートである
【図３Ｂ】フィルタルールを解析する方法のフローチャートである
【図３Ｃ】フィルタのブロック図である
【図４】代替送信元からｅ−メールメッセージを配信するプロセスのフローチャートである
【図５】実施形態を実装することができるコンピュータシステムを示すブロック図である。
【符号の説明】
【０１７３】
１０２ 送信者
１０４ 送出メッセージゲートウエイ
１０６ メッセージ処理システム
１０８ 受信者
１１０ 入りメッセージゲートウエイ
１１２ 受取人
１２０Ａ 送信者ページ
１２０Ｂ 管理ページ
１２０Ｃ 受信者ページ
１２２ ウエッブサーバ
１２４ データベース
１２６ ＤＮＳサーバ
１３０ フィルタ
１３２ メッセージ配信待ち行列
１３４ フィルタロジック