(57)【要約】【課題】  処理時間を短縮可能なメールフィルタ装置を提供する。【解決手段】  ＳＭＴＰ処理部１５はＳＭＴＰクライアント２とＳＭＴＰサーバ３との間でやりとりされるコマンド、レスポンスを中継し、メッセージ中継の際にコンテンツチェックを行う。ＴＣＰ／ＩＰ終端部１１，１２はコネクション管理部１３を介してヘッダ情報を共有することで、ＳＭＴＰクライアント２とメールフィルタ装置１との間、メールフィルタ装置１とＳＭＴＰサーバ３との間のＴＣＰ／ＩＰのヘッダ情報を同一に保つ。ＳＭＴＰ処理部１５はコンテンツチェックの結果、電子メールのメッセージを廃棄せずに中継を行う場合、ＳＭＴＰサーバ３が中継処理を完了した時にＳＭＴＰクライアント２にレスポンスを転送する。【選択図】      図１                                                  
2005210240.tif 000002
【特許請求の範囲】
【請求項１】
電子メールのフィルタ処理を行うメールフィルタ装置を含み、クライアント装置とサーバ装置との間において前記メールフィルタ装置にて前記電子メールの中継を行うメールフィルタシステムであって、
前記電子メールの中継前後のＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ情報を登録するコネクション管理手段を前記メールフィルタ装置に有し、
前記メールフィルタ装置は、前記クライアント装置との間に確立した前記ＴＣＰ／ＩＰヘッダ情報を前記サーバ装置側のコネクションに使用することを特徴とするメールフィルタシステム。
【請求項２】
前記メールフィルタ装置は、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）に基づいて前記電子メールを中継することを特徴とする請求項１記載のメールフィルタシステム。
【請求項３】
前記電子メールの中継時に前記クライアント装置及び前記サーバ装置に対するコマンド及びレスポンスの転送と挿入とを行うＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）処理手段を前記メールフィルタ装置に含むことを特徴とする請求項２記載のメールフィルタシステム。
【請求項４】
前記ＳＭＴＰ処理手段は、前記クライアント装置と前記サーバ装置との間でやりとりされる前記コマンド及びレスポンスを中継し、前記電子メールのメッセージ中継の際にコンテンツチェックを行うことを特徴とする請求項３記載のメールフィルタシステム。
【請求項５】
前記ＳＭＴＰ処理手段は、前記コンテンツチェックの結果が前記電子メールのメッセージを廃棄せずに中継を行う場合、前記サーバ装置が中継処理を完了した時に前記クライアント装置に前記レスポンスを転送することを特徴とする請求項４記載のメールフィルタシステム。
【請求項６】
前記クライアント装置及び前記サーバ装置との間でＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）の終端処理を行う終端手段を前記メールフィルタ装置に含み、
前記終端手段は、前記コネクション管理手段を介して前記ＴＣＰ／ＩＰヘッダ情報を共有することを特徴とする請求項１から請求項５のいずれか記載のメールフィルタシステム。
【請求項７】
前記電子メールの中継時に当該電子メールの送信先アドレスと予め設定された宛先不明のアドレスとの一致を検出する手段を前記メールフィルタ装置に含むことを特徴とする請求項１から請求項６のいずれか記載のメールフィルタシステム。
【請求項８】
前記メールフィルタ装置は、コンテンツチェックの完了後に前記サーバ装置への接続を行うことを特徴とする請求項１から請求項７のいずれか記載のメールフィルタシステム。
【請求項９】
電子メールのフィルタ処理を行い、かつクライアント装置とサーバ装置との間において前記電子メールの中継を行うメールフィルタ装置であって、
前記電子メールの中継前後のＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ情報を登録するコネクション管理手段を有し、
前記クライアント装置との間に確立した前記ＴＣＰ／ＩＰヘッダ情報を前記サーバ装置側のコネクションに使用することを特徴とするメールフィルタ装置。
【請求項１０】
ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）に基づいて前記電子メールを中継することを特徴とする請求項９記載のメールフィルタ装置。
【請求項１１】
前記電子メールの中継時に前記クライアント装置及び前記サーバ装置に対するコマンド及びレスポンスの転送と挿入とを行うＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）処理手段を含むことを特徴とする請求項１０記載のメールフィルタ装置。
【請求項１２】
前記ＳＭＴＰ処理手段は、前記クライアント装置と前記サーバ装置との間でやりとりされる前記コマンド及びレスポンスを中継し、前記電子メールのメッセージ中継の際にコンテンツチェックを行うことを特徴とする請求項１１記載のメールフィルタ装置。
【請求項１３】
前記ＳＭＴＰ処理手段は、前記コンテンツチェックの結果が前記電子メールのメッセージを廃棄せずに中継を行う場合、前記サーバ装置が中継処理を完了した時に前記クライアント装置に前記レスポンスを転送することを特徴とする請求項１２記載のメールフィルタ装置。
【請求項１４】
前記クライアント装置及び前記サーバ装置との間でＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）の終端処理を行う終端手段を含み、
前記終端手段は、前記コネクション管理手段を介して前記ＴＣＰ／ＩＰヘッダ情報を共有することを特徴とする請求項９から請求項１３のいずれか記載のメールフィルタ装置。
【請求項１５】
前記電子メールの中継時に当該電子メールの送信先アドレスと予め設定された宛先不明のアドレスとの一致を検出する手段を含むことを特徴とする請求項９から請求項１４のいずれか記載のメールフィルタ装置。
【請求項１６】
コンテンツチェックの完了後に前記サーバ装置への接続を行うことを特徴とする請求項９から請求項１５のいずれか記載のメールフィルタ装置。
【請求項１７】
電子メールのフィルタ処理を行うメールフィルタ装置を含み、クライアント装置とサーバ装置との間において前記メールフィルタ装置にて前記電子メールの中継を行うシステムのメールフィルタ方法であって、前記メールフィルタ装置側に、前記電子メールの中継前後のＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ情報をコネクション管理手段に登録するステップと、前記クライアント装置との間に確立した前記ＴＣＰ／ＩＰヘッダ情報を前記サーバ装置側のコネクションに使用するステップとを有することを特徴とするメールフィルタ方法。
【請求項１８】
前記メールフィルタ装置は、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）に基づいて前記電子メールを中継することを特徴とする請求項１７記載のメールフィルタ方法。
【請求項１９】
前記メールフィルタ装置側に、前記電子メールの中継時に前記クライアント装置及び前記サーバ装置に対するコマンド及びレスポンスの転送と挿入とを行うステップを含むことを特徴とする請求項１８記載のメールフィルタ方法。
【請求項２０】
前記コマンド及びレスポンスの転送と挿入とを行うステップは、前記クライアント装置と前記サーバ装置との間でやりとりされる前記コマンド及びレスポンスを中継し、前記電子メールのメッセージ中継の際にコンテンツチェックを行うことを特徴とする請求項１９記載のメールフィルタ方法。
【請求項２１】
前記コマンド及びレスポンスの転送と挿入とを行うステップは、前記コンテンツチェックの結果が前記電子メールのメッセージを廃棄せずに中継を行う場合、前記サーバ装置が中継処理を完了した時に前記クライアント装置に前記レスポンスを転送することを特徴とする請求項２０記載のメールフィルタ方法。
【請求項２２】
前記メールフィルタ装置に設けられかつ前記クライアント装置及び前記サーバ装置との間でＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）の終端処理を行う終端手段にて、前記コネクション管理手段を介して前記ＴＣＰ／ＩＰヘッダ情報を共有することを特徴とする請求項１７から請求項２１のいずれか記載のメールフィルタ方法。
【請求項２３】
前記メールフィルタ装置側に、前記電子メールの中継時に当該電子メールの送信先アドレスと予め設定された宛先不明のアドレスとの一致を検出するステップを含むことを特徴とする請求項１７から請求項２２のいずれか記載のメールフィルタ方法。
【請求項２４】
前記メールフィルタ装置は、コンテンツチェックの完了後に前記サーバ装置への接続を行うことを特徴とする請求項１７から請求項２３のいずれか記載のメールフィルタ方法。
【請求項２５】
電子メールのフィルタ処理を行うメールフィルタ装置を含み、クライアント装置とサーバ装置との間において前記メールフィルタ装置にて前記電子メールの中継を行うシステムのメールフィルタ方法のプログラムであって、コンピュータに、前記電子メールの中継前後のＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ情報をコネクション管理手段に登録する処理と、前記クライアント装置との間に確立した前記ＴＣＰ／ＩＰヘッダ情報を前記サーバ装置側のコネクションに使用する処理とを実行させるためのプログラム。
【請求項２６】
前記コンピュータに、前記電子メールの中継時に当該電子メールの送信先アドレスと予め設定された宛先不明のアドレスとの一致を検出する処理を実行させるための請求項２５記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメールフィルタシステム、メールフィルタ装置及びそれに用いるメールフィルタ方法並びにそのプログラムに関し、特に電子メールを中継するメールフィルタ装置に関する。
【背景技術】
【０００２】
インタネットにおける電子メールの標準プロトコルとしては、コンピュータとサーバとの間をバケツリレーのように電子メールを中継し、最終配送先まで電子メールを転送していくことを考慮したＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）がある（例えば、非特許文献１参照）。
【０００３】
このＳＭＴＰでは、途中で次の配送先サーバが停止していても、磁気ディスク上にメッセージを保存しておいて一定時間の後に再配送処理を行うことで確実な配送を行っている。電子メールの中継、電子メールの配送を行うメールサーバは、この目的をかなえるために、通常、磁気ディスクを有するコンピュータ上のソフトウェアとして構成されている。
【０００４】
従来、電子メールの中継を行うメールフィルタ装置でのフィルタ処理を図１５に示す。このメールフィルタ装置は、図１５のｅ１〜ｅ５において、ＳＭＴＰクライアントから電子メールを受け取り、自身の磁気ディスクに書き込み終わると、ＳＭＴＰクライアントにＯＫレスポンスを返す（図１５のｅ６）。
【０００５】
この時点で、メールフィルタ装置は配送責任を負い、一方、ＳＭＴＰクライアントは配送責任がなくなる。これ以降の処理はメールフィルタ装置とＳＭＴＰサーバとの間で行われる。メールフィルタ装置は磁気ディスクに保存した電子メールに対してコンテンツチェックを行い、配送すべきと判断した宛先アドレスについてＳＭＴＰサーバに転送処理を行う（図１５のｅ７〜ｅ１１）。
【０００６】
ＳＭＴＰサーバがデータを完全に受け取り、ＯＫレスポンスを返してくると、メールフィルタ装置は配送責任がなくなるので、磁気ディスク上のメッセージを削除してもよい（図１５のｅ１２）。
【０００７】
ここで、図１５のｅ１，ｅ７の「ＨＥＬＯ（ＨＥＬＬＯ）」はセッション開始時のオープンコマンドであり、図１５のｅ１，ｅ７の「ＥＨＬＯ（Ｅｘｔｅｎｄｅｄ  ＨＥＬＬＯ）」は拡張機能を使用したいことを通知するオープンコマンドであり、これらのコマンドによって、サーバにおいてクライアントとのセッションが初期化される。図１５のｅ３，ｅ９の「ＲＣＰＴ（ＲＥＣＩＰＩＥＮＴ）」は宛先アドレスをサーバに通知するコマンドである。
【０００８】
【非特許文献１】“Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ”［ＲＦＣ（Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔｓ）２８２１，Ａｐｒｉｌ  ２００１，ｐｐ．１５〜１９］
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述した従来のメールフィルタ装置では、磁気ディスクを有するコンピュータ上に構成されているので、ディスクアクセスを伴うため、１通あたりの処理時間が長くなり、フィルタとしての処理性能が低くなるという問題がある。
【００１０】
また、従来のメールフィルタ装置では、一般的なＳＭＴＰの中継処理において、ＳＭＴＰサーバと同様の処理を行うため、次の配送先となるＳＭＴＰサーバから見ると、すべての電子メールがメールフィルタ装置から配送されてくるように見える。このため、ＳＭＴＰサーバで送信元ホスト情報に基づいたログ解析、統計処理、接続制御を行いたい場合に送信元ホスト情報が失われるため、処理不能になるという問題がある。
【００１１】
従来の電子メールフィルタ装置は、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を終端して中継し、その前後で異なるＩＰ，ＴＣＰヘッダが付与される。そのため、フィルタ機能を持った中継装置を配置する時にはクライアント、サーバ双方に対して設定の変更を伴っている。
【００１２】
また、この電子メールフィルタ装置は磁気ディスクを備えたコンピュータ上で実現されるため、コンテンツチェックを行う場合に、１メールあたりの処理時間が長くなり、性能が低くなるという問題がある。
【００１３】
そこで、本発明の目的は上記の問題点を解消し、フィルタ処理の処理時間を短縮することができるメールフィルタシステム、メールフィルタ装置及びそれに用いるメールフィルタ方法並びにそのプログラムを提供することにある。
【００１４】
また、本発明の他の目的は、宛先不明アドレスに対する配送コマンドを効率よく削除することができるメールフィルタシステム、メールフィルタ装置及びそれに用いるメールフィルタ方法並びにそのプログラムを提供することにある。
【課題を解決するための手段】
【００１５】
本発明によるメールフィルタシステムは、電子メールのフィルタ処理を行うメールフィルタ装置を含み、クライアント装置とサーバ装置との間において前記メールフィルタ装置にて前記電子メールの中継を行うメールフィルタシステムであって、
前記電子メールの中継前後のＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ情報を登録するコネクション管理手段を前記メールフィルタ装置に備え、
前記メールフィルタ装置は、前記クライアント装置との間に確立した前記ＴＣＰ／ＩＰヘッダ情報を前記サーバ装置側のコネクションに使用している。
【００１６】
本発明による他のメールフィルタシステムは、上記の構成のほかに、前記電子メールの中継時に当該電子メールの送信先アドレスと予め設定された宛先不明のアドレスとの一致を検出する手段を前記メールフィルタ装置に具備している。
【００１７】
本発明によるメールフィルタ装置は、電子メールのフィルタ処理を行い、かつクライアント装置とサーバ装置との間において前記電子メールの中継を行うメールフィルタ装置であって、
前記電子メールの中継前後のＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ情報を登録するコネクション管理手段を備え、
前記クライアント装置との間に確立した前記ＴＣＰ／ＩＰヘッダ情報を前記サーバ装置側のコネクションに使用している。
【００１８】
本発明による他のメールフィルタ装置は、上記の構成のほかに、前記電子メールの中継時に当該電子メールの送信先アドレスと予め設定された宛先不明のアドレスとの一致を検出する手段を具備している。
【００１９】
本発明によるメールフィルタ方法は、電子メールのフィルタ処理を行うメールフィルタ装置を含み、クライアント装置とサーバ装置との間において前記メールフィルタ装置にて前記電子メールの中継を行うシステムのメールフィルタ方法であって、前記メールフィルタ装置側に、前記電子メールの中継前後のＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ情報をコネクション管理手段に登録するステップと、前記クライアント装置との間に確立した前記ＴＣＰ／ＩＰヘッダ情報を前記サーバ装置側のコネクションに使用するステップとを備えている。
【００２０】
本発明による他のメールフィルタ方法は、上記のステップのほかに、前記メールフィルタ装置側に、前記電子メールの中継時に当該電子メールの送信先アドレスと予め設定された宛先不明のアドレスとの一致を検出するステップを備えている。
【００２１】
本発明によるメールフィルタ方法のプログラムは、電子メールのフィルタ処理を行うメールフィルタ装置を含み、クライアント装置とサーバ装置との間において前記メールフィルタ装置にて前記電子メールの中継を行うシステムのメールフィルタ方法のプログラムであって、コンピュータに、前記電子メールの中継前後のＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ情報をコネクション管理手段に登録する処理と、前記クライアント装置との間に確立した前記ＴＣＰ／ＩＰヘッダ情報を前記サーバ装置側のコネクションに使用する処理とを実行させている。
【００２２】
本発明による他のメールフィルタ方法のプログラムは、上記の処理のほかに、前記コンピュータに、前記電子メールの中継時に当該電子メールの送信先アドレスと予め設定された宛先不明のアドレスとの一致を検出する処理を実行させている。
【００２３】
すなわち、本発明のメールフィルタ装置は、中継前後のＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ情報をコネクション管理部に登録し、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）クライアントとの間に確立したＴＣＰ／ＩＰのヘッダ情報をＳＭＴＰサーバ側のコネクションに使用している。
【００２４】
また、本発明のメールフィルタ装置は、ＳＭＴＰ処理部におけるコマンド／レスポンスの転送／挿入フローによって、電子メールのメッセージを磁気ディスクに保存することなく、コンテンツチェックの結果に応じて電子メールの転送並びに削除を行っている。これによって、本発明のメールフィルタ装置は、電子メールフィルタ処理において、メールサーバの設定を変更せずに、透過的なセキュリティ装置としての設置が可能である。
【００２５】
より具体的に説明すると、本発明のメールフィルタ装置では、ＳＭＴＰ処理部がＳＭＴＰクライアントとＳＭＴＰサーバとの間でやりとりされるコマンド、レスポンスを中継し、メッセージ中継の際にコンテンツチェックを行っている。
【００２６】
ＴＣＰ／ＩＰ終端部ではコネクション管理部を介してヘッダ情報を共有することで、ＳＭＴＰクライアントとメールフィルタ装置との間、メールフィルタ装置とＳＭＴＰサーバとの間のＴＣＰ／ＩＰのヘッダ情報（ＩＰアドレス、ＴＣＰポート番号）を同一に保つ。
【００２７】
また、コンテンツチェックの結果、電子メールのメッセージを廃棄せずに中継を行う場合には、ＳＭＴＰサーバが中継処理を完了した時にＳＭＴＰクライアントにレスポンスを転送する。
【００２８】
したがって、本発明のメールフィルタ装置では、メッセージの配送責任を負わないで電子メールを中継し、磁気ディスクへの格納を行わないので、フィルタ処理を高速化することが可能となる。
【００２９】
よって、本発明のメールフィルタ装置では、磁気ディスクを保持せずに、高速なフィルタ処理を行うことが可能となり、ＴＣＰ中継時においてＩＰヘッダ情報を保持する方法を提供することが可能となる。
【００３０】
つまり、本発明のメールフィルタ装置では、磁気ディスク等の記憶装置を持たなくても中継が可能であるので、１メールあたりの処理時間を短縮することが可能となり、ＴＣＰ／ＩＰ終端、コマンド解析、ＳＭＴＰ処理、検索部等の専用の処理部を用いることで、さらに高速な処理が可能となる。
【００３１】
また、本発明のメールフィルタ装置では、ＴＣＰ／ＩＰ終端部をコネクション管理部で関連付け、その際にヘッダ情報を保存しておくので、ＳＭＴＰクライアントとＳＭＴＰサーバとがＩＰアドレス、ＴＣＰポート番号に関して透過的に転送することが可能となり、ＳＭＴＰサーバにおいてＳＭＴＰクライアントのＩＰアドレス情報に応じた中継判定が可能となる。同時に、ＳＭＴＰサーバとＳＭＴＰクライアントとの双方に対しては設定変更が不要である。
【００３２】
さらに、本発明のメールフィルタ装置では、ユーザ情報のデータベースを参照せずに宛先不明のアドレスを判定する機能を有しているので、宛先不明アドレスに対する配送コマンドを効率よく削除することが可能となる。
【発明の効果】
【００３３】
本発明は、以下に述べるような構成及び動作とすることで、フィルタ処理の処理時間を短縮することができるという効果が得られる。
【００３４】
また、本発明は、以下に述べるような構成及び動作とすることで、宛先不明アドレスに対する配送コマンドを効率よく削除することができるという効果が得られる。
【発明を実施するための最良の形態】
【００３５】
次に、本発明の実施例について図面を参照して説明する。図１は本発明の一実施例によるメールフィルタシステムの構成を示すブロック図である。図１において、本発明の一実施例によるメールフィルタシステムはメールフィルタ装置１をＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）クライアント２とＳＭＴＰサーバ３との中間に挿入して構成されており、メールフィルタ装置１は電子メールの中継装置として機能する。
【００３６】
メールフィルタ装置１はＳＭＴＰクライアント２側のＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）終端部１１と、ＳＭＴＰサーバ３側のＴＣＰ／ＩＰ終端部１２と、コネクション管理部１３と、コマンド解釈部１４と、ＳＭＴＰ処理部１５と、検索部１６と、ｕｎｋｎｏｗｎユーザ登録テーブル１７−１、ユーザテーブル１７−２、ブラックリスト１７−３等からなる情報テーブルと、エラー送信部１８と、上記の各部を実現するためのプログラム（コンピュータで実行可能なプログラム）を格納する記録媒体１９とから構成されている。
【００３７】
コネクション管理部１３はＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）コネクションを管理し、コマンド解釈部１４はＴＣＰ／ＩＰ終端部１１，１２で取り出したオクテットストリームの解釈を行う。ＳＭＴＰ処理部１５はコマンド解釈部１４で取り出したＳＭＴＰコマンド、ＳＭＴＰレスポンスによってＳＭＴＰの解釈を行う。
【００３８】
検索部１６はＳＭＴＰ処理部１５で検索対象データを切り出し、切り出したデータの検索を行う。ｕｎｋｎｏｗｎユーザ登録テーブル１７−１、ユーザテーブル１７−２、ブラックリスト１７−３等の情報テーブルは検索部１６の検索対象エントリを格納する。エラー送信部１８はＳＭＴＰ処理部１５でエラー通知メールの送信が必要と判断した場合にエラー通知メールを作成し、メールクライアントとして送信処理を行う。
【００３９】
図２は図１のコネクション管理部１３で用いられるコネクション管理テーブルの構成例を示す図である。図２において、コネクション管理テーブルではＳＩＤ（Ｓｅｓｓｉｏｎ  ＩＤｅｎｔｉｆｉｅｒ：セッションＩＤ）１０１〜Ｎに対するヘッダ情報１０１〜Ｎが格納されている。
【００４０】
ヘッダ情報としては、送信元、宛先の各ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、ＴＣＰポート番号の情報と、ＩＰヘッダのＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）、ＴＯＳ（Ｔｙｐｅ  Ｏｆ  Ｓｅｒｖｉｃｅ）フィールドが格納されている。
【００４１】
図３は図１のＴＣＰ／ＩＰ終端部１１にてＩＰパケットを受信した場合の処理を示すフローチャートであり、図４は図１のＴＣＰ／ＩＰ終端部１２にてＩＰパケットを受信した場合の処理を示すフローチャートであり、図５は図１のＴＣＰ／ＩＰ終端部１１，１２にてＩＰパケットを送信した場合の処理を示すフローチャートである。これら図１〜図５を参照してＴＣＰ／ＩＰ終端部１１，１２の処理動作について説明する。
【００４２】
メールフィルタ装置１のＴＣＰ／ＩＰ終端部１１はＳＭＴＰクライアント２からのＳＭＴＰ接続要求を受けてＴＣＰ／ＩＰ終端処理を行う。この時、ＴＣＰ／ＩＰ終端部１１は図３に示す処理を行う。
【００４３】
ＴＣＰ／ＩＰ終端部１１はＩＰパケットを受信すると（図３ステップＳ１）、それがＳＭＴＰの新規接続要求であるかどうかをチェックする（図３ステップＳ２）。新規接続要求とは、ＴＣＰにおいてＳＹＮ（ｓｙｎｃｈｒｏｎｏｕｓ）フラグが有効になっているパケットを受信した場合であり、ＴＣＰの３ウェイシーケンスと呼ばれるシーケンスでコネクションの確立を行う。
【００４４】
ＴＣＰ／ＩＰ終端部１１は確立が完了すると、ＳＩＤを割り当て（図３ステップＳ３）、ＳＩＤに対応する受信パケットのヘッダ［送信元、宛先の各ＭＡＣアドレス、ＩＰアドレス、ＴＣＰポート番号情報］をコネクション管理部１３のコネクション管理テーブル（図２参照）に登録する（図３ステップＳ４）。
【００４５】
さらに、ＴＣＰ／ＩＰ終端部１１はＳＩＤ情報と装置内宛先（ＴＣＰ／ＩＰ終端部１２）とを装置内ヘッダに付加してコマンド解釈部１４に対して送信する（図３ステップＳ６，Ｓ７）。
【００４６】
一方、ＴＣＰ／ＩＰ終端部１１はＳＭＴＰの新規接続要求でない場合（図３ステップＳ２）、コネクション管理部１３のコネクション管理テーブルをヘッダ情報（ＩＰアドレス，ＴＣＰポート番号）で検索し、ＳＩＤを取得する（図３ステップＳ５）。ついで、ＴＣＰ／ＩＰ終端部１１はＳＩＤ情報と装置内宛先とを装置内ヘッダに付加してコマンド解釈部１４に対して送信する（図３ステップＳ６，Ｓ７）。
【００４７】
ＴＣＰ／ＩＰ終端部１２はＩＰパケットを受信すると（図４ステップＳ１１）、コネクション管理部１３のコネクション管理テーブルをヘッダ情報（ＩＰアドレス、ＴＣＰポート番号）で検索し、ＳＩＤを取得する（図４ステップＳ１２，Ｓ１３）。ここで、登録があれば、ＴＣＰ／ＩＰ終端部１２は取得したＳＩＤ情報と装置内宛先（ＴＣＰ／ＩＰ終端部１１）とを装置内ヘッダに付加してコマンド解釈部１４に対して送信する（図４ステップＳ１４，Ｓ１６）。ＴＣＰ／ＩＰ終端部１２は登録がなければ（図４ステップＳ１３）、パケットを廃棄する（図４ステップＳ１５）。
【００４８】
ＴＣＰ／ＩＰ終端部１１，１２はＩＰパケットを送信する場合（図５ステップＳ２１）、装置内ヘッダからＳＩＤを取得し（図５ステップＳ２２）、コネクション管理部１３のコネクション管理テーブルを検索してヘッダ情報を取得する（図５ステップＳ２３）。
【００４９】
ＴＣＰ／ＩＰ終端部１１，１２は得られたＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰポートを使用してパケットを構成し（図５ステップＳ２４）、装置外へと送信する（図５ステップＳ２５）。
【００５０】
以上のように、本実施例では、コネクション管理部１３を介することで、ＳＭＴＰクライアント２が送信したパケットヘッダと同一のヘッダをＳＭＴＰサーバ３に送信することができる。
【００５１】
次に、ＳＭＴＰサーバからＳＭＴＰクライアントに対するコマンド応答パッケージのパケット処理について説明する。ＳＭＴＰクライアントがＳＭＴＰサーバから受信するパケットはＳＭＴＰサーバに送信したパケットに比べて、宛先及び送信元の関係が逆になっている。
【００５２】
受信パケットはＴＣＰ／ＩＰ終端部１２からコネクション管理部１３に対してヘッダ情報の検索を行うが、ＭＡＣ、ＩＰアドレス、ＴＣＰポート番号の宛先フィールドと送信元フィールドとを入れ替えてコネクション管理部１３に問い合わせる。すると、コネクション管理部１３からは対応するＳＩＤを取得することができる。
【００５３】
ＴＣＰ／ＩＰ終端部１２では終端後のメッセージパケットにＳＩＤと、ＳＭＴＰサーバからの信号であることを示すフラグとを付加してコマンド解釈部１４に送る。コマンド解釈部１４はこれがＳＭＴＰサーバからのレスポンスであることを認識し、ＳＭＴＰ処理部１５に対して応答メッセージ情報を渡す。ＳＭＴＰ処理部１５ではコマンド情報と合わせてＳＭＴＰプロトコル処理を行う。
【００５４】
ＳＭＴＰプロトコル処理の結果、ＳＭＴＰクライアントに送信すべき応答メッセージを確定すると、その応答メッセージはＳＭＴＰ処理部１５からコマンド解釈部１４を経てＴＣＰ／ＩＰ終端部１１に送られる。
【００５５】
ＴＣＰ／ＩＰ終端部１１では応答メッセージに付加されているＳＩＤをコネクション管理部１３に問い合わせてヘッダ情報を取得する。この時、送信対象はレスポンスメッセージなので、宛先フィールド及び送信元フィールドはコネクション管理部１３のコネクション管理テーブルに登録してあるものと入れ替える。
【００５６】
本実施例では、このヘッダ情報をＴＣＰ／ＩＰのパケットヘッダに付加することで、ＳＭＴＰサーバから受信したパケットと同様のヘッダを持つパケットをＳＭＴＰクライアントに送信することができる。
【００５７】
ＴＣＰ／ＩＰ終端部１１，１２のＴＣＰスタック処理そのものは、公知のＴＣＰ終端処理［例えば、ＲＦＣ（Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔｓ）７９３（Ｓｅｐｔｅｍｂｅｒ  １９８１，ｐｐ．１５〜２３，３０，３１）等の技術標準］であるので、その説明については省略する。
【００５８】
以上のＴＣＰ／ＩＰ終端部１１，１２の動作説明はＳＭＴＰのクライアント２／ＳＭＴＰサーバ３に関して定義しており、物理的なポートとは１対１に対応しない。例えば、２台のコンピュータＸ，Ｙ間でＳＭＴＰを用いて電子メールをやりとりする場合、コンピュータＸからコンピュータＹに対して電子メールを送信する時にはコンピュータＸがクライアントであり、コンピュータＹがサーバとなる。この時、ＴＣＰ／ＩＰ終端部１１がコンピュータＸ、ＴＣＰ／ＩＰ終端部１２がコンピュータＹと接続されることになる。
【００５９】
一方、コンピュータＹからコンピュータＸに対して電子メールを送信する時には、コンピュータＹがクライアントであり、コンピュータＸがサーバとなる。この時には、ＴＣＰ／ＩＰ終端部１１がコンピュータＹ、ＴＣＰ／ＩＰ終端部１２がコンピュータＹと接続されることになる。
【００６０】
コマンド解釈部１４はＴＣＰ終端部１１から送られてくるＴＣＰ終端後のオクテットストリームからＳＭＴＰコマンド文字列を探し出し、それを切り出してＳＭＴＰ処理部１５に渡す。また、コマンド解釈部１４はＴＣＰ終端部１２から送られてくるＴＣＰ終端後のオクテットストリームからＳＭＴＰレスポンス文字列を探し出し、それを切り出してＳＭＴＰ処理部１５に渡す。
【００６１】
ＳＭＴＰ処理部１５ではＳＩＤ毎にＳＭＴＰのシーケンス解釈を行い、コマンドデータ、メッセージデータから検索が必要なデータ列を切り出し、検索部１６に対してデータ検索を依頼する。
【００６２】
検索部１６では検索対象に応じてｕｎｋｎｏｗｎユーザ登録テーブル１７−１、ユーザテーブル１７−２、ブラックリスト１７−３等の情報テーブルを参照し、検索結果をＳＭＴＰ処理部１５に返答する。ＳＭＴＰ処理部１５はエラー通知メールの送信が必要であると判断した場合、エラー送信部１８にて電子メールの送信を行う。エラー送信部１８はＣＰＵ（中央処理装置）上のソフトウェアとして構成されるＳＭＴＰクライアントである。
【００６３】
図６〜図９は図１のＳＭＴＰ処理部１５でのプロトコル処理を示すフローチャートである。これら図１と図６〜図９とを参照してＳＭＴＰ処理部１５でのプロトコル処理について説明する。
【００６４】
ＳＭＴＰ処理部１５はＳＭＴＰクライアント２からＳＭＴＰコマンドを受信した時（図６ステップＳ３１）、ＲＣＰＴ（ＲＥＣＩＰＩＥＮＴ）コマンドとＤＡＴＡ（データ）コマンド以外の転送対象コマンドであれば（図６ステップＳ３４）、そのコマンドをＳＭＴＰサーバ３に転送し（図６ステップＳ３５）、またＳＭＴＰサーバ３からのレスポンスをＳＭＴＰクライアント２に転送し（図６ステップＳ３６）、次のコマンド受信を待つ（図６ステップＳ３７）。ここで、ＲＣＰＴコマンドは宛先アドレスをＳＭＴＰサーバ３に通知するコマンドである。
【００６５】
ＳＭＴＰ処理部１５は受信コマンドがＲＣＰＴコマンドであれば（図６ステップＳ３２）、ＲＣＰＴコマンドのアドレスを取り出し（図７ステップＳ３８）、検索部１６でｕｎｋｎｏｗｎチェックを行う（図７ステップＳ３９）。ｕｎｋｎｏｗｎチェックは検索部１６にて行うが、検索部１６に渡す時に検索対象の情報テーブル種別を指定する。ｕｎｋｎｏｗｎチェックについては後述する。
【００６６】
ここで、検索結果がｕｎｋｎｏｗｎであった場合、ＳＭＴＰ処理部１５はＮＧレスポンスをＳＭＴＰクライアント２に通知し、ＲＣＰＴコマンドをＳＭＴＰサーバ３には転送しない（図７ステップＳ４０）。ｕｎｋｎｏｗｎテーブル１７−１に登録されていなかった場合、ＳＭＴＰ処理部１５はユーザテーブル１７−２からフィルタチェックがｅｎａｂｌｅか、ｄｉｓａｂｌｅかの情報を取得する（図７ステップ４１）。
【００６７】
ＳＭＴＰ処理部１５はフィルタチェックがｅｎａｂｌｅであれば、電子メールの本文のチェックが終わるまでＲＣＰＴコマンドを転送するかどうかの判断を保留するため、アドレスをメモリ（図示せず）上に一時保存しておくとともに（図７ステップ４２）、ＳＭＴＰクライアント２にＯＫレスポンスを通知しておく（図７ステップ４３）。
【００６８】
ＳＭＴＰ処理部１５はフィルタチェックがｄｉｓａｂｌｅであれば、電子メールの本文のチェックにかかわらずメッセージを中継するので、ＲＣＰＴコマンドをＳＭＴＰサーバ３に転送する（図７ステップ４５）。ＳＭＴＰサーバ３からはこのＲＣＰＴコマンドに対するレスポンスが返ってくるので、このレスポンスをＳＭＴＰクライアント２に転送する（図７ステップ４６）。
【００６９】
ＳＭＴＰ処理部１５は受信コマンドがＤＡＴＡコマンドであれば（図６ステップＳ３３）、ＲＣＰＴ候補数が正数かどうか（ＲＣＰＴ候補数＞０）をチェックする（図８ステップＳ４７）。ＲＣＰＴ候補とはＳＭＴＰクライアント２からのＲＣＰＴコマンドで取得したｕｎｋｎｏｗｎ以外の宛先アドレスを指す。
【００７０】
ＳＭＴＰ処理部１５はＲＣＰＴ候補数が正であれば、転送の可能性のある宛先が存在するので、ＳＭＴＰクライアント２からのＤＡＴＡコマンドに対してＯＫレスポンスを通知することで（図８ステップＳ５１）、ＳＭＴＰクライアント２が電子メールのメッセージを送信するので、そのメッセージを受信する（図８ステップＳ５２）。
【００７１】
ＳＭＴＰ処理部１５はこの電子メールのメッセージの本文のデータを一定長ずつ切り出して検索部１６に渡し、コンテンツチェックを行う（図８ステップＳ５３）。ＳＭＴＰ処理部１５は検索部１６に渡す時に、検索対象の情報テーブル種別を指定する。例えば、電子メールの本文に含まれるＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）を検索する時にはＵＲＬのブラックリストが登録されている情報テーブル（ブラックリスト１７−３）を指定する。
【００７２】
ＳＭＴＰ処理部１５はコンテンツチェックの結果、ブラックリスト１７−３に一致した場合（図８ステップＳ５４）、チェックがｅｎａｂｌｅである宛先の電子メールを転送しない。ＳＭＴＰ処理部１５は上記のステップＳ４２で保存しておいたチェックがｅｎａｂｌｅであるアドレスがエラーであったことを通知するために、エラー送信部１８にアドレスを登録する（図８ステップＳ５５）。
【００７３】
一方、ＳＭＴＰ処理部１５はブラックリスト１７−３に一致しなかった場合（図８ステップＳ５４）、チェックのｅｎａｂｌｅ／ｄｉｓａｂｌｅにかかわらず、ＲＣＰＴ候補の宛先アドレスをＳＭＴＰサーバ３に通知するために、上記のステップＳ４２で保存しておいた宛先アドレスについてＲＣＰＴコマンドを発行する（図８ステップＳ５６）。
【００７４】
この時、ＳＭＴＰ処理部１５はＳＭＴＰサーバ３からのレスポンスを監視し、エラーである場合（図８ステップＳ５７）、ＳＭＴＰクライアント２に既にＯＫレスポンスを通知しているので、エラー送信部１８にてエラー送信処理を行うために、エラー送信部１８にアドレス情報を登録する（図８ステップＳ５８）。
【００７５】
ＳＭＴＰ処理部１５は全ての保存アドレスについてＲＣＰＴコマンド発行が終わったら（図８ステップＳ５９）、ブラックリスト１７−３に一致／不一致の場合に共通処理を行う。
【００７６】
まず、ＳＭＴＰ処理部１５は有効ＲＣＰＴ数が正であるかどうか（有効ＲＣＰＴ数＞０）をチェックする（図９ステップＳ６０）。有効ＲＣＰＴ数は実際に電子メールを中継する宛先アドレス数になる。すなわち、コンテンツチェックでブラックリストに一致した場合には、チェックがｅｎａｂｌｅであるＲＣＰＴアドレスが無効となり、チェックがｄｉｓａｂｌｅであるアドレス数が有効ＲＣＰＴ数になる。
【００７７】
ＳＭＴＰ処理部１５は有効ＲＣＰＴ数が正である場合、ＳＭＴＰサーバ３に対してＤＡＴＡコマンドを発行し、応答がＯＫである場合に電子メールの本文をＳＭＴＰサーバ３に転送する（図９ステップＳ６４）。
【００７８】
ＳＭＴＰ処理部１５は転送し終わると、ＳＭＴＰサーバ３がレスポンスを返してくるので、このレスポンス値をＳＭＴＰクライアント２に送信する（図９ステップＳ６５）。これで、電子メールのフィルタ中継が完了する。ここで、ＳＭＴＰサーバ３からのレスポンスにエラーがない時には、エラー送信部１８にアドレス情報が登録されていれば（図９ステップＳ６６）、エラー送信部１８にてエラー通知メールを生成して送信する（図９ステップＳ６７）。
【００７９】
ＳＭＴＰ処理部１５は有効ＲＣＰＴ数が０の時、ＳＭＴＰサーバ３に中継すべき宛先アドレスが存在しないので、ＳＭＴＰサーバ３にＲＳＥＴ（ＲＥＳＥＴ）コマンドを発行するとともに（図９ステップＳ６１）、ＳＭＴＰクライアント２に対して電子メールの配送失敗を示すＮＧレスポンスを通知する（図９ステップＳ６２）。ここで、ＲＳＥＴコマンドはサーバに通知した送信元アドレス及び宛先アドレスをクリアし、セッションを初期状態に戻すコマンドである。
【００８０】
この時、及びＳＭＴＰサーバ３にＤＡＴＡを転送してエラーがあった時には、保存アドレスに対するエラー通知を送信する必要がないので、エラー送信部１８に登録してあるアドレス情報をクリアする（図９ステップＳ６３）。
【００８１】
図１０〜図１２は本発明の一実施例による転送処理例を示すシーケンスチャートである。これら図１と図１０〜図１２とを参照して本発明の一実施例による転送処理例について説明する。
【００８２】
図１０は上記のコンテンツチェックの結果、ブラックリスト１７−３に一致してチェックがｄｉｓａｂｌｅの電子メールのみを通過させる場合の処理を示している。ＳＭＴＰクライアント２はＳＭＴＰサーバ３に対して最初にＨＥＬＯ（ＨＥＬＬＯ）やＥＨＬＯ（Ｅｘｔｅｎｄｅｄ  ＨＥＬＬＯ）といったコマンドを発行する。
【００８３】
メールフィルタ装置１はこれをそのままＳＭＴＰサーバ３に転送し、またＳＭＴＰサーバ３からのレスポンスをＳＭＴＰクライアント２に転送する（図１０のａ１）。ここで、ＨＥＬＯコマンドはセッション開始時のオープンコマンドであり、ＥＨＬＯコマンドは拡張機能を使用したいことを通知するオープンコマンドであり、これらのコマンドによって、サーバにおいてクライアントとのセッションが初期化される。
【００８４】
次に、ＳＭＴＰクライアント２はＭＡＩＬコマンドを発行して送信元のアドレスを通知する。メールフィルタ装置１はこのコマンドもＳＭＴＰサーバ３に対して転送し、レスポンスをＳＭＴＰクライアント２に転送する（図１０のａ２）。
【００８５】
続いて、ＳＭＴＰクライアント２はＲＣＰＴコマンドを発行し、電子メールの宛先を通知する。ＲＣＰＴコマンドは複数回発行することが可能で、電子メールの配送先を複数指定することができる（図１０のａ３〜ａ６）。
【００８６】
ａ３に示すＲＣＰＴコマンドでは宛先アドレスとして「ｙ１」を指定する。メールフィルタ装置１はこのコマンドに対してｕｎｋｎｏｗｎ判定とチェックｅｎａｂｌｅ判定とを行うので、「ｙ１」はフィルタ処理がｅｎａｂｌｅだと判定したとする。同様に、ａ４に示すＲＣＰＴコマンドでは宛先アドレス「ｙ２」を取得し、フィルタ処理がｅｎａｂｌｅであることを取得する。
【００８７】
ａ５に示すＲＣＰＴコマンドでは宛先アドレス「ｙ３」を取得するが、フィルタ処理がｄｉｓａｂｌｅであるので、メールフィルタ装置１はＳＭＴＰサーバ３に対してＲＣＰＴコマンドを転送する。メールフィルタ装置１はＳＭＴＰサーバ３からのレスポンスをＳＭＴＰクライアント２に転送する。この時、レスポンスがＮＧを示すコード番号であれば、「ｙ３」はＲＣＰＴ候補には含めない。
【００８８】
ａ６に示すＲＣＰＴコマンドでは宛先アドレス「ｙ４」を取得するが、ｕｎｋｎｏｗｎであると判定されると、メールフィルタ装置１はＳＭＴＰクライアント２に対してＮＧを示すレスポンスを送信する。また、「ｙ４」はＲＣＰＴ候補に含めない。
【００８９】
上記の処理によって、ＲＣＰＴ候補数は３であるので、メールフィルタ装置１はＤＡＴＡコマンド受信に対してＯＫを示すレスポンスを送信する（図１０のａ７）。ＳＭＴＰクライアント２が電子メールのメッセージを送信すると、メールフィルタ装置１はコンテンツチェック処理によってブラックリストへの一致をチェックする。
【００９０】
メールフィルタ装置１はＳＭＴＰクライアント２からのメッセージ送信が完了し、ブラックリスト１７−３に一致していたことが判明すると、フィルタ処理ｅｎａｂｌｅである「ｙ１」，「ｙ２」に対しては電子メールの配送を行わない。このため、メールフィルタ装置１は「ｙ１」，「ｙ２」をエラー送信部１８に登録する。
【００９１】
ここで、メールフィルタ装置１は有効ＲＣＰＴが「ｙ３」のみであるが、その数が０ではないため、ＳＭＴＰサーバ３に対してＤＡＴＡコマンドを発行する（図１０のａ９）。もしも、ＳＭＴＰサーバ３からＮＧ応答が返ってきた場合、メールフィルタ装置１は電子メールのメッセージをＳＭＴＰサーバ３に送らずに、ＳＭＴＰクライアント２に対してＮＧレスポンスを返す（図１０のａ１０）。
【００９２】
ＤＡＴＡコマンドの応答がＯＫの場合、メールフィルタ装置１は電子メールのメッセージをＳＭＴＰサーバ３に送り（図１０のａ１１）、転送が完了した後のレスポンスをＳＭＴＰクライアント２に転送する（図１０のａ１２）。
【００９３】
電子メールの配送に成功した場合、ＳＭＴＰサーバ３はＯＫレスポンスを返してくるので、メールフィルタ装置１はＳＭＴＰクライアント２にＯＫレスポンスを中継することになる。ＳＭＴＰクライアント２はデータコマンド（メッセージ転送）に対するＯＫレスポンスを受け取るので、送信のために保持していたメッセージを開放することができる。
【００９４】
ａ１２にてＯＫである場合、メールフィルタ装置１はエラー送信部１８に登録してある「ｙ１」，「ｙ２」に対してエラーメールを送信する。ａ１０あるいはａ１２がＮＧであった場合、メールフィルタ装置１はエラー送信部１８に登録した「ｙ１」，「ｙ２」の情報をクリアし、エラーメールの送信を行わない。
【００９５】
図１１は上記のコンテンツチェックの結果、ブラックリスト１７−３に一致してメール配送を行わない場合の処理を示している。ＳＭＴＰクライアント２からのＨＥＬＯ／ＥＨＬＯコマンド転送（図１１のｂ１）、ＭＡＩＬコマンド転送（図１１のｂ２）は上記の図１０に示す処理と同様である。
【００９６】
メールフィルタ装置１はＲＣＰＴコマンドで宛先「ｙ１」、「ｙ２」をそれぞれ取得し（図１１のｂ３，ｂ４）、それらがフィルタ処理有効（ｅｎａｂｌｅ）であることを得る。
【００９７】
次に、メールフィルタ装置１はＤＡＴＡコマンド、メッセージ転送でコンテンツチェックを行い（図１１のｂ５，ｂ６）、その結果、ブラックリスト１７−３に一致していたことが判明するが、「ｙ１」，「ｙ２」はＲＣＰＴ候補から削除されるため、ＲＣＰＴ候補数が０になる。
【００９８】
そこで、メールフィルタ装置１はＳＭＴＰサーバ３に対してＲＳＥＴコマンドを発行し、これまで発行していたＭＡＩＬコマンド情報等をクリアする（図１１のｂ７）。
【００９９】
一方、メールフィルタ装置１はＳＭＴＰクライアント２にＮＧレスポンスを送信し、メール転送が失敗に終わったことを通知する（図１１のｂ８）。ＳＭＴＰクライアント２はデータコマンドに対するＮＧレスポンスを受け取り、適切なエラー送信処理を行った後に、送信のために保持していたメッセージを開放する。
【０１００】
図１２は上記のコンテンツチェックの結果、ブラックリストに一致せずにすべての宛先にメールを転送する場合の処理を示している。図１２において、ｃ１〜ｃ７までは上記の図１０に示す処理と同様であり、宛先「ｙ３」はフィルタ処理にかかわらず配送し、宛先「ｙ１」，「ｙ２」はフィルタ処理が有効であり、宛先「ｙ４」はｕｎｋｎｏｗｎであるため、ＮＧレスポンスを返しているものとする。
【０１０１】
続いて、メールフィルタ装置１は電子メールのメッセージを受信し、コンテンツチェック処理を行う（図１２のｃ８）。ここで、ブラックリストに一致しない時には、保存していた宛先「ｙ１」，「ｙ２」に対してもメールを転送するため、ＳＭＴＰサーバ３に対して「ｙ１」，「ｙ２」のＲＣＰＴコマンドを発行する。
【０１０２】
図１２のｃ９ではＲＣＰＴコマンドで「ｙ１」を、ｃ１０ではＲＣＰＴコマンドで「ｙ２」をＳＭＴＰサーバ３に通知する。ここで、ＳＭＴＰサーバ３からの応答がエラーであった場合，メールフィルタ装置１はエラー送信部１８にアドレスを登録する。
【０１０３】
ついで、メールフィルタ装置１はＳＭＴＰサーバ３にＤＡＴＡコマンドを転送する（図１２のｃ１１）。ＳＭＴＰサーバ３からの応答がＮＧであった場合、メールフィルタ装置１はＳＭＴＰクライアント２に対してＮＧレスポンスを発行する（図１２のｃ１２）。ＳＭＴＰサーバ３からの応答がＯＫであった場合、メールフィルタ装置１はＳＭＴＰサーバ３にメールメッセージを送信する（図１２のｃ１３）。
【０１０４】
メールメッセージの送信が完了すると、メールフィルタ装置１はＳＭＴＰサーバ３からの応答をＳＭＴＰクライアント２に転送する（図１２のｃ１４）。ＳＭＴＰサーバ３からの応答がＯＫの場合、メールフィルタ装置１はエラー送信部１８にアドレスが登録されていたら、エラー通知メールの送信処理を行う。ＳＭＴＰサーバ３からの応答がＮＧの場合、メールフィルタ装置１はエラー送信部１８のアドレスをクリアする。ＳＭＴＰサーバ３からの応答にかかわらず、データ転送処理が完了してＳＭＴＰクライアント２に応答が返るまではデータの配送責任はＳＭＴＰクライアント２にあり、メールフィルタ装置１は責任を負わない。
【０１０５】
図１３は本発明の一実施例によるｕｎｋｎｏｗｎユーザ登録テーブル１７−１の構成例を示す図である。図１３に示すｕｎｋｎｏｗｎユーザ登録テーブル１７−１にｕｎｋｎｏｗｎユーザを登録する目的は、宛先ユーザのデータベースが膨大であり、全てのユーザが登録できない場合でも、宛先不明のアドレスを効率よく探し出すことにある。
【０１０６】
チェック対象のユーザが１０００万を越えるような場合には、別コンピュータ上のユーザデータベースにユーザの有無、チェックサービスの有無を問い合わせることが普通であるが、その場合にはユーザチェックのために処理時間がかかるという問題がある。そこで、本実施例では、予め登録されている既知の「存在しないユーザアドレス」を登録しておき、それらと一致した時にｕｎｋｎｏｗｎユーザとしてエラーを返すというものである。
【０１０７】
メールアドレスは「ｌｏｃａｌ＠ｄｏｍａｉｎ」のように、ｌｏｃａｌ部とｄｏｍａｉｎ部とが「＠」文字で区切られて定義されるが、ＳＭＴＰ標準ではｌｏｃａｌ部は最大６４文字、ｄｏｍａｉｎ部は最大２５６文字まで許容されている。
【０１０８】
一方、迷惑メール送信者は短時間に大量に、効率よくメールを送りたいためにアドレスを自動的に発生させてメールを送信する場合がある。このような場合には文字数を比較的少なくしてアドレスを生成することが想像される。なぜなら、文字数を多くすると、組み合わせが多大になり、しかも正しい登録ユーザに一致する確率が減少するからである。したがって、ｕｎｋｎｏｗｎユーザとして文字数を制限し、例えばｌｏｃａｌ部が５文字以下のうち、予約されたアドレスを登録しておけばよい。予約されたアドレスとは一般ユーザが使用していない文字列をｕｎｋｎｏｗｎ判定用に予約しておくものである。
【０１０９】
ｕｎｋｎｏｗｎ判定は検索部１６とｕｎｋｎｏｗｎユーザ登録テーブル１７−１とによる文字列検索で処理可能であるが、ｕｎｋｎｏｗｎユーザ登録テーブル１７−１のサイズを小さくするためには、よく使われる宛先不明アドレスをエラーメールから収集して設定登録しておけばよい。図１３に示すテーブルでは、“ａａａａａ”や“ｂｂｂｂｂ”，“ａｂｃｄｅ”，“０１０１０”等を予約アドレスとして登録しておくことを示している。
【０１１０】
図１４は本発明の他の実施例によるＳＭＴＰ処理部の判断処理を示すシーケンスチャートである。この図１４を参照して本発明の他の実施例によるＳＭＴＰ処理部の判断処理について説明する。尚、本発明の他の実施例によるメールフィルタシステムは図１に示す本発明の一実施例によるメールフィルタシステムと同様の構成となっている。
【０１１１】
本実施例によるＳＭＴＰ処理部の判断処理はコンテンツチェックの結果が判明するまで、ＳＭＴＰサーバ３への中継処理を遅らせるものである。このようにすることで、コンテンツチェックの結果として中継すべき宛先数が０となった場合でも、ＳＭＴＰサーバ３への接続を一切行わないことが可能になり、ＳＭＴＰサーバ３の処理の負荷を下げることが可能になる。
【０１１２】
メールフィルタ装置１はＳＭＴＰクライアント２からのＨＥＬＯ／ＥＨＬＯコマンドを受信しても、そのコマンドをＳＭＴＰサーバ３にすぐに転送せずに、ＳＭＴＰクライアント２に対して予め設定されている応答を返す（図１４のｄ１）。
【０１１３】
次に、メールフィルタ装置１はＭＡＩＬコマンドを受信しても、ＳＭＴＰクライアント２に対してＯＫレスポンスを返しておく（図１４のｄ２）。メールフィルタ装置１はＳＭＴＰクライアント２からＲＣＰＴコマンドを受信すると、ｕｎｋｎｏｗｎチェックを行い、さらにチェック処理のｅｎａｂｌｅ／ｄｉｓａｂｌｅ判定を行う。
【０１１４】
メールフィルタ装置１は宛先アドレスがｕｎｋｎｏｗｎであれば、ＳＭＴＰクライアント２にＮＧレスポンスを返すが、それ以外の時にはＯＫレスポンスを返しておく（図１４のｄ３）。メールフィルタ装置１はＳＭＴＰクライアント２からデータを転送し、ＳＭＴＰ処理部１５、検索部１６、情報テーブルの連携によってコンテンツチェック処理を行う（図１４のｄ４，ｄ５）。
【０１１５】
ここで、メールフィルタ装置１はブラックリストに一致すれば、チェックｅｎａｂｌｅのアドレスをアドレスリストから削除し、残ったアドレスをＳＭＴＰサーバ３に中継する候補とする。この時点でＲＣＰＴ候補数が０でなければ、メールフィルタ装置１はＳＭＴＰサーバ３に対して中継処理を行う。
【０１１６】
つまり、メールフィルタ装置１はＳＭＴＰサーバ３に対してＨＥＬＯ／ＥＨＬＯコマンドを発行し（図１４のｄ６）、ＭＡＩＬコマンドを発行する（図１４のｄ７）。さらに、メールフィルタ装置１はＳＭＴＰサーバ３に対して宛先アドレス分だけＲＣＰＴコマンドを発行する（図１４のｄ８）。
【０１１７】
メールフィルタ装置１はＳＭＴＰサーバ３に対してＤＡＴＡコマンドを発行し（図１４のｄ９）、ＳＭＴＰサーバ３からＮＧレスポンスを受信した時にＳＭＴＰクライアント２にＮＧレスポンスを発行し、メール中継が失敗であることを伝える（図１４のｄ１０）。
【０１１８】
メールフィルタ装置１はＤＡＴＡコマンドに対してＳＭＴＰサーバ３からＯＫレスポンスを受信した時にメールメッセージを送信し（図１４のｄ１１）、送信完了後の応答をＳＭＴＰクライアント２に転送する（図１４のｄ１２）。
【０１１９】
メールフィルタ装置１は上記のｄ８に示すＲＣＰＴコマンドに対してＳＭＴＰサーバ３からＮＧレスポンスを受信した時にＤＡＴＡ転送が成功した場合、特定のユーザに対してのみ配送が失敗しているので、エラー送信部１８からエラー通知メールを送信する。また、メールフィルタ装置１はフィルタチェックのｅｎａｂｌｅ／ｄｉｓａｂｌｅの宛先が混在する時に、コンテンツチェックでブラックリスト１７−３と一致した場合、エラー送信部１８からフィルタチェックｅｎａｂｌｅである宛先を示すエラー通知メールを送信する。
【０１２０】
このように、本実施例では、コンテンツチェックが完了するまでＳＭＴＰサーバ３への接続を行わないため、ＳＭＴＰサーバ３への接続時間を少なくし、ＳＭＴＰサーバ３に接続している同時コネクション数を低減することが期待できる。また、本実施例では、コンテンツチェックによって転送不要と判断した時に、ＳＭＴＰサーバ３への接続自体を行わないため、ＳＭＴＰサーバ３の負荷を軽減するという効果が得られる。
【０１２１】
さらに、図６〜図９に示す処理フローでは、アドレスのｕｎｋｎｏｗｎチェック、チェック処理のｅｎａｂｌｅ／ｄｉｓａｂｌｅ判定を行っているが、フィルタ機能を一括で適用する場合にはこれらのチェックを省略してもよい。この場合には、ＲＣＰＴコマンドから取得するメールアドレスすべてがチェック処理ｅｎａｂｌｅであるものとし、図６〜図９に示す処理フローにしたがった処理を行う。
【図面の簡単な説明】
【０１２２】
【図１】本発明の一実施例によるメールフィルタシステムの構成を示すブロック図である。
【図２】図１のコネクション管理部で用いられるコネクション管理テーブルの構成例を示す図である。
【図３】図１のＴＣＰ／ＩＰ終端部１１にてＩＰパケットを受信した場合の処理を示すフローチャートである。
【図４】図１のＴＣＰ／ＩＰ終端部１２にてＩＰパケットを受信した場合の処理を示すフローチャートである。
【図５】図１のＴＣＰ／ＩＰ終端部１１，１２にてＩＰパケットを送信した場合の処理を示すフローチャートである。
【図６】図１のＳＭＴＰ処理部でのプロトコル処理を示すフローチャートである。
【図７】図１のＳＭＴＰ処理部でのプロトコル処理を示すフローチャートである。
【図８】図１のＳＭＴＰ処理部でのプロトコル処理を示すフローチャートである。
【図９】図１のＳＭＴＰ処理部でのプロトコル処理を示すフローチャートである。
【図１０】本発明の一実施例による転送処理例を示すシーケンスチャートである。
【図１１】本発明の一実施例による転送処理例を示すシーケンスチャートである。
【図１２】本発明の一実施例による転送処理例を示すシーケンスチャートである。
【図１３】本発明の一実施例によるｕｎｋｎｏｗｎユーザ登録テーブルの構成例を示す図である。
【図１４】本発明の他の実施例によるＳＭＴＰ処理部の判断処理を示すシーケンスチャートである。
【図１５】従来例による転送処理例を示すシーケンスチャートである。
【符号の説明】
【０１２３】
１  メールフィルタ装置
２  ＳＭＴＰクライアント
３  ＳＭＴＰサーバ
１１  ＳＭＴＰクライアント側のＴＣＰ／ＩＰ終端部
１２  ＳＭＴＰサーバ側のＴＣＰ／ＩＰ終端部
１３  コネクション管理部
１４  コマンド解釈部
１５  ＳＭＴＰ処理部
１６  検索部
１７−１  ｕｎｋｎｏｗｎユーザ登録テーブル
１７−２  ユーザテーブル
１７−３  ブラックリスト
１８  エラー送信部
１９  記録媒体
【図１】
2005210240.tif 000003
【図２】
2005210240.tif 000004
【図３】
2005210240.tif 000005
【図４】
2005210240.tif 000006
【図５】
2005210240.tif 000007
【図６】
2005210240.tif 000008
【図７】
2005210240.tif 000009
【図８】
2005210240.tif 000010
【図９】
2005210240.tif 000011
【図１０】
2005210240.tif 000012
【図１１】
2005210240.tif 000013
【図１２】
2005210240.tif 000014
【図１３】
2005210240.tif 000015
【図１４】
2005210240.tif 000016
【図１５】
2005210240.tif 000017