(57)【要約】      （修正有）【課題】過去に迷惑メールと判断されたメールの情報を元に、新たに受信したメールが過去に迷惑メールであったか否かを検索する。【解決手段】受信メールの本文から記載されているＵＲＩ、メールアドレスを抽出し、その抽出されたＵＲＩへアクセスし、メール本文に記載されているＵＲＩとは異なるＵＲＩへ誘導された場合にはそのＵＲＩも記憶する。本文に対し別途保有している単語データベースに存在する単語を抽出し、それらを事前に定めた方法によって単語を複数抽出し文字列を生成し記憶する。記号や空白、空白行、重なっている文字を削除し、そこから事前に定めた方法によって、行や文字を複数抽出し文字列を生成し記憶する。これらの記憶した文字列のハッシュ値を計算し、別途他の複数のユーザと共有している迷惑メールデータベースに登録されている迷惑メールの情報から同じものを検索し、受信したメールが過去に迷惑メールとして判定されたかを確認する。【選択図】図１
2006221586.tif 000002
【特許請求の範囲】
【請求項１】
受信したメール本文から抽出されたＵＲＩのハッシュ値情報が、過去に迷惑メールとして判定されたメールのデータベースから、ＵＲＩのハッシュ値情報を検索し、過去に迷惑メールとして判定された文面に記載されているＵＲＩへアクセスした場合に、ｈｔｔｐリダイレクト、ＣＧＩ、ドメインネームサーバなどによりメール本文の表記とは異なるＵＲＩへ誘導された先のＵＲＩのハッシュ値情報と一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認する方法。
【請求項２】
受信したメール本文から抽出されたＵＲＩへアクセスを行い、ｈｔｔｐリダイレクト、ＣＧＩ、ドメインネームサーバなどにより表記とは異なるＵＲＩへ誘導された場合にその誘導された先のＵＲＩのハッシュ値情報が、過去に迷惑メールとして判定されたメールのデータベースから、ＵＲＩのハッシュ値情報を検索し、過去に迷惑メールとして判定された文面に記載されているＵＲＩのハッシュ値情報と一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認する方法。
【請求項３】
受信したメール本文から抽出されたＵＲＩへアクセスを行い、ｈｔｔｐリダイレクト、ＣＧＩ、ドメインネームサーバなどにより表記とは異なるＵＲＩへ誘導された場合にその誘導された先のＵＲＩのハッシュ値情報が、過去に迷惑メールとして判定されたメールのデータベースから、ＵＲＩのハッシュ値情報を検索し、過去に迷惑メールとして判定された文面に記載されているＵＲＩへアクセスした場合に、ｈｔｔｐリダイレクト、ＣＧＩ、ドメインネームサーバなどにより表記とは異なるＵＲＩへ誘導された先のＵＲＩのハッシュ値情報と一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認する方法。
【請求項４】
受信したメール本文から、単語データベースに存在する単語を抽出し、その中からさらに数列を用いて単語を複数抽出し、それらを結合し生成した文字列のハッシュ値情報を、過去に迷惑メールとして判定されたメールのデータベースから検索し、過去に迷惑メールとして判定された文面から、単語データベースに存在する単語が抽出され、その中からさらに同じ数列を用いて単語が複数抽出され、それらを結合し生成された文字列のハッシュ値情報と、一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認する方法。
【請求項５】
受信したメール本文から、単語データベースに存在する単語を抽出し、抽出された単語を一定の規則で並び替えその出現回数を計算し、その中からさらに数列を用いて単語を複数抽出し、それらの単語とその単語の出現回数を文字列として組み合わせ結合し生成した文字列のハッシュ値情報を、過去に迷惑メールとして判定されたメールのデータベースから検索し、過去に迷惑メールとして判定された文面から、単語データベースに存在する単語が抽出され、抽出された単語が同じ一定の規則で並び替えられその出現回数が計算され、その中からさらに同じ数列を用いて単語が複数抽出され、それらの単語とその単語の出現回数が文字列として組み合わされ結合し生成された文字列のハッシュ値情報と、一致するものがあった場合には、この受信したメールが過去に迷惑メールと判定されたと確認する方法。
【請求項６】
受信したメール本文から、音標文字以外の文字、隣り合わせで同じ文字が重なっている文字や空白行を削除し、その中から数列を用いてこれらの行を複数抽出し、それらを結合し生成した文字列のハッシュ値情報を、過去に迷惑メールとして判定されたメールのデータベースから検索し、過去に迷惑メールとして判定された文面から、音標文字以外の文字、隣り合わせで同じ文字が重なっている文字や空白行が削除され、その中から同じ数列を用いてこれらの行が複数抽出され、それらを結合し生成された文字列のハッシュ値情報と、一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認する方法。
【請求項７】
受信したメール本文から、音標文字以外の文字、隣り合わせで同じ文字が重なっている文字や空白行を削除し、その中から数列を用いてこれらの文字を複数抽出し、それらを結合し生成した文字列のハッシュ値情報を、過去に迷惑メールとして判定されたメールのデータベースから検索し、過去に迷惑メールとして判定された文面から、音標文字以外の文字、隣り合わせで同じ文字が重なっている文字や空白行が削除され、その中から同じ数列を用いてこれらの文字が複数抽出され、それらを結合し生成された文字列のハッシュ値情報と、一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認する方法。
【請求項８】
受信したメール本文から抽出されたＵＲＩのハッシュ値情報が、過去に迷惑メールとして判定されたメールのデータベースから、ＵＲＩのハッシュ値情報を検索し、過去に迷惑メールとして判定された文面に記載されているＵＲＩへアクセスした場合に、ｈｔｔｐリダイレクト、ＣＧＩ、ドメインネームサーバなどによりメール本文の表記とは異なるＵＲＩへ誘導された先のＵＲＩのハッシュ値情報と一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認することを実行させるためのプログラム。
【請求項９】
受信したメール本文から抽出されたＵＲＩへアクセスを行い、ｈｔｔｐリダイレクト、ＣＧＩ、ドメインネームサーバなどにより表記とは異なるＵＲＩへ誘導された場合にその誘導された先のＵＲＩのハッシュ値情報が、過去に迷惑メールとして判定されたメールのデータベースから、ＵＲＩのハッシュ値情報を検索し、過去に迷惑メールとして判定された文面に記載されているＵＲＩのハッシュ値情報と一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認することを実行させるためのプログラム。
【請求項１０】
受信したメール本文から抽出されたＵＲＩへアクセスを行い、ｈｔｔｐリダイレクト、ＣＧＩ、ドメインネームサーバなどにより表記とは異なるＵＲＩへ誘導された場合にその誘導された先のＵＲＩのハッシュ値情報が、過去に迷惑メールとして判定されたメールのデータベースから、ＵＲＩのハッシュ値情報を検索し、過去に迷惑メールとして判定された文面に記載されているＵＲＩへアクセスした場合に、ｈｔｔｐリダイレクト、ＣＧＩ、ドメインネームサーバなどにより表記とは異なるＵＲＩへ誘導された先のＵＲＩのハッシュ値情報と一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認することを実行させるためのプログラム。
【請求項１１】
受信したメール本文から、単語データベースに存在する単語を抽出し、その中からさらに数列を用いて単語を複数抽出し、それらを結合し生成した文字列のハッシュ値情報を、過去に迷惑メールとして判定されたメールのデータベースから検索し、過去に迷惑メールとして判定された文面から、単語データベースに存在する単語が抽出され、その中からさらに同じ数列を用いて単語が複数抽出され、それらを結合し生成された文字列のハッシュ値情報と、一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認することを実行させるためのプログラム。
【請求項１２】
受信したメール本文から、単語データベースに存在する単語を抽出し、抽出された単語を一定の規則で並び替えその出現回数を計算し、その中からさらに数列を用いて単語を複数抽出し、それらの単語とその単語の出現回数を文字列として組み合わせ結合し生成した文字列のハッシュ値情報を、過去に迷惑メールとして判定されたメールのデータベースから検索し、過去に迷惑メールとして判定された文面から、単語データベースに存在する単語が抽出され、抽出された単語が同じ一定の規則で並び替えられその出現回数が計算され、その中からさらに同じ数列を用いて単語が複数抽出され、それらの単語とその単語の出現回数が文字列として組み合わされ結合し生成された文字列のハッシュ値情報と、一致するものがあった場合には、この受信したメールが過去に迷惑メールと判定されたと確認することを実行させるためのプログラム。
【請求項１３】
受信したメール本文から、音標文字以外の文字、隣り合わせで同じ文字が重なっている文字や空白行を削除し、その中から数列を用いてこれらの行を複数抽出し、それらを結合し生成した文字列のハッシュ値情報を、過去に迷惑メールとして判定されたメールのデータベースから検索し、過去に迷惑メールとして判定された文面から、音標文字以外の文字、隣り合わせで同じ文字が重なっている文字や空白行が削除され、その中から同じ数列を用いてこれらの行が複数抽出され、それらを結合し生成された文字列のハッシュ値情報と、一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認することを実行させるためのプログラム。
【請求項１４】
受信したメール本文から、音標文字以外の文字、隣り合わせで同じ文字が重なっている文字や空白行を削除し、その中から数列を用いてこれらの文字を複数抽出し、それらを結合し生成した文字列のハッシュ値情報を、過去に迷惑メールとして判定されたメールのデータベースから検索し、過去に迷惑メールとして判定された文面から、音標文字以外の文字、隣り合わせで同じ文字が重なっている文字や空白行が削除され、その中から同じ数列を用いてこれらの文字が複数抽出され、それらを結合し生成された文字列のハッシュ値情報と、一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認することを実行させるためのプログラム。
【請求項１５】
受信したメール本文から抽出されたＵＲＩのハッシュ値情報が、過去に迷惑メールとして判定されたメールのデータベースから、ＵＲＩのハッシュ値情報を検索し、過去に迷惑メールとして判定された文面に記載されているＵＲＩへアクセスした場合に、ｈｔｔｐリダイレクト、ＣＧＩ、ドメインネームサーバなどによりメール本文の表記とは異なるＵＲＩへ誘導された先のＵＲＩのハッシュ値情報と一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認することを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１６】
受信したメール本文から抽出されたＵＲＩへアクセスを行い、ｈｔｔｐリダイレクト、ＣＧＩ、ドメインネームサーバなどにより表記とは異なるＵＲＩへ誘導された場合にその誘導された先のＵＲＩのハッシュ値情報が、過去に迷惑メールとして判定されたメールのデータベースから、ＵＲＩのハッシュ値情報を検索し、過去に迷惑メールとして判定された文面に記載されているＵＲＩのハッシュ値情報と一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認することを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１７】
受信したメール本文から抽出されたＵＲＩへアクセスを行い、ｈｔｔｐリダイレクト、ＣＧＩ、ドメインネームサーバなどにより表記とは異なるＵＲＩへ誘導された場合にその誘導された先のＵＲＩのハッシュ値情報が、過去に迷惑メールとして判定されたメールのデータベースから、ＵＲＩのハッシュ値情報を検索し、過去に迷惑メールとして判定された文面に記載されているＵＲＩへアクセスした場合に、ｈｔｔｐリダイレクト、ＣＧＩ、ドメインネームサーバなどにより表記とは異なるＵＲＩへ誘導された先のＵＲＩのハッシュ値情報と一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認することを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１８】
受信したメール本文から、単語データベースに存在する単語を抽出し、その中からさらに数列を用いて単語を複数抽出し、それらを結合し生成した文字列のハッシュ値情報を、過去に迷惑メールとして判定されたメールのデータベースから検索し、過去に迷惑メールとして判定された文面から、単語データベースに存在する単語が抽出され、その中からさらに同じ数列を用いて単語が複数抽出され、それらを結合し生成された文字列のハッシュ値情報と、一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認することを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１９】
受信したメール本文から、単語データベースに存在する単語を抽出し、抽出された単語を一定の規則で並び替えその出現回数を計算し、その中からさらに数列を用いて単語を複数抽出し、それらの単語とその単語の出現回数を文字列として組み合わせ結合し生成した文字列のハッシュ値情報を、過去に迷惑メールとして判定されたメールのデータベースから検索し、過去に迷惑メールとして判定された文面から、単語データベースに存在する単語が抽出され、抽出された単語が同じ一定の規則で並び替えられその出現回数が計算され、その中からさらに同じ数列を用いて単語が複数抽出され、それらの単語とその単語の出現回数が文字列として組み合わされ結合し生成された文字列のハッシュ値情報と、一致するものがあった場合には、この受信したメールが過去に迷惑メールと判定されたと確認することを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２０】
受信したメール本文から、音標文字以外の文字、隣り合わせで同じ文字が重なっている文字や空白行を削除し、その中から数列を用いてこれらの行を複数抽出し、それらを結合し生成した文字列のハッシュ値情報を、過去に迷惑メールとして判定されたメールのデータベースから検索し、過去に迷惑メールとして判定された文面から、音標文字以外の文字、隣り合わせで同じ文字が重なっている文字や空白行が削除され、その中から同じ数列を用いてこれらの行が複数抽出され、それらを結合し生成された文字列のハッシュ値情報と、一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認することを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２１】
受信したメール本文から、音標文字以外の文字、隣り合わせで同じ文字が重なっている文字や空白行を削除し、その中から数列を用いてこれらの文字を複数抽出し、それらを結合し生成した文字列のハッシュ値情報を、過去に迷惑メールとして判定されたメールのデータベースから検索し、過去に迷惑メールとして判定された文面から、音標文字以外の文字、隣り合わせで同じ文字が重なっている文字や空白行が削除され、その中から同じ数列を用いてこれらの文字が複数抽出され、それらを結合し生成された文字列のハッシュ値情報と、一致するものがあった場合には、この受信したメールが過去に迷惑メールとして判定されたと確認することを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、インターネットを主とするコンピュータネットワーク上のメール受信において、迷惑メールを合理的に確認できるプログラムに関するものである。
【背景技術】
【０００２】  現在では、インターネットや携帯電話などのメールのやり取りが一般的に広く普及している。メールはその通信費用の安さと手軽さにより、日常生活や業務の様々な場面で活用されている。その反面これらのメリットを利用し、受信者が望まない迷惑メールが蔓延している事実も存在する。【０００３】  これらの迷惑メールは、受信者に不快感を及ぼすものから、クレジットカード番号や住所などの個人情報を不正に取得しようとするものまで様々なものが存在している。また、これらの蔓延により被害にあう人は後を絶たない。そのため、これらの迷惑メールを排除するために、現在は以下のような方法が用いられている。【０００４】  １つ目は、全文一致を用いた方法である。これは、過去に送られてきた迷惑メールの文面を記憶しておき、再び同じメールがあった場合にそれを迷惑メールとして判定する方法である。有用なメールを迷惑メールと誤って認識しない特徴を持っている。【０００５】  ２つ目は、ルールベースを用いた方法である。これは、事前に迷惑メールと判定できるキーワードを設定しておき、これらのキーワードがサブジェクトや本文に含まれていた場合にそれを迷惑メールと判定する方法である。過去に受け取ったことのない文面のメールでも、柔軟に認識できる特徴を持っている。【０００６】  ３つ目は、パターン認識を用いた方法である。これは、送られてきた迷惑メールからその迷惑メールの特徴を学習し、その特徴に酷似した文面のメールがあった場合にそれを迷惑メールと判定る方法である。過去に受け取ったことのない文面のメールでも、柔軟に認識できる特徴を持っている。【０００７】  ４つ目は、全文一致、パターン認識を用いた複数ユーザにおける情報共有化を用いた方法である。これは、複数のユーザから、迷惑メールと判定したメールの情報を送ってもらい、その情報と上記の全文一致並びにパターン認識の方法を用いて迷惑メールを判定する方法である。複数のユーザから情報を収集することにより。ユーザが単独で行うよりも迷惑メールを判定する手がかりが数多く得られるという特徴を持っている。
【特許文献１】特開２０００−０１０８８０号公報
【特許文献２】特開２００３−１７３３１４号公報
【特許文献３】特開２００３−２４９９６４号公報
【特許文献４】特開２００３−２６３３９１号公報
【特許文献５】特開２００３−３４８１６１号公報
【特許文献６】特開２００３−３４８１６２号公報
【特許文献７】特開２００４−１３３５０８号公報
【特許文献８】特開２００４−２５４０３４号公報
【特許文献９】特開２００４−０３０６２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】  背景技術で記載した方法を用いて、迷惑メールの認識及び排除を行った場合にいくつかの問題点が存在する。具体的には、以下のものがあげられる。【０００９】  わずかな文面の違いにより、過去に受信した迷惑メールの文面と、新たに受信した迷惑メールの文面が一致しない場合に、正しく認識できないという問題点が存在する。この問題点は、全文一致を用いた方法が該当する。【００１０】  ユーザが迷惑メールと判定しないメールでも、たまたま設定したルールのキーワードを含んでいたり、メールの特徴が似ていたために、誤って迷惑メールと判定されてしまう場合があるという問題点が存在する。この問題点は、ルールベース及びパターン認識を用いた方法が該当する。【００１１】  単語などの母音や子音を連続して表記し、視認性をあまり劣化させずにキーワードによる認識を免れる迷惑メールは、正しく認識できない場合がある。例えば、「Ｄｒｕｇｓ」や「Ｖｉａｇａ」を含んでいるメールを迷惑メールとして認識する場合に、受信したメール内の表記が「Ｄｒｕｕｕｕｇｓ」や「Ｖｉａａａａｇｒａ」の場合には、そのメールが迷惑メールに該当すると判定できないという問題点が存在する。この問題点は、ルールベース、パターン認識を用いた方法が該当する。【００１２】  ｈｔｔｐリダイレクト、ＣＧＩ、ＪａｖａＳｃｒｉｐｔ、ドメインネームサーバなどの機能を用いて、メール本文に表記されているＵＲＩとは異なるＵＲＩへ誘導する迷惑メールには対処できない場合があるという問題点が存在する。最終的に誘導されるＵＲＩは同じでも、メール本文に記載されているＵＲＩは迷惑メールごとに異なる表記がしてある場合があるためである。この問題点は、全文一致、ルールベース、パターン認識を用いた方法が該当する。【００１３】  情報共有化を行う場合に、ユーザは迷惑メールと判定したメールを、複数ユーザで情報共有しているデータベースへ登録する必要がある。ここで登録された情報は、他のユーザも閲覧可能である。そのため、メール内に個人情報が記載されたものを登録した際に、他のユーザにその個人情報を公開してしまうことになるという問題点が存在する。この問題点は、全文一致、パターン認識を用いた複数ユーザにおける情報共有化を用いた方法が該当する。
【課題を解決するための手段】
【００１４】  この発明では、ユーザ（図１の６、図２の２２）が使用しているクライアント（図１の３、図２の１０）から、他のユーザ（図１の７、８）のクライアント（図１の４、５）と共有で使用している迷惑メールデータベースサーバ（図１の２、図２の２１）より定期的に最新の迷惑メールの情報を、ユーザが使っているクライアントへ取り込む（図２の１６、１７）。メールサーバ（図１の１、図２の９）に自分宛のメールを受信した場合には、そのメールをユーザのクライアントへ取り込む（図２の１１）。取り込んだメール本文から複数の文字列の情報を抽出し、ハッシュ値を計算する（図２の１２）。計算したハッシュ値と、迷惑メールデータベースに登録されているハッシュ値を比較し、ユーザのクライアントに取り込んだメールが迷惑メールとして登録されているかどうか検索し結果を出力する（図２の１５）。迷惑メールとして登録されていた場合には、メールサーバ及びクライアントから該当メールを削除する（図２の１４）。迷惑メールとして登録されていない場合に、ユーザはそのメールを読むことになる（図２の１９）。ただし、迷惑メールデータベースに登録されていなくても、受信したメールが迷惑メールであるとユーザが判定した場合には、その判定をクライアント（図１の３、図２の１８）に入力する。入力された情報を元に、メール本文から抽出、計算されたハッシュ値をクライアントから共有迷惑メールデータベースサーバへ登録する（図２の２０）。ここでは、他のユーザ（図１の７，８）も同様の処理をしているものとする。【００１５】  本文に記載されているＵＲＩを抽出し、実際にそのＵＲＩへ接続を行う。ｈｔｔｐリダイレクトやＪａｖａＳｃｒｉｐｔ、ＣＧＩ、ドメインネームサーバなどの機能を用いることにより、本文に記載されたＵＲＩとは異なるサイトへ誘導された場合に、その誘導先のＵＲＩも抽出する（図３）。【００１６】  アルファベットやひらがな、カタカナ、ハングル文字などの音標文字以外の文字や記号、数字を削除する。その後、同じ文字が重なっている場合に、それを１つの文字に置き換える（図４）。【００１７】  メール本文を全部結合し生成した文字列、もしくは本文を行、単語、文字の最小構成単位として分割しそこから複数の事前に定めた位置にある行、単語、文字を抽出、結合し生成された文字列、メール本文から単語の出現回数を計算し単語を文字コード順に並べ、そこから複数の事前に定めた位置にある単語と出現回数を抽出し、それらの単語と出現回数を結合し生成された文字列、メール本文及びアクセスした際に誘導されたサイトにて抽出されたＵＲＩ、本文に記載されているメールアドレス、メールに添付されているファイルなどから事前に定めたハッシュ関数を用いハッシュ値を計算し、記憶する。【００１８】  登録された過去の迷惑メールから計算されたハッシュ値と、新規にユーザに届いたメールから計算されたハッシュ値を比較する。同じ計算方法にて一致及び不一致のハッシュ値の数を出力する。どの程度の割合で一致したら迷惑メールであるのかという判定をユーザは事前に設定しておき、その設定に従い新規にユーザに届いたメールが迷惑メールかどうかを判定する。迷惑メールと判定された場合に、そ��メールを排除する。
【発明の効果】
【００１９】  過去に迷惑メールとして判定されたものと同一のメールを、迷惑メール作成者が仕掛けた記述のわずかな違いの影響をうけることなく、迷惑メールと判定することが可能になる。そのため、パターン認識を用いた迷惑メールフィルターのように誤った判定を起こすことは少なくなる。【００２０】  新規にユーザに届いたメールと過去に迷惑メールとして登録されたデータベースの情報との比較に、ハッシュ値を用いるため、非常に速い計算で判定することが可能である。【００２１】  過去に登録されたことのないＵＲＩが迷惑メールの本文に記載されている場合でも、ｈｔｔｐリダイレクトやＪａｖａＳｃｒｉｐｔ、ＣＧＩ、ドメインネームサーバなどによって最終的に同じＵＲＩのサイトに誘導されるメールは、過去に存在した迷惑メールと判定することができる。【００２２】  迷惑メールの情報をハッシュ値で迷惑メールデータベースに登録するため、メール受信者の個人情報が記載されたメールを登録しても、その個人情報が他のユーザに知られることはない。
【発明を実施するための最良の形態】
【００２３】  新たなメールがユーザに届き、過去の迷感メールの情報と比較する際に、メール本文に記載されているわずかな違いによる影響を受けることなく、受信したメールが過去に迷惑メールとして判定されたか否かを確認することを可能にした。
【実施例１】
【００２４】  図６のフローチャートにおいて、ユーザはクライアントからメールサーバに対し、自分宛に新しいメールが届いているか確認する。新しいメールが届いていた場合には、そのメールを受信する（ステップＳ１）。受信したメールの本文から複数のハッシュ値を計算する（ステップＳ２、図７）。ユーザのクライアントには、他のユーザと共有している迷惑メールデータベースサーバから事前に最新の迷惑メールデータベース（図２の１６）の情報を取得してある。また、この迷惑メールデータベースには、抽出元データ種類、数列・一般項、ハッシュ値のテーブルが存在する（図１１）。ステップＳ３２、Ｓ３４、Ｓ３６、Ｓ３７でのハッシュ値の計算においては、このデータベースの抽出元データ種類と数列・一般項とを参照し、その情報に従って文字列を生成しハッシュ値を計算する。【００２５】  図７のフローチャートにおいて、メール本文の内容からＵＲＩを抽出し、そのハッシュ値を計算する（ステップＳ９）。この時、単純に「ｈｔｔｐ：／／」が含まれている文字列を探すだけでなく、「ｈｔｔｐ：／／」と表記されていなくてもＵＲＩと推測される文字列の抽出を行う。また、メールにｈｔｍｌファイルを含むテキストファイルが添付されている場合には、その添付ファイルについてもメール本文と同じ処理を行う。（図８）。【００２６】  図８のフローチャートにおいて、メールの本文から「ｈｔｔｐ：／／」や「ｈｔｔｐｓ：／／」などのスキーム名が表記されている文字列を検索し、そのＵＲＩを抽出し記憶する（ステップＳ１９、図１２）。【００２７】  図８のフローチャートにおいて、メール本文からトップレベルドメイン名を含む文字列、及びトップレベルドメイン名とセカンドレベルドメイン名を含む文字列を検索し、そのＵＲＩを抽出し記憶する（ステップＳ２０、図１３）。【００２８】  図８のフローチャートにおいて、メール本文からグローバルＩＰアドレスの範囲が記載されているＩＰアドレスを含む文字列を検索し、そのＵＲＩを抽出し記憶する（ステップＳ２１、図１４）。【００２９】  図８のフローチャートにおいて、メール本文や添付ファイルがｈｔｍｌで記載されていた場合に、その本文から「＜ａ＞」や「＜Ａ＞」などのリンクタグを含む文字列を検索し、そのＵＲＩを抽出し記憶する（ステップＳ２２、図１５）。【００３０】  図８のＳ１９からＳ２２において記憶したＵＲＩの中から、ドメイン名の前方に「＠」がある場合にはそのＵＲＩを記憶から削除する（ステップＳ２３、図１６）。【００３１】  図８のＳ１９からＳ２３において記憶したＵＲＩの中から、ＵＲＩの最後尾の文字が「／」でディレクトリを示している場合には、その「／」の文字を削除し、記憶し直す（ステップＳ２４、図１７）。【００３２】  図８のＳ１９からＳ２４において記憶したＵＲＩの中から、メールアドレスに該当する文字列などが含まれている場合には、そのメールアドレスに該当する文字列を削除し、記憶し直す（ステップＳ２５、図１８）。【００３３】  図８のＳ１９からＳ２５において記憶したＵＲＩの中から、スキーム名が記載されていない場合には「ｈｔｔｐ：／／」をＵＲＩの前方に追加し、記憶し直す（ステップＳ２６、図１９）。【００３���】  図８のＳ１９から２６において記憶したＵＲＩの中から、文字列の最後尾にファイル名やＣＧＩの引数などが記載されている場合には、それが存在するディレクトリの位置のＵＲＩを抽出し記憶する（ステップＳ２７、図２０）。【００３５】  図８のＳ１９からＳ２７において記憶したＵＲＩを用いて、実際にそのＵＲＩへアクセスを行う。この時、ｈｔｔｐリダイレクトやＪａｖａＳｃｒｉｐｔ、ＣＧＩ、ドメインネームサーバなどによって記憶されたＵＲＩとは異なるＵＲＩを持つサイトに誘導された場合には、その誘導先のサイトのＵＲＩも記憶する（ステップＳ２８、図５）。【００３６】  図８のＳ１９からＳ２８において記憶したＵＲＩの文字列を、ＭＤ５やＳＨＡ−１などのハッシュ関数を用いてハッシュ値を計算し、ステップＳ２９の処理であることを示した情報と共に記憶する。（ステップＳ２９、図１１）。【００３７】  図７のフローチャートにおいて、メール本文からトップレベルドメイン名を含む文字列、及びトップレベルドメイン名とセカンドレベルドメイン名を含む文字列で、かつドメイン名の前方に「＠」の文字があるものを検索し、そのメールアドレスを抽出し、記憶する。また、ｈｔｍｌなどで記載されている場合には、「ｍａｉｌｔｏ：」の文字列を検索し、その後に記載されているメールアドレスを記憶する。これらの記憶したメールアドレスからＭＤ５やＳＨＡ−１などのハッシュ関数を用いてハッシュ値を計算し、ステップＳ１０の処理であることを示した情報と共に記憶する（ステップＳ１０、図１１、図２１、図２２）。【００３８】  図７のフローチャートにおいて、メール本文及びメールに添付されているテキストファイル等から、メールヘッダに含まれているメールアドレスや名前、ステップＳ９で抽出したＵＲＩ及びステップＳ１０で抽出したメールアドレスを削除する（ステップＳ１１）。【００３９】  図７のフローチャートにおいて、メールにバイナリファイルが添付されている場合には、その添付ファイルそのものをＭＤ５やＳＨＡ−１などのハッシュ関数を用いてハッシュ値を計算し、ステップＳ１２の処理であることを示した情報と共に記憶する（ステップＳ１２、図１１）。【００４０】  図７のフローチャートにおいて、メール本文に記載されている記号や数字以外の文字が、英文などのように音標文字だけで構成されているかどうかを調べる。もし、音標文字だけで構成されている場合には、ステップＳ１４へ飛ぶ。漢字が入っている日本語の文のように音標文字だけで構成されていない場合には、ステップＳ１６へ飛ぶ（ステップＳ１３）。【００４１】  図７のフローチャートにおいて、メール本文が音標文字だけで構成されている場合に、「Ａ」と「ａ」や、「あ」と「ア」の様な、その音標文字の種類において同音文字が存在するか調べる。もし、同音文字が存在する場合には、ステップＳ１５へ飛ぶ。同音文字が存在しない場合にはステップＳ１６へ飛ぶ（ステップＳ１４）。【００４２】  図７のフローチャートにおいて、ステップＳ１４でメール本文に複数の同音文字が存在する種類の文字であると判定された場合に、「Ｍａｋｏｔｏ」を「ＭＡＫＯＴＯ」にする様に、１種類の文字に統一するようにメール本文を変換する（ステップ���１５）。【００４３】  図７のフローチャートにおいて、メール本文から認識できる単語を抽出し、それらの単語を組み合わせた文字列のハッシュ値を計算し、記憶する（ステップＳ１６）。この時、単純に認識できる単語を抽出するだけでなく、単語の出現順序や出現回数を考慮して文字列を生成し、そのハッシュ値を計算する（図９）。【００４４】  図９のフローチャートにおいて、メール本文の単語と、別途プログラムが保持している一般的な単語のデータベース情報と比較し、単語データベースに存在する単語だけを出現順序通りに抽出し、新たなテキストを生成する。（ステップＳ３０）。【００４５】  ステップＳ３０を図２３にあるようなメール本文の１行目で処理を行う場合を説明する。１行目は「ＷＥ  ＷＩＬＬ        Ｒ    Ｅ  Ｆ  ＩＮＡＮＣＥ  ＹＯＵＲ  ＣＵＲＲＥＮＴ      Ｍ  Ｏ  ＲＴＡＧＥ」と書かれており、ここから一般的に単語として認識できる「ＷＥ」「ＷＩＬＬ」「ＹＯＵＲ」「ＣＵＲＲＥＮＴ」を抽出する。これが図２４の１行目に該当する。この様な処理を全ての行に対して行う（図２４）。【００４６】  図９のステップＳ３０で生成したテキストから、それらの単語を出現順序通りに結合し１つの文字列を生成する。この生成した文字列からハッシュ値を計算し、ステップＳ３１の処理であることを示した情報と共に記憶する（ステップＳ３１、図１１）。【００４７】  ステップＳ３１を図２４にあるようなテキストで処理を行う場合を説明する。図２４のテキストの１行目では「ＷＥ」「ＷＩＬＬ」「ＹＯＵＲ」「ＣＵＲＲＥＮＴ」の単語が記載されているため、これをそのまま出現順序通りに「ＷＥＷＩＬＬＹＯＵＲＣＵＲＲＥＮＴ」と結合する。この様な処理を全てのテキストに対して行う（図２５）。ここで生成された文字列からＭＤ５やＳＨＡ−１などのハッシュ関数を用いてハッシュ値を計算し、ステップＳ３１の処理であることを示した情報と共に記憶する。【００４８】  図９のステップＳ３０で抽出した単語一覧から、事前に定めた方法で単語を複数抽出する。その抽出した複数の単語を抽出順に結合し１つの文字列を作成する。この事前に定めた単語を複数抽出する方法の１つとして、数列を利用する方法がある。この数列は、迷惑メールデータベースに登録してある抽出元データ種類に対応する１つ以上の数列もしくは１つ以上の数列の一般項を用いたものである。ステップＳ３０で記憶した単語一覧の出現位置と、数列に出現する数値とが一致するものを抽出し、それらの単語を結合し１つの文字列を生成する。これを異なる複数の数列に対して行い、そこから生成された複数の文字列のハッシュ値を各々計算し、その各々のハッシュ値と、ステップＳ３２の処理であることを示した情報と、各々の抽出に用いられた数列を共に記憶する（ステップＳ３２、図１１）。【００４９】  ステップＳ３２を図２４にあるようなテキストで処理を行う場合を説明する。事前に迷惑メールデータベースから参照した数列｛ａｎ｝、ここでは仮に一般項ａｎ＝４（ｎ−１）＋１とし、ここからｎ＝１，２，３，４，５，６，…にて数列を計算する。数列｛ａｎ｝＝｛１，５，９，１３，１７，２１…｝となるので、図２４にテキストにある単語の位置を前から順番に１，２，３，４…とし、数列｛ａｎ｝にある数値の位置にある単語を抽出する。ここでは、数列にある１に対し「ＷＥ」、５に対し「ＡＴ」、９に対し「ＦＯＲ」、１３に対し「ＤＡＹＳ」、１７に対し「ＯＮ」、２１に対し「ＧＥＴ」が該当する。このようにして、単語が抽出できなくなるまで行い、抽出した順に結合し「ＷＥＡＴＦＯＲＤＡＹＳＯＮＧＥＴＣＡＮＦＡＭＩＬＹＧＩＦＴＳＷＩＦＥＳＯＭＥＹＥＡＲ」といった文字列を生成する（図２６）。ここで生成された文字列から、ＭＤ５やＳＨＡ−１などのハッシュ関数を用いてハッシュ値を計算し、その各々のハッシュ値と、ステップＳ３２の処理であることを示した情報と、各々の抽出にどのような一般項、もしくは数列を用いて計算したのかを共に記憶する。【００５０】  図９のステップＳ３０で記憶した単語一覧から、同じ単語の出現回数を計算する。単語を文字コード順に並び替え、各々の単語の出現回数を文字列として単語の後ろに結合する。それらの単語を全て結合し１つの文字列を生成する。その文字列からハッシュ値を計算、そのハッシュ値と、ステップＳ３３の処理であることを示した情報と共に記憶する（ステップＳ３３、図１１）。【００５１】  ステップＳ３３を図２４にあるようなテキストで処理を行う場合を説明する。図２４のテキストの単語を文字コード順に並び替えたとき、一番最初の単語は「ＡＮＤ」であり、この単語は２回登場する。次の単語は「ＡＴ」であり、この単語は１回登場する。このように単語の出現回数をテキストの中の全ての単語において計算を行う。単語と出現回数を結合するとき、「ＡＮＤ」は２回登場するので「ＡＮＤ２」という文字列が生成される。「ＡＴ」は１回登場するので「ＡＴ１」となる。この様に文字コード順に並び替えられたテキストに登場する全ての単語とその出現回数を結合すると「ＡＮＤ２ＡＴ１ＢＵＹ１ＣＡＮ１ＣＡＳＨ１…」の文字列が生成される（図２７）。ここで生成された文字列から、ＭＤ５やＳＨＡ−１などのハッシュ関数を用いてハッシュ値を計算し、そのハッシュ値と、ステップＳ３３の処理であることを示した情報と共に記憶する。【００５２】  ステップＳ３３で計算した単語の出現回数と文字コード順に並び替えられた単語一覧から、事前に定めた方法で単語と出現回数の組み合わせを複数抽出する。その抽出した複数の組み合わせを抽出順に結合し、１つの文字列を生成する。この事前に定めた単語と出現回数の組み合わせを複数抽出する方法の１つとして、数列を利用する方法がある。この数列は、迷惑メールデータベースに登録してある抽出元データ種類に対応する１つ以上の数列もしくは１つ以上の数列の一般項を用いたものである。ステップＳ３３で計算した文字コード順に並び替えられた単語一覧の位置と、数列に出現する数値とが一致するものを抽出する。抽出された単語とその単語の出現回数を単語の後に結合する。抽出された単語を全て結合し１つの文字列を生成する。これを異なる複数の数列に対して行い、そこから生成された複数の文字列のハッシュ値を各々計算し、その各々のハッシュ値と、ステップＳ３４の処理であることを示した情報と、各々の抽出に用いられた数列を共に記憶する（ステップＳ３４、図１１）。【００５３】  ステップＳ���４を図２７にあるようなテキストで処理を行う場合を説明する。事前に迷惑メールデータベースから参照した数列｛ａｎ｝、ここでは仮に一般項ａｎ＝（ｎ−１）２＋１から、ｎ＝１，２，３，４，５，６，…にて数列を計算する。数列｛ａｎ｝＝｛１，２，５，１０，１７，２６…｝となるので、図２７のテキストにある単語の位置を前から順番に１，２，３，４…とし、数列｛ａｎ｝にある数値の位置にある単語とその単語の出現回数が結合された文字列を抽出する。ここでは、数列にある１に対し「ＡＮＤ２」、２に対し「ＡＴ１」、５に対し「ＣＡＳＨ１」、１０に対し「ＧＥＴ３」、１７に対し「ＭＯＮＥＹ１」、２６に対し「ＴＨＩＳ１」が該当する。このようにして、単語が抽出できなくなるまで行い、抽出した順に結合し「ＡＮＤ２ＡＴ１ＣＡＳＨ１ＧＥＴ３ＭＯＮＥＹ１ＴＨＩＳ１」の文字列が生成される（図２８）。ここで生成された文字列から、ＭＤ５やＳＨＡ−１などのハッシュ関数を用いてハッシュ値を計算し、その各々のハッシュ値と、ステップＳ３４の処理であることを示した情報と、各々の抽出にどのような一般項、もしくは数列を用いて計算したのかを共に記憶する。【００５４】  図７のフローチャートにおいて、メール本文から、改行や空白だけが存在する行を削除し、さらに文字が書かれている行でも、空白、記号、数字などの音標文字以外の文字を削除しテキストを生成する（ステップＳ１７）。【００５５】  ステップＳ１７を図２９にあるようなメール本文の１行目で処理を行う場合を説明する。１行目は「ＴＨＥ  Ｌ０ＷＥＳＴ  ＰＲＩＣＥ  ＯＦ  ＡＬＬ  ＭＥＤ‘Ｓ  ＩＳ  ＨＥＲＥ．」と書かれており、ここから空白、記号、数字などの音標文字以外の文字を削除すると「ＴＨＥＬＷＥＳＴＰＲＩＣＥＯＦＡＬＭＥＤＳＩＳＨＥＲＥ」になる。２行目は、空白の行であるためそのまま行ごと削除される。この様な処理を全ての行に対して行う（図３０）。【００５６】  図７のステップＳ１７で生成したテキストを元に、メール本文のハッシュ値を計算し、記憶する（ステップＳ１８）。この時、単純にそのままハッシュ値を計算するだけでなく、行の出現位置や文字の出現位置を考慮し文字列を生成し、そのハッシュ値を計算する（図１０）。【００５７】  図１０のフローチャートにおいて、図７のステップＳ１７で生成したテキストを元に、全ての行を結合し、１つの文字列を生成する。その文字列からハッシュ値を計算、そのハッシュ値と、ステップＳ３３の処理であることを示した情報と共に記憶する（ステップＳ３５、図１１）。【００５８】  ステップＳ３５を図３０にあるようなテキストで処理を行う場合を説明する。１行目の「ＴＨＥＬＷＥＳＴＰＲＩＣＥＯＦＡＬＭＥＤＳＩＳＨＥＲＥ」という文字列の後方に、２行目の「ＶＩＣＯＤＩＮ」という文字列を結合する。１行目と２行目から生成された文字列の後方に、３行目の「ＣＯＤＥＩＮＥ」という文字列を結合する。これを最後の行まで行い、「ＴＨＥＬＷＥＳＴＰＲＩＣＥＯＦＡＬＭＥＤＳＩＳＨＥＲＥＶＩＣＯＤＩＮＣＯＤＥＩＮＥＶＡＧＲＡ…」という文字列を生成する（図３１）。ここで生成された文字列から、ＭＤ５やＳＨＡ−１などのハッシュ関数を用いてハッシュ値を計算し、そのハッシ���値と、ステップＳ３５の処理であることを示した情報を共に記憶する。【００５９】  図１０のフローチャートにおいて、図７のステップＳ１７で生成したテキストを元に、事前に定めた方法で行を複数抽出する。その抽出した複数の行を抽出順に結合し１つの文字列を生成する。この事前に定めた行を複数抽出する方法の１つとして、数列を利用する方法がある。この数列は、迷惑メールデータベースに登録してある抽出元データ種類に対応する１つ以上の数列もしくは１つ以上の数列の一般項を用いたものである。ステップＳ１７で生成したテキストを元に、その行の出現位置と数列に出現する数値が一致する行を抽出し、それらの行を結合し１つの文字列を生成する。これを異なる複数の数列に対して行い、そこから生成された複数の文字列のハッシュ値を各々計算し、その各々のハッシュ値と、ステップＳ３６の処理であることを示した情報と、各々の抽出に用いられた数列を共に記憶する（ステップＳ３６、図１１）。【００６０】  ステップＳ３６を図３０にあるようなテキストで処理を行う場合を説明する。事前に迷惑メールデータベースから参照した数列｛ａｎ｝、ここでは仮に一般項ａｎ＝２（ｎ−１）＋１とし、ここからｎ＝１，２，３，４…にて数列を計算する。数列｛ａｎ｝＝｛１，３，５，７…｝となるので、図３０のテキストにある行の位置を前から順番に１，２，３，４…とし、数列｛ａｎ｝にある数値の位置にある行を抽出する。ここでは、数列にある１に対し「ＴＨＥＬＷＥＳＴＰＲＩＣＥＯＦＡＬＭＥＤＳＩＳＨＥＲＥ」、３に対し「ＣＯＤＥＩＮＥ」、５に対し「ＶＡＩＵＭ」、７に対し「ＸＡＮＡＸ」が該当する。このようにして、行が抽出できなくなるまで行い、抽出した順に結合し「ＴＨＥＬＷＥＳＴＰＲＩＣＥＯＦＡＬＭＥＤＳＩＳＨＥＲＥＣＯＤＥＩＮＥ…」といった文字列を生成する（図３２）。ここで生成された文字列から、ＭＤ５やＳＨＡ−１などのハッシュ関数を用いてハッシュ値を計算し、その各々のハッシュ値と、ステップＳ３６の処理であることを示した情報と、各々の抽出にどのような一般項、もしくは数列を用いて計算したのかを共に記憶する。【００６１】  図１０のフローチャートにおいて、図１０のステップＳ３５で生成したテキストを元に、事前に定めた方法で文字を複数抽出する。その抽出した複数の文字を抽出順に結合し１つの文字列を生成する。この事前に定めた文字を複数抽出する方法の１つとして、数列を利用する方法がある。この数列は、迷惑メールデータベースに登録してある抽出元データ種類に対応する１つ以上の数列もしくは１つ以上の数列の一般項を用いたものである。ステップＳ３５で生成したテキストを元に、その文字の出現位置と数列に出現する数値が一致する文字を抽出し、それらの文字を結合し１つの文字列を生成する。これを異なる複数の数列に対して行い、そこから生成された複数の文字列のハッシュ値を各々計算し、その各々のハッシュ値と、ステップＳ３７の処理であることを示した情報と、各々の抽出に用いられた数列を共に記憶する（ステップＳ３７、図１１）。【００６２】  ステップＳ３７を図３１にあるようなテキストで処理を行う場合を説明する。事前に迷惑メールデータベースから参照した数列��ａｎ｝、ここでは仮に一般項ａｎ＝（ｎ−１）２＋１とし、ここからｎ＝１，２，３，４…にて数列を計算する。数列｛ａｎ｝＝｛１，２，５，１０…｝となるので、図３１のテキストにある文字の位置を前から順番に１，２，３，４…とし、数列｛ａｎ｝にある数値の位置にある文字を抽出する。ここでは、数列にある１に対し「Ｔ」、２に対し「Ｈ」、５に対し「Ｗ」、１０に対し「Ｒ」が該当する。このようにして、文字が抽出できなくなるまで行い、抽出した順に結合し「ＴＨＷＲＬＲＤＵＤＥＳ」といった文字列を生成する（図３３）。ここで生成された文字列から、ＭＤ５やＳＨＡ−１などのハッシュ関数を用いてハッシュ値を計算し、その各々のハッシュ値と、ステップＳ３７の処理であることを示した情報と、各々の抽出にどのような一般項、もしくは数列を用いて計算したのかを共に記憶する。【００６３】  図６のフローチャートにおいて、複数ユーザと迷惑メールの情報を共有しているデータベースから定期的に新しい情報を取得しておいたクライアントにあるデータベースの情報と、図７のステップＳ９からステップＳ１８における計算手法にて計算した情報を比較する（ステップＳ３）。ステップＳ９〜Ｓ１０、ステップＳ１２、ステップＳ３１〜Ｓ３４、ステップＳ３５〜Ｓ３７のどの抽出元データ種類及び数列を用いて計算したのかという情報とハッシュ値の情報が共に記憶されているため、同じ抽出元データ種類及び数列を用いて計算されたハッシュ値を迷惑メールデータベースから検索する。ステップＳ１にて受信したメール本文から生成された全てのハッシュ値に対し、迷惑メールデータベースに存在するかどうかという情報を計算、記憶する。ここで検索する情報は、本文に記載されているＵＲＩ、メールアドレス、添付ファイル、本文の事前に定めた箇所を抽出した文字列、及びリダイレクト先のＵＲＩのハッシュ値を計算したものである。【００６４】  図６のフローチャートにおいて、本文に記載されているＵＲＩ、メールアドレス、添付ファイル、及びリダイレクト先のＵＲＩのどれが一致したら迷惑メールであるか、本文の事前に定めた箇所を抽出した文字列のハッシュ値のうちどの程度の割合が一致したら迷惑メールであるかという判定基準を、ユーザは事前に設定しておく。この基準で、ステップＳ４にて、記憶した情報を元にステップＳ１にて受け取ったメールが迷惑メールと判定された場合にステップＳ８へ飛び、迷惑メールと判定されなかった場合にステップＳ５へ飛ぶ（ステップＳ４）。【００６５】  図６のフローチャートにおいて、ステップＳ４にて迷惑メールと判定されなかったメールを、ユーザは実際に目を通してみる。そして、ユーザ自身がその受信したメールを迷惑メールであるか否か判定する（ステップＳ５、Ｓ６）。ユーザ自身が迷惑メールであると判定した場合には、そのメール本文に記載されているＵＲＩ、メールアドレス、添付ファイル、本文の事前に定めた箇所を抽出した文字列、及びリダイレクト先のＵＲＩのハッシュ値を計算したものを、他のユーザと迷惑メールの情報を共有しているデータベースへ新しい迷惑メールの情報として登録する（ステップＳ７）。ステップＳ６にて迷惑メールと判定されない場合には、そのまま処理を終了��る。【００６６】  図６のフローチャートにおいて、ステップＳ４にて迷惑メールと判定されたメール、及びステップＳ５にてユーザ自身が迷惑メールと判定したメールをクライアント及びメールサーバから排除する（ステップＳ８）。
【図面の簡単な説明】
【００６７】
【図１】報告型迷惑メールフィルタリングシステムの他のユーザとの関係を示したブロック図である。（課題を解決するための手段）
【図２】報告型迷惑メールフィルタリングシステムの機能を説明したブロック図である。（課題を解決するための手段）
【図３】記載とは異なるサイトへの誘導を示した説明図である。（課題を解決するための手段）
【図４】文字列処理の例を示した説明図である。（発明が解決しようとする課題）
【図５】メール本文から文字列を抽出、生成しハッシュ値を計算することを示した説明図である。（実施例１）
【図６】報告型迷惑メールフィルタリングシステムの動作フローチャート図である。（実施例１）
【図７】受信したメールのハッシュ値を計算する機能の動作フローチャート図である。（実施例１）
【図８】受信したメールからＵＲＩを抽出しハッシュ値を計算する機能の動作フローチャート図である。（実施例１）
【図９】受信したメールから単語を抽出しハッシュ値を計算する機能の動作フローチャート図である。（実施例１）
【図１０】受信したメールから行、文字を抽出しハッシュ値を計算する動作フローチャート図である。（実施例１）
【図１１】迷惑メールデータベースのデータ構造例を示した説明図である。（実施例１）
【図１２】スキーム名が含まれたＵＲＩの例を示した説明図である。（実施例１）
【図１３】ドメイン名が含まれたＵＲＩの例を示した説明図である。（実施例１）
【図１４】ＩＰアドレスが含まれたＵＲＩの例を示した説明図である。（実施例１）
【図１５】リンクタグにＵＲＩが含まれた文字列の例を示した説明図である。（実施例１）
【図１６】メールアドレスの例を示した説明図である。（実施例１）
【図１７】最後尾の「／」を削除したＵＲＩの例を示した説明図である。（実施例１）
【図１８】ＵＲＩに含まれるメールアドレスの文字列を削除したＵＲＩの例を示した説明図である。（実施例１）
【図１９】スキーム名を追加したＵＲＩの例を示した説明図である。（実施例１）
【図２０】上位ディレクトリのＵＲＩの例を示した説明図である。（実施例１）
【図２１】メールアドレスの例を示した説明図である。（実施例１）
【図２２】リンクタグにメールアドレスが含まれる文字列の例を示した説明図である。（実施例１）
【図２３】迷惑メールの本文の例を示した説明図である。（実施例１）
【図２４】迷惑メールの本文から、認識できる単語だけを抽出した例を示した説明図である。（実施例１）
【図２５】単語を１つの文字列に結合した例を示した説明図である。（実施例１）
【図２６】数列に従い単語を抽出し、結合して１つの文字列を生成した例を示した説明図である。（実施例１）
【図２７】単語とその出現回数を抽出、計算し、結合して１つの文字列を生成した例を示した説明図である。（実施例１）
【図２８】数列に従い単語とその出現回数を抽出し、結合して１つの文字列を生成した例を示した説明図である。（実施例１）
【図２９】迷惑メールの本文の例を示した説明図である。（実施例１）
【図３０】迷惑メールの本文から、空白や記号、数字を削除した例を示した説明図である。（実施例１）
【図３１】全ての行を結合し、１つの文字列を生成した例を示した説明図である。（実施例１）
【図３２】数列に従い行を抽出し、結合して１つの文字列を生成した例を示した説明図である。（実施例１）
【図３３】数列に従い文字を抽出し、結合して１つの文字列を生成した例を示した説明図である。（実施例１）
【符号の説明】
【００６８】  １  メール送受信にユーザ１が使用しているメールサーバ１
２  他のユーザと共有で使用している迷惑メールデータベースサーバ
３  ユーザ１が使用しているクライアントコンピュータ１
４  ユーザ２が使用しているクライアントコンピュータ２
５  ユーザ３が使用しているクライアントコンピュータ３
６  ユーザ１
７  ユーザ２
８  ユーザ３
９  メール送受信にユーザが使用しているメールサーバ
１０  ユーザが使用しているクライアントコンピュータ
１１  メールサーバからメールを受信する機能
１２  受信したメールから文字列を生成し、ハッシュ値を計算する機能
１３  一般的な単語一覧のデータベース
１４  クライアント、及びメールサーバで保存されているメールを削除する機能
１５  過去に迷惑メールとして判定されたメールより生成されたハッシュ値一覧から、クライアントが受信したメールより生成されたハッシュ値を検索する機能
１６  過去に迷惑メールとして判定されたメールより生成されたハッシュ値一覧のデータベース
１７  共有で使用されている迷惑メールデータベースサーバより、最新の情報を取得する機能
１８  ユーザからの入力機能
１９  ユーザへの出力機能
２０  新たな迷惑メールのハッシュ値を共有で使用されている迷惑メールデータベースサーバへ登録する機能
２１  ユーザ
【図１】
2006221586.tif 000003
【図２】
2006221586.tif 000004
【図３】
2006221586.tif 000005
【図４】
2006221586.tif 000006
【図５】
2006221586.tif 000007
【図６】
2006221586.tif 000008
【図７】
2006221586.tif 000009
【図８】
2006221586.tif 000010
【図９】
2006221586.tif 000011
【図１０】
2006221586.tif 000012
【図１１】
2006221586.tif 000013
【図１２】
2006221586.tif 000014
【図１３】
2006221586.tif 000015
【図１４】
2006221586.tif 000016
【図１５】
2006221586.tif 000017
【図１６】
2006221586.tif 000018
【図１７】
2006221586.tif 000019
【図１８】
2006221586.tif 000020
【図１９】
2006221586.tif 000021
【図２０】
2006221586.tif 000022
【図２１】
2006221586.tif 000023
【図２２】
2006221586.tif 000024
【図２３】
2006221586.tif 000025
【図２４】
2006221586.tif 000026
【図２５】
2006221586.tif 000027
【図２６】
2006221586.tif 000028
【図２７】
2006221586.tif 000029
【図２８】
2006221586.tif 000030
【図２９】
2006221586.tif 000031
【図３０】
2006221586.tif 000032
【図３１】
2006221586.tif 000033
【図３２】
2006221586.tif 000034
【図３３】
2006221586.tif 000035