電子メール管理装置及び電子メール管理プログラム及び電子メール管理方法
【課題】返信メールに元のメール本文を引用する環境下おいて、引用形式の設定が任意で変更される場合にも、設定の影響を受けることなく、返信メールから元のメールの引用部分の削除可能な電子メール管理装置を提供する。
【解決手段】メールアーカイブ装置1001では、引用範囲特定部1032は、関連メール検索部1031による検索で関連メールがヒットすると、関連メールと処理対象メールとの本文どうしを行単位で比較して処理対象メール本文における関連メール本文の引用範囲を特定する。引用範囲削除部1006は引用範囲特定部1032により引用範囲が特定された場合に、処理対象メールの本文から引用範囲を削除する。メールデータ登録処理部1007は、引用範囲削除部1006によって引用範囲の削除された処理対象メール本文を処理対象メールのヘッダ情報と関連付けて、過去に送信された電子メールとしてメールデータ記憶装置1008に格納する。
【解決手段】メールアーカイブ装置1001では、引用範囲特定部1032は、関連メール検索部1031による検索で関連メールがヒットすると、関連メールと処理対象メールとの本文どうしを行単位で比較して処理対象メール本文における関連メール本文の引用範囲を特定する。引用範囲削除部1006は引用範囲特定部1032により引用範囲が特定された場合に、処理対象メールの本文から引用範囲を削除する。メールデータ登録処理部1007は、引用範囲削除部1006によって引用範囲の削除された処理対象メール本文を処理対象メールのヘッダ情報と関連付けて、過去に送信された電子メールとしてメールデータ記憶装置1008に格納する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、電子メールを管理する電子メール管理装置、電子メール管理プログラム及び電子メール管理方法に関する。
【背景技術】
【0002】
近年の日常業務において、電子メールは必要不可欠なツールとして浸透している。予定のすり合わせや任意の議題に関する確認事項など、メールをやり取りすることで進めることが一般的となっている。このメールのやり取りを複数回繰り返していく場合、返信メールの本文末尾に元のメール本文を含める環境下では、返信メール参照時にそれまでのメールのやり取りに関する履歴が全て含まれるため見難くなる、これらのメールを全て保存するシステムのストレージ容量を無駄に圧迫する、などの課題があった。このような状況を解決するものとして、以下の特許文献1、特許文献2、特許文献3が存在する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2002−278887号公報
【特許文献2】特開平10−207794号公報
【特許文献3】特開2006−330845号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1〜3に記載のいずれの方法においても、引用部分の各行頭に引用であることを表す引用子(‘>’など)が存在することや、送受信される全てのメールで利用される引用子が1種類であることが、前提となるか、あるいは、それによる制約を受けている。しかし、この返信メールの本文に元のメール本文を含める設定や、元のメール本文を引用するに当たって、行頭に引用子’>’を追加する設定は、現在、一般に広く普及しているメール編集ソフト(Microsoft社製のOutlook Express(Outlookは登録商標)やOutlook(Outlookは登録商標)、Mozilla社製のThunderbird(Thunderbirdは登録商標)などの初期設定に起因するものであり、利用に当たって制限があるわけではない。
【0005】
つまり、ユーザはこれらの設定を個別に任意の形式へ変更可能であり、このような設定変更をしたユーザとメールをやり取りした場合、特許文献2に記載の電子メール表示装置では、期待通りの実行結果を得られない可能性がある。また、一社内で返信メールにおける元のメール本文の引用に関する設定について、特定の規定を設けることは可能であるが、顧客先など社外とのメールのやり取りに対しても同一の規定を適用することを考えると非現実的である。
【0006】
本発明は、返信メールに元のメール本文を引用する環境下で、引用形式の設定が任意で変更される場合にも、設定の影響を受けることなく、返信メールから元のメールの引用部分の削除を行うことができる電子メール管理装置の提供を目的とする。
【0007】
また、社員の送受信したメールを全件保存するシステムにおいて、返信メールに含まれる元のメール本文の引用部分を保存対象外として削除することで、メールアーカイブ機能が必要とするストレージ容量を削減することを目的とする。
【課題を解決するための手段】
【0008】
この発明の電子メール管理装置は、
ヘッダ情報と本文とを含む過去に送信された電子メールを格納するメール格納部と、
他の装置から送信されたヘッダ情報と本文とを含む電子メールであって処理対象となる前記電子メールを示す処理対象メールを記憶する処理対象メール記憶部と、
前記処理対象メール記憶部の記憶する前記処理対象メールに関連する前記電子メールを示す関連メールを、前記メール格納部を対象として所定の検索規則に基づいて検索する関連メール検索部と、
前記関連メール検索部による検索で前記関連メールがヒットした場合に、前記関連メールと前記処理対象メールとの本文どうしを行単位で比較することにより、前記処理対象メールの前記本文における前記関連メールの前記本文の引用範囲を特定する引用範囲特定部と、
前記引用範囲特定部によって前記引用範囲が特定された場合に、前記処理対象メールの前記本文から前記引用範囲を削除する引用範囲削除部と、
前記引用範囲削除部によって前記引用範囲の削除された前記処理対象メールの前記本文を前記処理対象メールの前記ヘッダ情報と関連付けて、前記過去に送信された前記電子メールとして前記メール格納部に格納する格納処理部と
を備えたことを特徴とする。
【0009】
前記メール格納部は、
送受信時における本文の行数を示す本文行数情報が対応付けられた前記電子メールを格納し、
前記電子メール管理装置は、さらに、
前記処理対象メールの前記本文行数情報を前記処理対象メールから抽出する抽出部を備え、
前記引用範囲特定部は、
前記関連メールと前記処理対象メールとの本文どうしを行単位で比較する際に、前記関連メールの本文の先頭行と、前記処理対象メールの本文の最終行から前記関連メールに対応付けられた前記本文行数情報の示す行数だけ先頭行へ向かう位置に存在する行を示す行数対応行との比較を行い、前記比較結果に基づいて前記引用範囲を特定し、
前記格納処理部は、
前記引用範囲削除部によって前記引用範囲の削除された前記処理対象メールの前記本文を前記処理対象メールの前記ヘッダ情報に加え、さらに、前記抽出部によって抽出された前記本文行数情報と関連付けて、前記過去に送信された前記電子メールとして前記メール格納部に格納することを特徴とする。
【0010】
前記引用範囲特定部は、
前記関連メールと前記処理対象メールとの本文どうしを行単位で比較する際に、前記関連メールの本文の先頭行と、前記処理対象メールの前記行数対応行との最大共通部分列の値を求め、求めた前記最大共通部分列の値と前記関連メールの本文の先頭行の長さとを比較し、比較結果に基づいて、前記引用範囲を特定することを特徴とする。
【0011】
前記引用範囲特定部は、
前記関連メールと前記処理対象メールとの本文どうしを行単位で比較する際に、前記関連メールの本文の先頭行と前記処理対象メールの前記行数対応行との比較と、前記関連メールの本文の先頭行と前記処理対象メールの前記行数対応行の直上の行と直下の行との少なくともいずれかの行との比較とに基づいて、前記引用範囲を特定することを特徴とする。
【0012】
前記引用範囲特定部は、
前記関連メールと前記処理対象メールとの本文どうしを行単位で比較する際に、前記関連メールの本文の先頭行と、前記処理対象メールの本文の最終行から前記関連メールの本文の行数だけ先頭行へ向かう位置に存在する行との最大共通部分列の値を求め、求めた前記最大共通部分列の値と前記関連メールの本文の先頭行の長さとを比較し、比較結果に基づいて前記引用範囲を特定することを特徴とする。
【0013】
この発明の電子メール管理プログラムは、
コンピュータを、
ヘッダ情報と本文とを含む過去に送信された電子メールを格納するメール格納部、
他の装置から送信されたヘッダ情報と本文とを含む電子メールであって処理対象となる前記電子メールを示す処理対象メールを記憶する処理対象メール記憶部、
前記処理対象メール記憶部の記憶する前記処理対象メールに関連する前記電子メールを示す関連メールを、前記メール格納部を対象として所定の検索規則に基づいて検索する関連メール検索部、
前記関連メール検索部による検索で前記関連メールがヒットした場合に、前記関連メールと前記処理対象メールとの本文どうしを行単位で比較することにより、前記処理対象メールの前記本文における前記関連メールの前記本文の引用範囲を特定する引用範囲特定部、
前記引用範囲特定部によって前記引用範囲が特定された場合に、前記処理対象メールの前記本文から前記引用範囲を削除する引用範囲削除部、
前記引用範囲削除部によって前記引用範囲の削除された前記処理対象メールの前記本文を前記処理対象メールの前記ヘッダ情報と関連付けて、前記過去に送信された前記電子メールとして前記メール格納部に格納する格納処理部、
として機能させることを特徴とする。
【0014】
この発明の電子メール管理方法は、
メール格納部と、処理対象メール記憶部と、関連メール検索部と、引用範囲特定部と、引用範囲削除部と、格納処理部とを備えた電子メール管理装置が行う電子メール管理方法であって、
前記メール格納部が、
ヘッダ情報と本文とを含む過去に送信された前記電子メールを格納し、
前記処理対象メール記憶部が、
端末装置から送信されたヘッダ情報と本文とを含む電子メールであって処理対象となる前記電子メールを示す処理対象メールを記憶し、
前記関連メール検索部が、
前記処理対象メール記憶部の記憶する前記処理対象メールに関連する前記電子メールを示す関連メールを、前記メール格納部を対象として所定の検索規則に基づいて検索し、
前記引用範囲特定部が、
前記関連メール検索部による検索で前記関連メールがヒットした場合に、前記関連メールと前記処理対象メールとの本文どうしを行単位で比較することにより、前記処理対象メールの前記本文における前記関連メールの前記本文の引用範囲を特定し、
前記引用範囲削除部が、
前記引用範囲特定部によって前記引用範囲が特定された場合に、前記処理対象メールの前記本文から前記引用範囲を削除し、
前記格納処理部が、
前記引用範囲削除部によって前記引用範囲の削除された前記処理対象メールの前記本文を前記処理対象メールの前記ヘッダ情報と関連付けて、前記過去に送信された前記電子メールとして前記メール格納部に格納することを特徴とする。
【発明の効果】
【0015】
この発明によれば、返信メールに元のメール本文を引用する環境下おいて、引用形式の設定が任意で変更される場合にも、設定の影響を受けることなく、返信メールから元のメールの引用部分の削除可能な電子メール管理装置を提供できる。
【図面の簡単な説明】
【0016】
【図1】実施の形態1のメールアーカイブ装置1001の構成図。
【図2】実施の形態1のメールアーカイブ装置1001を適用した電子メールシステム2000の構成図。
【図3】実施の形態1のメールデータ記憶装置1008のリレーショナルデータベースシステムを構成する各テーブル構成を示す図。
【図4】実施の形態1のメールアーカイブ装置1001の適用可能なメール送受信の具体例を示す図。
【図5】実施の形態1の発信メールM0を示す図。
【図6】実施の形態1の返信メールM1を示す図。
【図7】実施の形態1の返信メールM2を示す図。
【図8】実施の形態1のメールアーカイブ装置1001の動作を示すフローチャート。
【図9】図8を補足する図。
【図10】図8を補足する別の図。
【図11】実施の形態2のメールアーカイブ装置1001の動作を示すフローチャート。
【図12】図11を補足する図。
【図13】実施の形態3のメールアーカイブ装置1001の動作を示すフローチャート。
【図14】図13を補足する図。
【図15】図13を補足する別の図。
【図16】実施の形態4のメールアーカイブ装置1001の外観を示す図。
【図17】実施の形態4のメールアーカイブ装置1001のハードウェア資源を示す図。
【発明を実施するための形態】
【0017】
実施の形態1.
図1は、実施の形態1のメールアーカイブ装置1001(電子メール管理装置)の構成を示すブロック図である。メールアーカイブ装置1001は、メール取込処理部1002(抽出部)と、関連メール検索部1031及び引用範囲特定部1032とを有する返信メール解析処理部1003と、引用範囲削除部1006と、メールデータ登録処理部1007(格納処理部)と、メールデータ記憶装置1008(メール格納部)と、処理対象メール記憶部1009を備えている。これらの機能は、動作の説明で後述する。
【0018】
図2は、実施の形態1のメールアーカイブ装置1001を適用した電子メールシステム2000の構成図である。メール端末装置2005〜2007(他の装置の一例)を操作するユーザが送受信する電子メール(以下、メールともいう)は、LAN/WAN2004を通ってメールサーバ2001を介し、社外インターネット2002へと通信される。ここで、メール送受信の際に、メールサーバ2001がメールアーカイブ装置1001へ送受信されるメールのコピーを送るなどして、このメールサーバ2001を介するメール全件のアーカイブを作成する。メールアーカイブ装置1001はメールサーバ2001から受信した電子メールを処理対象として、処理対象メール記憶部1009に記憶する。なお、図2中のメール端末2005等は1台以上の任意の台数でよい。
【0019】
(各種テーブルの説明)
図3は、メールアーカイブ装置1001のメールデータ記憶装置1008に格納される各テーブルを示す図である。
(1)ユーザテーブル3001は、電子メールシステム2000を利用するユーザごとに割り当てられたメールアドレスを保存するテーブルである。
(2)発信メールテーブル3002(”mail_table”3002ともいう)は、電子メールシステム2000を介して送受信されたメールの一部を、メールの各ヘッダ情報とあわせて保存するテーブルである。
(3)返信メールテーブル3003(”reply_table”3003ともいう)は、電子メールシステム2000を介して送受信された返信メール(発信メールテーブル3002に保存されているメールに対する返信メール)を、メールのヘッダ情報とあわせて保存するテーブルである。
【0020】
図4は、メールアーカイブ装置1001が処理対象とするメールの、送受信の様子を示した図である。本実施の形態1では、この図4で示す場合を例として説明する。なお、以降の説明では、図4に示すように、会社Aのユーザから会社Bへ「最初に」送信されるメールを“発信メールM0”と呼ぶ。この発信メールM0に対する返信として会社Bから会社Aへ送信(返信)されるメールを“返信メールM1”と呼び、さらにこの返信メールM1に対する返信として会社Aから会社Bへ送信(返信)されるメールを“返信メールM2”と呼ぶこととする。さらに、返信メールM1および返信メールM2を含めた、返信に対する返信を総じて“返信メールMk(以下kは1以上の整数)”と呼ぶこととする。M2、M4のようにkが偶数の場合は会社Aから会社Bへの返信メールである。また、M1、M3のようにkが奇数の場合は会社Bから会社Aへの返信メールである。
【0021】
図5〜図7は、図4の発信メールM0、返信メールM1、返信メールM2のそれぞれの本文の具体例を示したものである。図5等の左側に示す数字は行番号である。図5、図6、図7等は、後述の動作説明で参照する。
【0022】
図8は、メールアーカイブ装置1001の動作を示したフローチャートである。
図9は、図8のフローチャートによる処理の概要を示す図である。図8は、図9に示すように、
(1)発信メールM0(本文M(0))は、”mail_table”3002に登録される。
(2)返信メールM1(本文M(0)、M(1))は、発信メールM0の引用範囲M(0)が削除され、返信メールM1で新たに記載された本文M(1)のみが”reply_table”3003に登録される。
(3)返信メールM2(本文M(0)、M(1)、M(2))は、返信メールM1と同様に、引用範囲M(0)、M(1)が削除され、本文M(2)のみが”reply_table”3003に登録される。
(4)返信メールM3(本文M(0)、M(1)、M(2)、M(3))も同様に、引用範囲M(0)〜M(2)が削除され、本文M(3)のみが”reply_table”3003に登録される。これら発信メールM0あるいは返信メールMkがテーブルに登録される際には、そのヘッダ情報と共に登録される。これら登録はメールデータ登録処理部1007により実行される。以下、図8をステップごとに順に説明する。
【0023】
まず、ステップS601において、関連メール検索部1031は、処理対象メール記憶部1009から処理対象メールを取り出す。関連メール検索部1031は、取り出した処理対象メールから、ヘッダ情報(MessageId,Reference,From,To,Cc,Subjectの各情報を含む。)を抽出する。関連メール検索部1031は、これらの組み合わせをキーとした検索を”mail_table”3002に対して行う。この検索は、処理対象メールが”mail_table”3002に登録されているかどうかのチェックである。この検索では、処理対処メールに対する発信メールM0を検索する。この検索は、処理対象メールのヘッダ情報及び”mail_table”3002に記録されているヘッダ情報から検索することができる(所定の検索規則の一例)。登録されていなければ処理対象メールは発信メールM0であり、登録されていれば処理対象メールは返信メールMkである。なお、本実施の形態1では、この検索におけるキーを「ヘッダ情報」(MessageId,Reference,From,To,Cc,Subject)の組み合わせとし、”mail_table”3002および”reply_table”3003のテーブル構成もこれに準じたものとしている。しかし、ここで挙げたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)以外のものを追加してもよい。
【0024】
次に、ステップS602において、ステップS601でmail_table”3002に検索結果が存在しない場合(ヒットしない場合)、処理対象メールは発信メールM0に分類できる。したがって、この場合、処理はステップS603へ進む。
【0025】
ステップS603では、メールデータ登録処理部1007が、発信メールM0である処理対象メールを、”mail_table”3002へ保存する処理を実行する。メールデータは、処理対象メールの本文のほか、S601の検索でキーとしたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)も含まれる。メールデータ登録処理部1007によるメールデータ記憶装置1008への登録が完了すると、本フローチャートは終了する。
【0026】
ステップS602におけるもう一方のケース、ステップS601の検索結果(関連メール)が存在する場合、処理対象メールは返信メールMkに分類できる。したがって、この場合、ステップS604へ進む。
【0027】
ステップS604では、引用範囲特定部1032が、ステップS601の検索結果(ヒットした)となったメール(発信メールM0(関連メール))の本文M(0)を取得し、その行数をカウントしてステップS605へ進む。
【0028】
図10は、ステップS605の処理を説明する図である。ステップS605では、引用範囲特定部1032は、返信メールMk(M(0)+M(1)+・・)である処理対象メールMkにおいて、ステップS604でカウントしたM(0)の行数分、処理対象メールMk本文(M(0)+M(1)+・・+M(k))の最終行から前方(先頭行方向)へ移動する。図10は、M(0)は3行とする。処理対象メールMkの移動先の行11と、ステップS601の検索結果となった発信メールM0の本文の先頭行12を対象に、引用範囲特定部1032は、最長共通部分文字列(LCS:Longest Common Subsequence)長を求める。例えば、移動先の行11が「>abc」であり、先頭行12が「abc」であれば、LCS値は「3」である。
【0029】
次に、ステップS606において、引用範囲特定部1032は、ステップS605で求めたLCS値と、ステップS601の検索結果となった発信メールM0の本文の先頭行12の長さを比較する。先頭行12が「abc」の例では、長さは同一になる。この比較結果が等しくない場合、引用範囲特定部1032の処理は、ステップS607へ進む。
【0030】
ステップS607では、引用範囲特定部1032は、ステップS605でLCS対象とした処理対象メールの本文の行11が、処理対象メールMkの本文の先頭行であるかどうかを調べる。行11が、処理対象メール本文の先頭行でない場合、ステップS608へ進む。
【0031】
ステップS608では、引用範囲特定部1032は、図10に示すように、ステップS605でLCS対象とした処理対象メールMkの本文の行11から1行分前方へ移動し、この移動先の行13と、ステップS601の検索結果となったメールの本文の先頭行12を対象に、再度LCSを求める。以降は、引用範囲特定部1032の処理はステップS606へ進み、これらの処理を繰り返して実行する。
【0032】
ステップS607におけるもう一方のケース、すなわち、ステップS605でLCS対象とした処理対象メールMkの本文の行11が、処理対象メールMkの本文の先頭行である場合、処理は、ステップS609へ進む。
【0033】
ステップS609では、メールデータ登録処理部1007が、処理対象メールMkを”reply_table”3003へ保存する処理を実行する。すなわちS607のYESの場合は、処理対象メールMkに、ヒットした発信メールM0の引用がなかったことになるので、ステップS610の引用範囲の削除処理を経ることなく”reply_table”3003へ保存する。保存されるメールデータは、処理対象メールMkの本文M(k)のほか、ステップS601の検索でキーとしたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)も含まれる。メールデータ記憶装置1008への登録が完了したら、本フローチャートは終了する。
【0034】
ステップS606におけるもう一方のケース、ステップS605で求めたLCS値と、ステップS601の検索結果となったメールの本文先頭行の長さの比較結果が等しい場合、処理は、ステップS610へ進む。
【0035】
ステップS610では、引用範囲削除部1006は、図10で示すように、ステップS606の比較結果から、処理対象メールMkにおいて、ステップS601の検索結果となった発信メールM0の本文の引用は、ステップS605でLCS対象とした処理対象メールMkの本文の行11から最終行までであると判断し、この引用範囲(図10では3行)を重複部分として処理対象メールMkから削除する。
【0036】
次に、ステップS611において、関連メール検索部1031が、ステップS601と同様の検索を”reply_table”3003に対して行う。関連メール検索部1031は、この検索において、処理対処メールに対する返信メールを検索するが、S611〜S620、S611のループでは、最も過去の返信メールから順に検索する。図9のM3の例でいえば、M1,M2の順に検索し、この検索は、処理対象メールのヘッダ情報及び”reply_table”3003に記録されているヘッダ情報から検索することができる(所定の検索規則の一例)。
【0037】
ステップS612において、ステップS611の検索結果が存在しない場合、ステップS613へ進む。
【0038】
ステップS613では、ステップS612の結果から、メールデータ登録処理部1007は、処理対象メールMkに、これ以上の引用部分は存在しないと判断して、処理対象メールMkを”reply_table”3003へ保存する処理を実行する。メールデータは、処理対象メールMkの本文のほか、S611の検索でキーとしたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)も含まれる。メールデータ記憶装置1008への登録が完了したら、本フローチャートは終了する。
【0039】
ステップS612におけるもう一方のケース、ステップS611で実行する検索結果が存在する場合、ステップS614へ進む。
【0040】
ステップS614では、引用範囲特定部1032は、ステップS604と同様に、ステップS611で検索結果となったメール(処理対象メールMkよりも以前の返信メールMi(i<k)、以下Miと記す)の本文を取得し、その行数をカウントしてステップS615へ進む。
【0041】
ステップS615では、ステップS605と同様に、引用範囲特定部1032は、ステップS610で重複部分を削除後の処理対象メールMkにおいて、ステップS614でカウントした行数分、処理対象メールMkの本文最終行から前方へ移動する。この移動先の行と、ステップS611の検索結果となった返信メールMiの本文先頭行を対象に、再度LCSを求める。
【0042】
次に、ステップS616において、引用範囲特定部1032は、ステップS615で求めたLCS値と、ステップS611の検索結果となった返信メールMiの本文先頭行の長さを比較する。この比較結果が等しくない場合、引用範囲特定部1032の処理は、ステップS617へ進む。
【0043】
ステップS617では、ステップS607と同様に、引用範囲特定部1032は、ステップS615でLCS対象とした処理対象メールの本文の行が、処理対象メールの本文先頭行であるかどうかについて調べる。処理対象メールの本文先頭行でない場合、ステップS618へ進む。
【0044】
ステップS618では、引用範囲特定部1032は、ステップS615でLCS対象とした処理対象メールの本文の行から1行分前方(先頭行方向)へ行を移動し、この移動先の行と、ステップS611の検索結果となった返信メールMiの本文先頭行とを対象に、再度LCSを求める。以降、引用範囲特定部1032の処理はステップS616へ進み、処理を繰り返して実行する。
【0045】
ステップS617におけるもう一方のケース、すなわち、ステップS615でLCS対象とした処理対象メールの本文の行が、処理対象メールの本文先頭行である場合、処理はステップS619へ進む。
【0046】
ステップS619では、メールデータ登録処理部1007が、返信メールである処理対象メールMkを”reply_table”3003へ保存する処理を実行する。メールデータは、処理対象メールMkの本文のほか、S611の検索でキーとしたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)も含まれる。メールデータ記憶装置1008への登録が完了したら、本フローチャートは終了する。
【0047】
ステップS616におけるもう一方のケース、すなわちステップS615で求めたLCS値と、ステップS611の検索結果となったメールの本文先頭行の長さの比較結果とが等しい場合、処理はステップS620へ進む。
【0048】
ステップS620では、引用範囲削除部1006が、ステップS616の比較結果から、処理対象メールにおいて、ステップS611の検索結果となったメールの本文の引用は、ステップS615でLCS対象とした処理対象メールの本文の行から最終行までであると判断し、この引用範囲を重複部分として処理対象メールから削除する。
【0049】
ステップS620の処理完了後は、ステップS611に再び進み、以降同様の処理を繰り返していく。
【0050】
以上のように、実施の形態1のメールアーカイブ装置1001によれば、例えばメール編集ソフトにおいて、返信メールに元のメール本文を引用している環境下で、設定が任意で変更されている送受信メールを管理する場合に、参照不要な過去のメールの引用部分を削除することができる。
【0051】
また、実施の形態1のメールアーカイブ装置1001を、例えば、社内のメールシステムにおいて、コンプライアンスの観点から社員が送受信したメールを全件保存しておき、素早く検索可能な状態とするシステムに適用することで、返信メールに含まれる元のメール本文の引用部分を保存対象外として削除するので、メールアーカイブ機能の必要とするストレージ容量を削減することができる。
【0052】
実施の形態2.
実施の形態1では、処理対象のメールが返信メールに分類でき、かつ、その返信回数が複数回におよぶ場合、ステップS611における”reply−table”3003に対する検索が返信回数分実行されることになり、効率が悪い。そこで、本実施の形態2では、前述のようなメールに対して、より効率よく処理できる方式を提案する。
【0053】
はじめに、”mail_table”3002および”reply_table”3003に”line_count”(本文行数情報)というカラム(図示していない)を追加する。この”line_count”には、メール送受信時の引用を含むメール本文全体の行数をカウントしておき、この行数を保存する。例えば、図5〜図7における、発信メールM0、返信メールM1、返信メールM2の”line_count”は、それぞれ7、16、27である。すなわち”line_count”は、送受信時(引用範囲の削除されていない状態)におけるメール本文の行数を示す情報である。”line_count”は、メール取込処理部1002(抽出部)が、メールから抽出し、”mail_table”3002、”reply_table”3003に、ヘッダ情報に関連付けて登録する。
【0054】
図11は、実施の形態2における、メールアーカイブ装置1001の詳細動作を示したフローチャートである。図12は、図11のフローチャートによる処理の概要を示す図である。図12の返信メールM2に着目すると、返信メールM2では引用範囲であるM(0)、M(1)が削除されることになる。実施の形態1では、引用範囲特定部1032は、M(0)、M(1)に対して、都度、”reply−table”3003を検索(図8のS611)していた。これに対して実施の形態2では、”line_count”の情報(本文行数情報)を持たせることで、”reply−table”3003の参照が1回で済むことになる。すなわち、返信メールM2については、すでに”reply−table”3003に登録されている返信メールM1の”line_count”から、図12に示すように、M(0)、M(1)を一括に削除できる。返信メールM3についても、すでに”reply−table”3003に登録されている返信メールM2の”line_count”から、M(0)〜M(2)を一括に削除できる。以下では、図11のフローチャートをステップごとに説明していく。
【0055】
まず、ステップS701において、関連メール検索部1031は、処理対象メール記憶部1009から処理対象メールを取り出す。関連メール検索部1031は、取り出した処理対象メールから、ヘッダ情報(MessageId,Reference,From,To,Cc,Subject)を抽出して、これらの組み合わせをキーとした検索を”reply_table”3003に対して行う。関連メール検索部1031は、この検索において、直前の返信メールを検索する。なお、実施の形態2では、この検索におけるキーをヘッダ情報(MessageId,Reference,From,To,Cc,Subject)の組み合わせとし、”mail_table”3002および”reply_table”3003のテーブル構成もこれに準じたものとしているが、ここで挙げたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)以外のものを追加してもよい。
【0056】
ステップS702において、ステップS701の検索結果が存在する場合、すなわち、処理対象メール直前の返信メールMi(関連メール)が存在する場合、処理対象メールは返信メールMi+1(k>i)に分類できる。したがって、この場合、ステップS703へ進む。
【0057】
ステップS703では、引用範囲特定部1032は、ステップS701の検索結果(ヒットした)となった返信メールMiの”line_count”を取得し、ステップS704へ進む。
【0058】
ステップS704では、引用範囲特定部1032は、図12で説明した返信メールM2、M3等のように、処理対象メールMi+1において、ステップS703で取得した”line_count”値分、処理対象メールMi+1の本文の最終行から前方へ移動する。
引用範囲特定部1032は、この移動先の行(行数対応行)と、ステップS701の検索結果となったメールの本文先頭行を対象に、最長共通部分文字列(LCS)長を求める。
【0059】
次に、ステップS705において、引用範囲特定部1032は、ステップS704で求めたLCS値と、ステップS701の検索結果となった返信メールMiの本文先頭行の長さを比較する。この比較結果が等しくない場合、ステップS706へ進む。
【0060】
ステップS706では、引用範囲特定部1032は、ステップS704でLCS対象とした処理対象メールの本文の行が、処理対象メールの本文の先頭行であるかどうかについて調べる。処理対象メール本文の先頭行でない場合、ステップS707へ進む。
【0061】
ステップS707では、引用範囲特定部1032は、ステップS704でLCS対象とした処理対象メールの本文の行から1行分前方へ移動し、この移動先の行と、ステップS701の検索結果となったメールの本文先頭行を対象に、再度LCSを求める。以降は、ステップS705へ進み、処理を繰り返して実行する。
【0062】
ステップS706におけるもう一方のケース、すなわちステップS704でLCS対象とした処理対象メールの本文の行が、処理対象メール本文の先頭行である場合、処理はステップS708へ進む。
【0063】
ステップS708では、メールデータ登録処理部1007が処理対象メールMi+1を”reply_table”3003へ保存する処理を実行する。メールデータは、処理対象メールの本文のほか、ステップS701の検索でキーとしたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)も含まれる。メールデータ記憶装置1008への登録が完了したら、本フローチャートは終了する。
【0064】
ステップS705におけるもう一方のケース、すなわち、ステップS704で求めたLCS値と、ステップS701の検索結果となったメールの本文先頭行の長さの比較結果が等しい場合、処理はステップS709へ進む。
【0065】
ステップS709では、ステップS705の比較結果から、引用範囲削除部1006は、処理対象メールMi+1において、ステップS701の検索結果となった返信メールMiの本文の引用は、ステップS704でLCS対象とした処理対象メールの本文の行から最終行までであると判断し、この引用範囲を重複部分として処理対象メールから削除する。
【0066】
ステップS709の処理完了後は、ステップS708に進み、前述の処理を実行して本フローチャートは終了する。
【0067】
次に、ステップS702において、ステップS701の検索結果が存在しない場合(処理対象メールの返信メールの登録がない場合)、処理はステップS710へ進む。
【0068】
ステップS710では、関連メール検索部1031が、ステップS701と同様の検索を”mail_table”3002に対して行う。
【0069】
ステップS711において、ステップS710の検索結果が存在しない場合(テーブル3002に未登録の場合)、ステップS711の結果から、処理対象メールは発信メールM0に分類できる。したがって、この場合、処理はステップS712へ進む。
【0070】
ステップS712では、メールデータ登録処理部1007が、処理対象メールM0を”mail_table”3002へ保存する処理を実行する。メールデータは、処理対象メールの本文のほか、ステップS710の検索でキーとしたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)も含まれる。メールデータ記憶装置1008への登録が完了したら、本フローチャートは終了する。
【0071】
ステップS711におけるもう一方のケース、ステップS710の検索結果が存在する場合、ステップS711の結果から、処理対象メールは返信メールに分類できる。この場合は、発信メールテーブル3002に登録があり、かつ、返信メールテーブル3003に登録がない(S702のNO)状態であるので、処理対象メールは、最初の返信メールM1である。したがって、この場合、処理はステップS713へ進む。
【0072】
ステップS713では、ステップS703と同様に、引用範囲特定部1032は、ステップS710で検索結果となった発信メールM0(関連メール)の”line_count”を取得し、ステップS714へ進む。
【0073】
ステップS714では、ステップS704と同様に、引用範囲特定部1032は、ステップS713で取得した”line_count”値分、処理対象メールMi+1の本文最終行から前方へ移動する。この移動先の行と、ステップS710の検索結果となった発信メールM0の本文先頭行を対象に、再度LCSを求める。
【0074】
次に、ステップS715において、引用範囲特定部1032は、ステップS714で求めたLCS値と、ステップS710の検索結果となった返信メールM0の本文先頭行の長さを比較する。この比較結果が等しくない場合、ステップS716へ進む。
【0075】
ステップS716では、引用範囲特定部1032は、ステップS714でLCS対象とした処理対象メールMi+1の本文の行が、処理対象メールMi+1の本文先頭行であるかどうかについて調べる。処理対象メールMi+1の本文先頭行でない場合、ステップS717へ進む。
【0076】
ステップS717では、引用範囲特定部1032は、ステップS714でLCS対象とした処理対象メールMi+1の本文の行から1行分前方へ移動し、この移動先の行と、ステップS710の検索結果となった発信メールM0の本文先頭行を対象に、再度LCSを求める。以降は、ステップS715へ進み、処理を繰り返して実行する。
【0077】
ステップS716におけるもう一方のケース、すなわち引用範囲特定部1032は、ステップS714でLCS対象とした処理対象メールの本文の行が、処理対象メールの本文先頭行である場合、ステップS718へ進む。
【0078】
ステップS718では、メールデータ登録処理部1007が、処理対象メールMi+1を”reply_table”3003へ保存する処理を実行する。メールデータは、処理対象メールの本文のほか、ステップS710の検索でキーとしたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)も含まれる。メールデータ記憶装置1008への登録が完了すると、本フローチャートは終了する。
【0079】
ステップS715におけるもう一方のケース、すなわち、ステップS714で求めたLCS値と、ステップS710の検索結果となったメールの本文先頭行の長さの比較結果とが等しい場合、処理はステップS719へ進む。
【0080】
ステップS719では、ステップS715の比較結果から、引用範囲削除部1006は、処理対象メールMi+1において、ステップS710の検索結果となった発信メールM0の本文の引用は、ステップS714でLCS対象とした処理対象メールの本文の行から最終行までであると判断し、この引用範囲を重複部分として処理対象メールから削除する。この処理は、図12のM1に対応する。
【0081】
ステップS719の処理完了後は、処理はステップS718(メールデータ登録処理部1007による登録処理)に進み、前述の処理を実行して本フローチャートは終了する。
【0082】
以上の実施の形態2のメールアーカイブ装置1001では、”line_count”の情報に従って引用範囲を削除するので、発信メールテーブル3003の参照回数が1回で済むので、処理の迅速化を図ることができる。
【0083】
実施の形態3.
図14は処理対象メールにおいて、引用行の行数が増えている例を示している。図14では、引用元の行が「abcdefg」である場合に、引用先の処理対象メールで「>abcde」と「>fg」との2行にわたっている例を示した。前述の実施の形態2では、図14のように、処理対象メールが返信メールに分類でき、かつ、引用範囲における各行頭に引用記号(‘>’など)が付くことで改行コードが追加され、引用元のメールの本文よりも行数が増加している場合に、処理対象メールにおける引用範囲を正確に判別できなくなる。そこで、実施の形態3のメールアーカイブ装置1001では、このような場合においても、引用範囲を正確に判別し、重複部分を削除できる方式を提案する。
【0084】
本実施の形態3では、実施の形態2の図11のフローチャートの、ステップS705〜S706、および、ステップS715〜S716の間に、図13のフローチャートを挿入した処理方式を適用する。以下では、図13に示すフローチャートをステップごとに説明いく。
【0085】
まず、ステップS801において、引用範囲特定部1032の処理は、図11のステップS705またはS715の判定結果がNOとなり、図13のフローチャートに切り替わり、ステップS802へ進む。
【0086】
次に、ステップS802において、引用範囲特定部1032は、ステップS704またはS714で求めたLCS値とLCS対象となった処理対象メールの本文行の長さとの差分をα、ステップS704またはS714で求めたLCS値とステップS701またはS710で検索結果となったメールの本文先頭行の長さとの差分をβとしてそれぞれ求め、ステップS803へ進む。ステップS704で求めたLCS値とは、処理対象メール本文の移動行と、検索結果のメール本文の先頭行とのLCS値である。図14の例では、ステップS704におけるLCS値は、「2」である。また、図14の例では「処理対象メールの本文行の長さ」は「>fg」の「3」である。
よって、この例では、
差分α=「1」
である。
また、「検索結果となったメールの本文先頭行の長さ」は図14では、「abcdefg」の「7」である。よってこの例では、
差分β=「5」
である。
【0087】
次に、ステップS803において、引用範囲特定部1032は、処理対象メールの参照先を1行下方向へ移動する。
図15は、図14において、処理対象メールの参照先を1行下方向へ移動した状態を示す。
【0088】
ステップS804において、引用範囲特定部1032は、処理対象メールの移動先行の長さと、ステップS802で求めた差分αと差分βの合計値とを比較する。
図15の例では、
処理対象メールの移動先行の長さ=「6」、
であり、
差分α+差分β=1+5=6、
である。
よって、図15の例では等しくなる。この比較結果が等しくない場合、引用範囲特定部1032の処理は、ステップS805へ進む。
【0089】
ステップS805では、引用範囲特定部1032は、ステップS803で下方向へ移動した処理対象メールの参照先を、反対の1行上方向へ移動する。
【0090】
ステップS806では、ステップS804と同様に、引用範囲特定部1032は、処理対象メールの移動先行の長さと、ステップS802で求めた差分αと差分βの合計値とを比較する。この比較結果が等しくない場合、ステップS807へ進む。
【0091】
ステップS807では、図11のフローチャートに再度切り替わり、引用範囲特定部1032の処理は、ステップS706またはステップS716へそれぞれ進む。
【0092】
ステップS806におけるもう一方のケース、すなわち処理対象メールの移動先行の長さと、ステップS802で求めた差分αと差分βの合計値の比較結果が等しい場合、引用範囲特定部1032は、ステップS808へ進む。
【0093】
ステップS804におけるもう一方のケース、処理対象メールの移動先行の長さと、ステップS802で求めた差分αと差分βの合計値の比較結果が等しい場合、引用範囲特定部1032の処理はステップS808へ進む。
【0094】
ステップS808では、引用範囲特定部1032は、処理対象メールにおけるステップS803またはS805での移動先行と、ステップS701またはS710の検索結果のメールの本文先頭行を対象に、LCS値を求める。このLCS値と、ステップS704またはS714におけるLCS値との合計値を求める。
【0095】
次に、ステップS809において、引用範囲特定部1032は、ステップS808で求めたLCS合計値と、ステップS701またはS710の検索結果のメールの先頭行の長さとを比較する。この比較結果が等しくない場合、引用範囲特定部1032の処理はステップS807へ進む。
【0096】
ステップS807では、前述の通り図11のフローチャートに再度切り替わる。
【0097】
ステップS809におけるもう一方のケース、すなわち、ステップS808で求めたLCS合計値と、ステップS701またはS710の検索結果のメールの先頭行の長さの比較結果が等しい場合、ステップS810へ進む。
【0098】
ステップS810では、図11のフローチャートに再度切り替わり、ステップS709またはステップS719へそれぞれ進む。
【0099】
このように実施の形態3のメールアーカイブ装置1001では、引用範囲特定部1032が、関連メールと処理対象メールとの本文どうしを行単位で比較する際に、関連メールの本文の先頭行と処理対象メールの行数対応行との比較と、関連メールの本文の先頭行と処理対象メールの行数対応行の直上の行と直下の行との少なくともいずれかの行との比較とに基づいて、引用範囲を特定する。よって、実施の形態3のメールアーカイブ装置1001では、引用元のメールの本文よりも返信メール本文での引用部分の行数が増加している場合にも、処理対象メールにおける引用範囲を正確に判別できる。
【0100】
実施の形態4.
図16、図17を参照して実施の形態4を説明する。実施の形態4は、コンピュータであるメールアーカイブ装置1001のハードウェア構成を説明する。
図16は、メールアーカイブ装置1001の外観の一例を示す図である。
図17は、メールアーカイブ装置1001のハードウェア資源の一例を示す図である。
【0101】
外観を示す図16において、メールアーカイブ装置1001は、システムユニット830、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置813、キーボード814(Key・Board:K/B)、マウス815、コンパクトディスク装置818(CDD:Compact Disk Drive)などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニット830は、メールサーバ2001を介してネットワークに接続している。
【0102】
またハードウェア資源を示す図17において、メールアーカイブ装置1001は、プログラムを実行するCPU810(Central Processing Unit)を備えている。CPU810は、バス825を介してROM(Read Only Memory)811、RAM(Random Access Memory)812、表示装置813、キーボード814、マウス815、通信ボード816、CDD818、磁気ディスク装置820と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置820の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
【0103】
RAM812は、揮発性メモリの一例である。ROM811、CDD818、磁気ディスク装置820等の記憶媒体は、不揮発性メモリの一例である。これらは、「記憶装置」あるいは記憶部、格納部、バッファの一例である。通信ボード816、キーボード814などは、入力部、入力装置の一例である。また、通信ボード816、表示装置813などは、出力部、出力装置の一例である。通信ボード816は、メールサーバ2001を介してネットワークに接続されている。
【0104】
磁気ディスク装置820には、オペレーティングシステム821(OS)、ウィンドウシステム822、プログラム群823、ファイル群824が記憶されている。プログラム群823のプログラムは、CPU810、オペレーティングシステム821、ウィンドウシステム822により実行される。
【0105】
上記プログラム群823には、以上の実施の形態の説明において「〜部」として説明した機能を実行するプログラムが記憶されている。プログラムは、CPU810により読み出され実行される。
【0106】
ファイル群824には、以上の実施の形態の説明において、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明した情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU810によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【0107】
また、以上に述べた実施の形態の説明において、データや信号値は、RAM812のメモリ、CDD818のコンパクトディスク、磁気ディスク装置820の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス825や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【0108】
また、以上の実施の形態の説明において、「〜部」として説明したものは、「〜手段」、であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明したものは、ソフトウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU810により読み出され、CPU810により実行される。すなわち、プログラムは、以上に述べた「〜部」としてコンピュータを機能させるものである。あるいは、以上に述べた「〜部」の手順や方法をコンピュータに実行させるものである。
【0109】
以上の実施の形態では、メールアーカイブ装置1001を説明したが、メールアーカイブ装置1001を、コンピュータをメールアーカイブ装置1001として機能させるためのプログラム(電子メール管理プログラム)としても把握できることは以上の説明から明らかである。また、メールアーカイブ装置1001の動作を、メールアーカイブ装置1001が実行する方法(電子メール管理方法)として把握することがきることも以上の説明から明らかである。
【0110】
以上の実施の形態では以下を特徴とするメールアーカイブ装置を説明した。
メールサーバを介して送受信される任意のメールに対して、
メールヘッダに含まれる”MessageId”,“Reference”,“From”,“To”,“Cc”,“Subject”等の各ヘッダ情報、および、本文や添付ファイル内容を示すテキスト情報を抽出する、メール取込処理部と、
メール取込処理部で抽出した各ヘッダ情報を利用して、処理対象メールより以前に送受信されたメールの中から関連性の高いメールを検索する関連メール検索部と、
前述の関連メール検索部による検索結果の関連メールと処理対象メールの本文を行単位で比較することで、処理対象メールにおける関連メールの引用範囲を特定する引用範囲特定部とから構成され、
処理対象メールが返信メールか否かを判断し、かつ、そのメール内の引用範囲まで特定することを特徴とする返信メール解析処理部と、
返信メール解析処理部で特定した関連メールの引用範囲を取り除く、引用範囲削除部と、
メール取込処理部で抽出した各ヘッダ情報と、引用範囲削除部による処理結果のテキスト情報を、メールデータとして記憶装置に保存する、メールデータ登録処理部と、
メールデータ登録処理部がメールデータの保存先とし、かつ、返信メール解析処理部の関連メール検索部が関連メールの検索をおこなう、メールデータ記憶装置と、
を構成要素とするメールアーカイブ装置。
【0111】
以上の実施の形態では以下を特徴とするメールアーカイブ装置を説明した。
引用範囲特定部は、関連メールの本文行数分、処理対象メールの本文最終行から前方へ移動し、この移動先の行と関連メールの本文開始行を対象に最大共通部分列(LCS)長を求め、これと関連メールの本文開始行長を比較することで、処理対象メールにおける関連メールの引用範囲を特定するメールアーカイブ装置。
【0112】
以上の実施の形態では以下を特徴とするメールアーカイブ装置を説明した。
メール取込処理部が、
メールアーカイブ装置が処理対象とするメール全てに対し、メール送受信時の状態での本文の行数をカウントした結果を本文行数情報とし、
メールデータ登録処理部が、
本文行数情報をメールデータ記憶装置に追加で保存し、
引用範囲特定部が、
本文行数情報をメールデータ記憶装置から取得して、この数値分処理対象メールの本文最終行から前方へ移動し、この移動先の行と関連メールの本文開始行を対象に、最大共通部分列(LCS)長を求め、これと関連メールの本文開始行長を比較することで、処理対象メールにおける関連メールの引用範囲を特定するメールアーカイブ装置。
【0113】
以上の実施の形態では以下を特徴とするメールアーカイブ装置を説明した。
引用範囲特定部が、
本文行数情報の数値分処理対象メールの本文最終行から前方へ移動し、この移動先の行とその前後1行まで含めた2行と、関連メールの本文開始行を対象に、最大共通部分列(LCS)長またはその合計値を求め、これと関連メールの本文開始行長を比較することで、処理対象メールにおける関連メールの引用範囲を特定するメールアーカイブ装置。
【符号の説明】
【0114】
1001 メールアーカイブ装置、1002 メール取込処理部、1003 返信メール解析処理部、1031 関連メール検索部、1032 引用範囲特定部、1006 引用範囲削除部、1007 メールデータ登録処理部、1008 メールデータ記憶装置、1009 処理対象メール記憶部、2000 電子メールシステム、2001 メールサーバ、2004 LAN/WAN、2005,2006,2007 メール端末装置、3001 ユーザテーブル、3002 発信メールテーブル、3003 返信テーブル。
【技術分野】
【0001】
この発明は、電子メールを管理する電子メール管理装置、電子メール管理プログラム及び電子メール管理方法に関する。
【背景技術】
【0002】
近年の日常業務において、電子メールは必要不可欠なツールとして浸透している。予定のすり合わせや任意の議題に関する確認事項など、メールをやり取りすることで進めることが一般的となっている。このメールのやり取りを複数回繰り返していく場合、返信メールの本文末尾に元のメール本文を含める環境下では、返信メール参照時にそれまでのメールのやり取りに関する履歴が全て含まれるため見難くなる、これらのメールを全て保存するシステムのストレージ容量を無駄に圧迫する、などの課題があった。このような状況を解決するものとして、以下の特許文献1、特許文献2、特許文献3が存在する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2002−278887号公報
【特許文献2】特開平10−207794号公報
【特許文献3】特開2006−330845号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1〜3に記載のいずれの方法においても、引用部分の各行頭に引用であることを表す引用子(‘>’など)が存在することや、送受信される全てのメールで利用される引用子が1種類であることが、前提となるか、あるいは、それによる制約を受けている。しかし、この返信メールの本文に元のメール本文を含める設定や、元のメール本文を引用するに当たって、行頭に引用子’>’を追加する設定は、現在、一般に広く普及しているメール編集ソフト(Microsoft社製のOutlook Express(Outlookは登録商標)やOutlook(Outlookは登録商標)、Mozilla社製のThunderbird(Thunderbirdは登録商標)などの初期設定に起因するものであり、利用に当たって制限があるわけではない。
【0005】
つまり、ユーザはこれらの設定を個別に任意の形式へ変更可能であり、このような設定変更をしたユーザとメールをやり取りした場合、特許文献2に記載の電子メール表示装置では、期待通りの実行結果を得られない可能性がある。また、一社内で返信メールにおける元のメール本文の引用に関する設定について、特定の規定を設けることは可能であるが、顧客先など社外とのメールのやり取りに対しても同一の規定を適用することを考えると非現実的である。
【0006】
本発明は、返信メールに元のメール本文を引用する環境下で、引用形式の設定が任意で変更される場合にも、設定の影響を受けることなく、返信メールから元のメールの引用部分の削除を行うことができる電子メール管理装置の提供を目的とする。
【0007】
また、社員の送受信したメールを全件保存するシステムにおいて、返信メールに含まれる元のメール本文の引用部分を保存対象外として削除することで、メールアーカイブ機能が必要とするストレージ容量を削減することを目的とする。
【課題を解決するための手段】
【0008】
この発明の電子メール管理装置は、
ヘッダ情報と本文とを含む過去に送信された電子メールを格納するメール格納部と、
他の装置から送信されたヘッダ情報と本文とを含む電子メールであって処理対象となる前記電子メールを示す処理対象メールを記憶する処理対象メール記憶部と、
前記処理対象メール記憶部の記憶する前記処理対象メールに関連する前記電子メールを示す関連メールを、前記メール格納部を対象として所定の検索規則に基づいて検索する関連メール検索部と、
前記関連メール検索部による検索で前記関連メールがヒットした場合に、前記関連メールと前記処理対象メールとの本文どうしを行単位で比較することにより、前記処理対象メールの前記本文における前記関連メールの前記本文の引用範囲を特定する引用範囲特定部と、
前記引用範囲特定部によって前記引用範囲が特定された場合に、前記処理対象メールの前記本文から前記引用範囲を削除する引用範囲削除部と、
前記引用範囲削除部によって前記引用範囲の削除された前記処理対象メールの前記本文を前記処理対象メールの前記ヘッダ情報と関連付けて、前記過去に送信された前記電子メールとして前記メール格納部に格納する格納処理部と
を備えたことを特徴とする。
【0009】
前記メール格納部は、
送受信時における本文の行数を示す本文行数情報が対応付けられた前記電子メールを格納し、
前記電子メール管理装置は、さらに、
前記処理対象メールの前記本文行数情報を前記処理対象メールから抽出する抽出部を備え、
前記引用範囲特定部は、
前記関連メールと前記処理対象メールとの本文どうしを行単位で比較する際に、前記関連メールの本文の先頭行と、前記処理対象メールの本文の最終行から前記関連メールに対応付けられた前記本文行数情報の示す行数だけ先頭行へ向かう位置に存在する行を示す行数対応行との比較を行い、前記比較結果に基づいて前記引用範囲を特定し、
前記格納処理部は、
前記引用範囲削除部によって前記引用範囲の削除された前記処理対象メールの前記本文を前記処理対象メールの前記ヘッダ情報に加え、さらに、前記抽出部によって抽出された前記本文行数情報と関連付けて、前記過去に送信された前記電子メールとして前記メール格納部に格納することを特徴とする。
【0010】
前記引用範囲特定部は、
前記関連メールと前記処理対象メールとの本文どうしを行単位で比較する際に、前記関連メールの本文の先頭行と、前記処理対象メールの前記行数対応行との最大共通部分列の値を求め、求めた前記最大共通部分列の値と前記関連メールの本文の先頭行の長さとを比較し、比較結果に基づいて、前記引用範囲を特定することを特徴とする。
【0011】
前記引用範囲特定部は、
前記関連メールと前記処理対象メールとの本文どうしを行単位で比較する際に、前記関連メールの本文の先頭行と前記処理対象メールの前記行数対応行との比較と、前記関連メールの本文の先頭行と前記処理対象メールの前記行数対応行の直上の行と直下の行との少なくともいずれかの行との比較とに基づいて、前記引用範囲を特定することを特徴とする。
【0012】
前記引用範囲特定部は、
前記関連メールと前記処理対象メールとの本文どうしを行単位で比較する際に、前記関連メールの本文の先頭行と、前記処理対象メールの本文の最終行から前記関連メールの本文の行数だけ先頭行へ向かう位置に存在する行との最大共通部分列の値を求め、求めた前記最大共通部分列の値と前記関連メールの本文の先頭行の長さとを比較し、比較結果に基づいて前記引用範囲を特定することを特徴とする。
【0013】
この発明の電子メール管理プログラムは、
コンピュータを、
ヘッダ情報と本文とを含む過去に送信された電子メールを格納するメール格納部、
他の装置から送信されたヘッダ情報と本文とを含む電子メールであって処理対象となる前記電子メールを示す処理対象メールを記憶する処理対象メール記憶部、
前記処理対象メール記憶部の記憶する前記処理対象メールに関連する前記電子メールを示す関連メールを、前記メール格納部を対象として所定の検索規則に基づいて検索する関連メール検索部、
前記関連メール検索部による検索で前記関連メールがヒットした場合に、前記関連メールと前記処理対象メールとの本文どうしを行単位で比較することにより、前記処理対象メールの前記本文における前記関連メールの前記本文の引用範囲を特定する引用範囲特定部、
前記引用範囲特定部によって前記引用範囲が特定された場合に、前記処理対象メールの前記本文から前記引用範囲を削除する引用範囲削除部、
前記引用範囲削除部によって前記引用範囲の削除された前記処理対象メールの前記本文を前記処理対象メールの前記ヘッダ情報と関連付けて、前記過去に送信された前記電子メールとして前記メール格納部に格納する格納処理部、
として機能させることを特徴とする。
【0014】
この発明の電子メール管理方法は、
メール格納部と、処理対象メール記憶部と、関連メール検索部と、引用範囲特定部と、引用範囲削除部と、格納処理部とを備えた電子メール管理装置が行う電子メール管理方法であって、
前記メール格納部が、
ヘッダ情報と本文とを含む過去に送信された前記電子メールを格納し、
前記処理対象メール記憶部が、
端末装置から送信されたヘッダ情報と本文とを含む電子メールであって処理対象となる前記電子メールを示す処理対象メールを記憶し、
前記関連メール検索部が、
前記処理対象メール記憶部の記憶する前記処理対象メールに関連する前記電子メールを示す関連メールを、前記メール格納部を対象として所定の検索規則に基づいて検索し、
前記引用範囲特定部が、
前記関連メール検索部による検索で前記関連メールがヒットした場合に、前記関連メールと前記処理対象メールとの本文どうしを行単位で比較することにより、前記処理対象メールの前記本文における前記関連メールの前記本文の引用範囲を特定し、
前記引用範囲削除部が、
前記引用範囲特定部によって前記引用範囲が特定された場合に、前記処理対象メールの前記本文から前記引用範囲を削除し、
前記格納処理部が、
前記引用範囲削除部によって前記引用範囲の削除された前記処理対象メールの前記本文を前記処理対象メールの前記ヘッダ情報と関連付けて、前記過去に送信された前記電子メールとして前記メール格納部に格納することを特徴とする。
【発明の効果】
【0015】
この発明によれば、返信メールに元のメール本文を引用する環境下おいて、引用形式の設定が任意で変更される場合にも、設定の影響を受けることなく、返信メールから元のメールの引用部分の削除可能な電子メール管理装置を提供できる。
【図面の簡単な説明】
【0016】
【図1】実施の形態1のメールアーカイブ装置1001の構成図。
【図2】実施の形態1のメールアーカイブ装置1001を適用した電子メールシステム2000の構成図。
【図3】実施の形態1のメールデータ記憶装置1008のリレーショナルデータベースシステムを構成する各テーブル構成を示す図。
【図4】実施の形態1のメールアーカイブ装置1001の適用可能なメール送受信の具体例を示す図。
【図5】実施の形態1の発信メールM0を示す図。
【図6】実施の形態1の返信メールM1を示す図。
【図7】実施の形態1の返信メールM2を示す図。
【図8】実施の形態1のメールアーカイブ装置1001の動作を示すフローチャート。
【図9】図8を補足する図。
【図10】図8を補足する別の図。
【図11】実施の形態2のメールアーカイブ装置1001の動作を示すフローチャート。
【図12】図11を補足する図。
【図13】実施の形態3のメールアーカイブ装置1001の動作を示すフローチャート。
【図14】図13を補足する図。
【図15】図13を補足する別の図。
【図16】実施の形態4のメールアーカイブ装置1001の外観を示す図。
【図17】実施の形態4のメールアーカイブ装置1001のハードウェア資源を示す図。
【発明を実施するための形態】
【0017】
実施の形態1.
図1は、実施の形態1のメールアーカイブ装置1001(電子メール管理装置)の構成を示すブロック図である。メールアーカイブ装置1001は、メール取込処理部1002(抽出部)と、関連メール検索部1031及び引用範囲特定部1032とを有する返信メール解析処理部1003と、引用範囲削除部1006と、メールデータ登録処理部1007(格納処理部)と、メールデータ記憶装置1008(メール格納部)と、処理対象メール記憶部1009を備えている。これらの機能は、動作の説明で後述する。
【0018】
図2は、実施の形態1のメールアーカイブ装置1001を適用した電子メールシステム2000の構成図である。メール端末装置2005〜2007(他の装置の一例)を操作するユーザが送受信する電子メール(以下、メールともいう)は、LAN/WAN2004を通ってメールサーバ2001を介し、社外インターネット2002へと通信される。ここで、メール送受信の際に、メールサーバ2001がメールアーカイブ装置1001へ送受信されるメールのコピーを送るなどして、このメールサーバ2001を介するメール全件のアーカイブを作成する。メールアーカイブ装置1001はメールサーバ2001から受信した電子メールを処理対象として、処理対象メール記憶部1009に記憶する。なお、図2中のメール端末2005等は1台以上の任意の台数でよい。
【0019】
(各種テーブルの説明)
図3は、メールアーカイブ装置1001のメールデータ記憶装置1008に格納される各テーブルを示す図である。
(1)ユーザテーブル3001は、電子メールシステム2000を利用するユーザごとに割り当てられたメールアドレスを保存するテーブルである。
(2)発信メールテーブル3002(”mail_table”3002ともいう)は、電子メールシステム2000を介して送受信されたメールの一部を、メールの各ヘッダ情報とあわせて保存するテーブルである。
(3)返信メールテーブル3003(”reply_table”3003ともいう)は、電子メールシステム2000を介して送受信された返信メール(発信メールテーブル3002に保存されているメールに対する返信メール)を、メールのヘッダ情報とあわせて保存するテーブルである。
【0020】
図4は、メールアーカイブ装置1001が処理対象とするメールの、送受信の様子を示した図である。本実施の形態1では、この図4で示す場合を例として説明する。なお、以降の説明では、図4に示すように、会社Aのユーザから会社Bへ「最初に」送信されるメールを“発信メールM0”と呼ぶ。この発信メールM0に対する返信として会社Bから会社Aへ送信(返信)されるメールを“返信メールM1”と呼び、さらにこの返信メールM1に対する返信として会社Aから会社Bへ送信(返信)されるメールを“返信メールM2”と呼ぶこととする。さらに、返信メールM1および返信メールM2を含めた、返信に対する返信を総じて“返信メールMk(以下kは1以上の整数)”と呼ぶこととする。M2、M4のようにkが偶数の場合は会社Aから会社Bへの返信メールである。また、M1、M3のようにkが奇数の場合は会社Bから会社Aへの返信メールである。
【0021】
図5〜図7は、図4の発信メールM0、返信メールM1、返信メールM2のそれぞれの本文の具体例を示したものである。図5等の左側に示す数字は行番号である。図5、図6、図7等は、後述の動作説明で参照する。
【0022】
図8は、メールアーカイブ装置1001の動作を示したフローチャートである。
図9は、図8のフローチャートによる処理の概要を示す図である。図8は、図9に示すように、
(1)発信メールM0(本文M(0))は、”mail_table”3002に登録される。
(2)返信メールM1(本文M(0)、M(1))は、発信メールM0の引用範囲M(0)が削除され、返信メールM1で新たに記載された本文M(1)のみが”reply_table”3003に登録される。
(3)返信メールM2(本文M(0)、M(1)、M(2))は、返信メールM1と同様に、引用範囲M(0)、M(1)が削除され、本文M(2)のみが”reply_table”3003に登録される。
(4)返信メールM3(本文M(0)、M(1)、M(2)、M(3))も同様に、引用範囲M(0)〜M(2)が削除され、本文M(3)のみが”reply_table”3003に登録される。これら発信メールM0あるいは返信メールMkがテーブルに登録される際には、そのヘッダ情報と共に登録される。これら登録はメールデータ登録処理部1007により実行される。以下、図8をステップごとに順に説明する。
【0023】
まず、ステップS601において、関連メール検索部1031は、処理対象メール記憶部1009から処理対象メールを取り出す。関連メール検索部1031は、取り出した処理対象メールから、ヘッダ情報(MessageId,Reference,From,To,Cc,Subjectの各情報を含む。)を抽出する。関連メール検索部1031は、これらの組み合わせをキーとした検索を”mail_table”3002に対して行う。この検索は、処理対象メールが”mail_table”3002に登録されているかどうかのチェックである。この検索では、処理対処メールに対する発信メールM0を検索する。この検索は、処理対象メールのヘッダ情報及び”mail_table”3002に記録されているヘッダ情報から検索することができる(所定の検索規則の一例)。登録されていなければ処理対象メールは発信メールM0であり、登録されていれば処理対象メールは返信メールMkである。なお、本実施の形態1では、この検索におけるキーを「ヘッダ情報」(MessageId,Reference,From,To,Cc,Subject)の組み合わせとし、”mail_table”3002および”reply_table”3003のテーブル構成もこれに準じたものとしている。しかし、ここで挙げたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)以外のものを追加してもよい。
【0024】
次に、ステップS602において、ステップS601でmail_table”3002に検索結果が存在しない場合(ヒットしない場合)、処理対象メールは発信メールM0に分類できる。したがって、この場合、処理はステップS603へ進む。
【0025】
ステップS603では、メールデータ登録処理部1007が、発信メールM0である処理対象メールを、”mail_table”3002へ保存する処理を実行する。メールデータは、処理対象メールの本文のほか、S601の検索でキーとしたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)も含まれる。メールデータ登録処理部1007によるメールデータ記憶装置1008への登録が完了すると、本フローチャートは終了する。
【0026】
ステップS602におけるもう一方のケース、ステップS601の検索結果(関連メール)が存在する場合、処理対象メールは返信メールMkに分類できる。したがって、この場合、ステップS604へ進む。
【0027】
ステップS604では、引用範囲特定部1032が、ステップS601の検索結果(ヒットした)となったメール(発信メールM0(関連メール))の本文M(0)を取得し、その行数をカウントしてステップS605へ進む。
【0028】
図10は、ステップS605の処理を説明する図である。ステップS605では、引用範囲特定部1032は、返信メールMk(M(0)+M(1)+・・)である処理対象メールMkにおいて、ステップS604でカウントしたM(0)の行数分、処理対象メールMk本文(M(0)+M(1)+・・+M(k))の最終行から前方(先頭行方向)へ移動する。図10は、M(0)は3行とする。処理対象メールMkの移動先の行11と、ステップS601の検索結果となった発信メールM0の本文の先頭行12を対象に、引用範囲特定部1032は、最長共通部分文字列(LCS:Longest Common Subsequence)長を求める。例えば、移動先の行11が「>abc」であり、先頭行12が「abc」であれば、LCS値は「3」である。
【0029】
次に、ステップS606において、引用範囲特定部1032は、ステップS605で求めたLCS値と、ステップS601の検索結果となった発信メールM0の本文の先頭行12の長さを比較する。先頭行12が「abc」の例では、長さは同一になる。この比較結果が等しくない場合、引用範囲特定部1032の処理は、ステップS607へ進む。
【0030】
ステップS607では、引用範囲特定部1032は、ステップS605でLCS対象とした処理対象メールの本文の行11が、処理対象メールMkの本文の先頭行であるかどうかを調べる。行11が、処理対象メール本文の先頭行でない場合、ステップS608へ進む。
【0031】
ステップS608では、引用範囲特定部1032は、図10に示すように、ステップS605でLCS対象とした処理対象メールMkの本文の行11から1行分前方へ移動し、この移動先の行13と、ステップS601の検索結果となったメールの本文の先頭行12を対象に、再度LCSを求める。以降は、引用範囲特定部1032の処理はステップS606へ進み、これらの処理を繰り返して実行する。
【0032】
ステップS607におけるもう一方のケース、すなわち、ステップS605でLCS対象とした処理対象メールMkの本文の行11が、処理対象メールMkの本文の先頭行である場合、処理は、ステップS609へ進む。
【0033】
ステップS609では、メールデータ登録処理部1007が、処理対象メールMkを”reply_table”3003へ保存する処理を実行する。すなわちS607のYESの場合は、処理対象メールMkに、ヒットした発信メールM0の引用がなかったことになるので、ステップS610の引用範囲の削除処理を経ることなく”reply_table”3003へ保存する。保存されるメールデータは、処理対象メールMkの本文M(k)のほか、ステップS601の検索でキーとしたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)も含まれる。メールデータ記憶装置1008への登録が完了したら、本フローチャートは終了する。
【0034】
ステップS606におけるもう一方のケース、ステップS605で求めたLCS値と、ステップS601の検索結果となったメールの本文先頭行の長さの比較結果が等しい場合、処理は、ステップS610へ進む。
【0035】
ステップS610では、引用範囲削除部1006は、図10で示すように、ステップS606の比較結果から、処理対象メールMkにおいて、ステップS601の検索結果となった発信メールM0の本文の引用は、ステップS605でLCS対象とした処理対象メールMkの本文の行11から最終行までであると判断し、この引用範囲(図10では3行)を重複部分として処理対象メールMkから削除する。
【0036】
次に、ステップS611において、関連メール検索部1031が、ステップS601と同様の検索を”reply_table”3003に対して行う。関連メール検索部1031は、この検索において、処理対処メールに対する返信メールを検索するが、S611〜S620、S611のループでは、最も過去の返信メールから順に検索する。図9のM3の例でいえば、M1,M2の順に検索し、この検索は、処理対象メールのヘッダ情報及び”reply_table”3003に記録されているヘッダ情報から検索することができる(所定の検索規則の一例)。
【0037】
ステップS612において、ステップS611の検索結果が存在しない場合、ステップS613へ進む。
【0038】
ステップS613では、ステップS612の結果から、メールデータ登録処理部1007は、処理対象メールMkに、これ以上の引用部分は存在しないと判断して、処理対象メールMkを”reply_table”3003へ保存する処理を実行する。メールデータは、処理対象メールMkの本文のほか、S611の検索でキーとしたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)も含まれる。メールデータ記憶装置1008への登録が完了したら、本フローチャートは終了する。
【0039】
ステップS612におけるもう一方のケース、ステップS611で実行する検索結果が存在する場合、ステップS614へ進む。
【0040】
ステップS614では、引用範囲特定部1032は、ステップS604と同様に、ステップS611で検索結果となったメール(処理対象メールMkよりも以前の返信メールMi(i<k)、以下Miと記す)の本文を取得し、その行数をカウントしてステップS615へ進む。
【0041】
ステップS615では、ステップS605と同様に、引用範囲特定部1032は、ステップS610で重複部分を削除後の処理対象メールMkにおいて、ステップS614でカウントした行数分、処理対象メールMkの本文最終行から前方へ移動する。この移動先の行と、ステップS611の検索結果となった返信メールMiの本文先頭行を対象に、再度LCSを求める。
【0042】
次に、ステップS616において、引用範囲特定部1032は、ステップS615で求めたLCS値と、ステップS611の検索結果となった返信メールMiの本文先頭行の長さを比較する。この比較結果が等しくない場合、引用範囲特定部1032の処理は、ステップS617へ進む。
【0043】
ステップS617では、ステップS607と同様に、引用範囲特定部1032は、ステップS615でLCS対象とした処理対象メールの本文の行が、処理対象メールの本文先頭行であるかどうかについて調べる。処理対象メールの本文先頭行でない場合、ステップS618へ進む。
【0044】
ステップS618では、引用範囲特定部1032は、ステップS615でLCS対象とした処理対象メールの本文の行から1行分前方(先頭行方向)へ行を移動し、この移動先の行と、ステップS611の検索結果となった返信メールMiの本文先頭行とを対象に、再度LCSを求める。以降、引用範囲特定部1032の処理はステップS616へ進み、処理を繰り返して実行する。
【0045】
ステップS617におけるもう一方のケース、すなわち、ステップS615でLCS対象とした処理対象メールの本文の行が、処理対象メールの本文先頭行である場合、処理はステップS619へ進む。
【0046】
ステップS619では、メールデータ登録処理部1007が、返信メールである処理対象メールMkを”reply_table”3003へ保存する処理を実行する。メールデータは、処理対象メールMkの本文のほか、S611の検索でキーとしたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)も含まれる。メールデータ記憶装置1008への登録が完了したら、本フローチャートは終了する。
【0047】
ステップS616におけるもう一方のケース、すなわちステップS615で求めたLCS値と、ステップS611の検索結果となったメールの本文先頭行の長さの比較結果とが等しい場合、処理はステップS620へ進む。
【0048】
ステップS620では、引用範囲削除部1006が、ステップS616の比較結果から、処理対象メールにおいて、ステップS611の検索結果となったメールの本文の引用は、ステップS615でLCS対象とした処理対象メールの本文の行から最終行までであると判断し、この引用範囲を重複部分として処理対象メールから削除する。
【0049】
ステップS620の処理完了後は、ステップS611に再び進み、以降同様の処理を繰り返していく。
【0050】
以上のように、実施の形態1のメールアーカイブ装置1001によれば、例えばメール編集ソフトにおいて、返信メールに元のメール本文を引用している環境下で、設定が任意で変更されている送受信メールを管理する場合に、参照不要な過去のメールの引用部分を削除することができる。
【0051】
また、実施の形態1のメールアーカイブ装置1001を、例えば、社内のメールシステムにおいて、コンプライアンスの観点から社員が送受信したメールを全件保存しておき、素早く検索可能な状態とするシステムに適用することで、返信メールに含まれる元のメール本文の引用部分を保存対象外として削除するので、メールアーカイブ機能の必要とするストレージ容量を削減することができる。
【0052】
実施の形態2.
実施の形態1では、処理対象のメールが返信メールに分類でき、かつ、その返信回数が複数回におよぶ場合、ステップS611における”reply−table”3003に対する検索が返信回数分実行されることになり、効率が悪い。そこで、本実施の形態2では、前述のようなメールに対して、より効率よく処理できる方式を提案する。
【0053】
はじめに、”mail_table”3002および”reply_table”3003に”line_count”(本文行数情報)というカラム(図示していない)を追加する。この”line_count”には、メール送受信時の引用を含むメール本文全体の行数をカウントしておき、この行数を保存する。例えば、図5〜図7における、発信メールM0、返信メールM1、返信メールM2の”line_count”は、それぞれ7、16、27である。すなわち”line_count”は、送受信時(引用範囲の削除されていない状態)におけるメール本文の行数を示す情報である。”line_count”は、メール取込処理部1002(抽出部)が、メールから抽出し、”mail_table”3002、”reply_table”3003に、ヘッダ情報に関連付けて登録する。
【0054】
図11は、実施の形態2における、メールアーカイブ装置1001の詳細動作を示したフローチャートである。図12は、図11のフローチャートによる処理の概要を示す図である。図12の返信メールM2に着目すると、返信メールM2では引用範囲であるM(0)、M(1)が削除されることになる。実施の形態1では、引用範囲特定部1032は、M(0)、M(1)に対して、都度、”reply−table”3003を検索(図8のS611)していた。これに対して実施の形態2では、”line_count”の情報(本文行数情報)を持たせることで、”reply−table”3003の参照が1回で済むことになる。すなわち、返信メールM2については、すでに”reply−table”3003に登録されている返信メールM1の”line_count”から、図12に示すように、M(0)、M(1)を一括に削除できる。返信メールM3についても、すでに”reply−table”3003に登録されている返信メールM2の”line_count”から、M(0)〜M(2)を一括に削除できる。以下では、図11のフローチャートをステップごとに説明していく。
【0055】
まず、ステップS701において、関連メール検索部1031は、処理対象メール記憶部1009から処理対象メールを取り出す。関連メール検索部1031は、取り出した処理対象メールから、ヘッダ情報(MessageId,Reference,From,To,Cc,Subject)を抽出して、これらの組み合わせをキーとした検索を”reply_table”3003に対して行う。関連メール検索部1031は、この検索において、直前の返信メールを検索する。なお、実施の形態2では、この検索におけるキーをヘッダ情報(MessageId,Reference,From,To,Cc,Subject)の組み合わせとし、”mail_table”3002および”reply_table”3003のテーブル構成もこれに準じたものとしているが、ここで挙げたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)以外のものを追加してもよい。
【0056】
ステップS702において、ステップS701の検索結果が存在する場合、すなわち、処理対象メール直前の返信メールMi(関連メール)が存在する場合、処理対象メールは返信メールMi+1(k>i)に分類できる。したがって、この場合、ステップS703へ進む。
【0057】
ステップS703では、引用範囲特定部1032は、ステップS701の検索結果(ヒットした)となった返信メールMiの”line_count”を取得し、ステップS704へ進む。
【0058】
ステップS704では、引用範囲特定部1032は、図12で説明した返信メールM2、M3等のように、処理対象メールMi+1において、ステップS703で取得した”line_count”値分、処理対象メールMi+1の本文の最終行から前方へ移動する。
引用範囲特定部1032は、この移動先の行(行数対応行)と、ステップS701の検索結果となったメールの本文先頭行を対象に、最長共通部分文字列(LCS)長を求める。
【0059】
次に、ステップS705において、引用範囲特定部1032は、ステップS704で求めたLCS値と、ステップS701の検索結果となった返信メールMiの本文先頭行の長さを比較する。この比較結果が等しくない場合、ステップS706へ進む。
【0060】
ステップS706では、引用範囲特定部1032は、ステップS704でLCS対象とした処理対象メールの本文の行が、処理対象メールの本文の先頭行であるかどうかについて調べる。処理対象メール本文の先頭行でない場合、ステップS707へ進む。
【0061】
ステップS707では、引用範囲特定部1032は、ステップS704でLCS対象とした処理対象メールの本文の行から1行分前方へ移動し、この移動先の行と、ステップS701の検索結果となったメールの本文先頭行を対象に、再度LCSを求める。以降は、ステップS705へ進み、処理を繰り返して実行する。
【0062】
ステップS706におけるもう一方のケース、すなわちステップS704でLCS対象とした処理対象メールの本文の行が、処理対象メール本文の先頭行である場合、処理はステップS708へ進む。
【0063】
ステップS708では、メールデータ登録処理部1007が処理対象メールMi+1を”reply_table”3003へ保存する処理を実行する。メールデータは、処理対象メールの本文のほか、ステップS701の検索でキーとしたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)も含まれる。メールデータ記憶装置1008への登録が完了したら、本フローチャートは終了する。
【0064】
ステップS705におけるもう一方のケース、すなわち、ステップS704で求めたLCS値と、ステップS701の検索結果となったメールの本文先頭行の長さの比較結果が等しい場合、処理はステップS709へ進む。
【0065】
ステップS709では、ステップS705の比較結果から、引用範囲削除部1006は、処理対象メールMi+1において、ステップS701の検索結果となった返信メールMiの本文の引用は、ステップS704でLCS対象とした処理対象メールの本文の行から最終行までであると判断し、この引用範囲を重複部分として処理対象メールから削除する。
【0066】
ステップS709の処理完了後は、ステップS708に進み、前述の処理を実行して本フローチャートは終了する。
【0067】
次に、ステップS702において、ステップS701の検索結果が存在しない場合(処理対象メールの返信メールの登録がない場合)、処理はステップS710へ進む。
【0068】
ステップS710では、関連メール検索部1031が、ステップS701と同様の検索を”mail_table”3002に対して行う。
【0069】
ステップS711において、ステップS710の検索結果が存在しない場合(テーブル3002に未登録の場合)、ステップS711の結果から、処理対象メールは発信メールM0に分類できる。したがって、この場合、処理はステップS712へ進む。
【0070】
ステップS712では、メールデータ登録処理部1007が、処理対象メールM0を”mail_table”3002へ保存する処理を実行する。メールデータは、処理対象メールの本文のほか、ステップS710の検索でキーとしたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)も含まれる。メールデータ記憶装置1008への登録が完了したら、本フローチャートは終了する。
【0071】
ステップS711におけるもう一方のケース、ステップS710の検索結果が存在する場合、ステップS711の結果から、処理対象メールは返信メールに分類できる。この場合は、発信メールテーブル3002に登録があり、かつ、返信メールテーブル3003に登録がない(S702のNO)状態であるので、処理対象メールは、最初の返信メールM1である。したがって、この場合、処理はステップS713へ進む。
【0072】
ステップS713では、ステップS703と同様に、引用範囲特定部1032は、ステップS710で検索結果となった発信メールM0(関連メール)の”line_count”を取得し、ステップS714へ進む。
【0073】
ステップS714では、ステップS704と同様に、引用範囲特定部1032は、ステップS713で取得した”line_count”値分、処理対象メールMi+1の本文最終行から前方へ移動する。この移動先の行と、ステップS710の検索結果となった発信メールM0の本文先頭行を対象に、再度LCSを求める。
【0074】
次に、ステップS715において、引用範囲特定部1032は、ステップS714で求めたLCS値と、ステップS710の検索結果となった返信メールM0の本文先頭行の長さを比較する。この比較結果が等しくない場合、ステップS716へ進む。
【0075】
ステップS716では、引用範囲特定部1032は、ステップS714でLCS対象とした処理対象メールMi+1の本文の行が、処理対象メールMi+1の本文先頭行であるかどうかについて調べる。処理対象メールMi+1の本文先頭行でない場合、ステップS717へ進む。
【0076】
ステップS717では、引用範囲特定部1032は、ステップS714でLCS対象とした処理対象メールMi+1の本文の行から1行分前方へ移動し、この移動先の行と、ステップS710の検索結果となった発信メールM0の本文先頭行を対象に、再度LCSを求める。以降は、ステップS715へ進み、処理を繰り返して実行する。
【0077】
ステップS716におけるもう一方のケース、すなわち引用範囲特定部1032は、ステップS714でLCS対象とした処理対象メールの本文の行が、処理対象メールの本文先頭行である場合、ステップS718へ進む。
【0078】
ステップS718では、メールデータ登録処理部1007が、処理対象メールMi+1を”reply_table”3003へ保存する処理を実行する。メールデータは、処理対象メールの本文のほか、ステップS710の検索でキーとしたヘッダ情報(MessageId,Reference,From,To,Cc,Subject)も含まれる。メールデータ記憶装置1008への登録が完了すると、本フローチャートは終了する。
【0079】
ステップS715におけるもう一方のケース、すなわち、ステップS714で求めたLCS値と、ステップS710の検索結果となったメールの本文先頭行の長さの比較結果とが等しい場合、処理はステップS719へ進む。
【0080】
ステップS719では、ステップS715の比較結果から、引用範囲削除部1006は、処理対象メールMi+1において、ステップS710の検索結果となった発信メールM0の本文の引用は、ステップS714でLCS対象とした処理対象メールの本文の行から最終行までであると判断し、この引用範囲を重複部分として処理対象メールから削除する。この処理は、図12のM1に対応する。
【0081】
ステップS719の処理完了後は、処理はステップS718(メールデータ登録処理部1007による登録処理)に進み、前述の処理を実行して本フローチャートは終了する。
【0082】
以上の実施の形態2のメールアーカイブ装置1001では、”line_count”の情報に従って引用範囲を削除するので、発信メールテーブル3003の参照回数が1回で済むので、処理の迅速化を図ることができる。
【0083】
実施の形態3.
図14は処理対象メールにおいて、引用行の行数が増えている例を示している。図14では、引用元の行が「abcdefg」である場合に、引用先の処理対象メールで「>abcde」と「>fg」との2行にわたっている例を示した。前述の実施の形態2では、図14のように、処理対象メールが返信メールに分類でき、かつ、引用範囲における各行頭に引用記号(‘>’など)が付くことで改行コードが追加され、引用元のメールの本文よりも行数が増加している場合に、処理対象メールにおける引用範囲を正確に判別できなくなる。そこで、実施の形態3のメールアーカイブ装置1001では、このような場合においても、引用範囲を正確に判別し、重複部分を削除できる方式を提案する。
【0084】
本実施の形態3では、実施の形態2の図11のフローチャートの、ステップS705〜S706、および、ステップS715〜S716の間に、図13のフローチャートを挿入した処理方式を適用する。以下では、図13に示すフローチャートをステップごとに説明いく。
【0085】
まず、ステップS801において、引用範囲特定部1032の処理は、図11のステップS705またはS715の判定結果がNOとなり、図13のフローチャートに切り替わり、ステップS802へ進む。
【0086】
次に、ステップS802において、引用範囲特定部1032は、ステップS704またはS714で求めたLCS値とLCS対象となった処理対象メールの本文行の長さとの差分をα、ステップS704またはS714で求めたLCS値とステップS701またはS710で検索結果となったメールの本文先頭行の長さとの差分をβとしてそれぞれ求め、ステップS803へ進む。ステップS704で求めたLCS値とは、処理対象メール本文の移動行と、検索結果のメール本文の先頭行とのLCS値である。図14の例では、ステップS704におけるLCS値は、「2」である。また、図14の例では「処理対象メールの本文行の長さ」は「>fg」の「3」である。
よって、この例では、
差分α=「1」
である。
また、「検索結果となったメールの本文先頭行の長さ」は図14では、「abcdefg」の「7」である。よってこの例では、
差分β=「5」
である。
【0087】
次に、ステップS803において、引用範囲特定部1032は、処理対象メールの参照先を1行下方向へ移動する。
図15は、図14において、処理対象メールの参照先を1行下方向へ移動した状態を示す。
【0088】
ステップS804において、引用範囲特定部1032は、処理対象メールの移動先行の長さと、ステップS802で求めた差分αと差分βの合計値とを比較する。
図15の例では、
処理対象メールの移動先行の長さ=「6」、
であり、
差分α+差分β=1+5=6、
である。
よって、図15の例では等しくなる。この比較結果が等しくない場合、引用範囲特定部1032の処理は、ステップS805へ進む。
【0089】
ステップS805では、引用範囲特定部1032は、ステップS803で下方向へ移動した処理対象メールの参照先を、反対の1行上方向へ移動する。
【0090】
ステップS806では、ステップS804と同様に、引用範囲特定部1032は、処理対象メールの移動先行の長さと、ステップS802で求めた差分αと差分βの合計値とを比較する。この比較結果が等しくない場合、ステップS807へ進む。
【0091】
ステップS807では、図11のフローチャートに再度切り替わり、引用範囲特定部1032の処理は、ステップS706またはステップS716へそれぞれ進む。
【0092】
ステップS806におけるもう一方のケース、すなわち処理対象メールの移動先行の長さと、ステップS802で求めた差分αと差分βの合計値の比較結果が等しい場合、引用範囲特定部1032は、ステップS808へ進む。
【0093】
ステップS804におけるもう一方のケース、処理対象メールの移動先行の長さと、ステップS802で求めた差分αと差分βの合計値の比較結果が等しい場合、引用範囲特定部1032の処理はステップS808へ進む。
【0094】
ステップS808では、引用範囲特定部1032は、処理対象メールにおけるステップS803またはS805での移動先行と、ステップS701またはS710の検索結果のメールの本文先頭行を対象に、LCS値を求める。このLCS値と、ステップS704またはS714におけるLCS値との合計値を求める。
【0095】
次に、ステップS809において、引用範囲特定部1032は、ステップS808で求めたLCS合計値と、ステップS701またはS710の検索結果のメールの先頭行の長さとを比較する。この比較結果が等しくない場合、引用範囲特定部1032の処理はステップS807へ進む。
【0096】
ステップS807では、前述の通り図11のフローチャートに再度切り替わる。
【0097】
ステップS809におけるもう一方のケース、すなわち、ステップS808で求めたLCS合計値と、ステップS701またはS710の検索結果のメールの先頭行の長さの比較結果が等しい場合、ステップS810へ進む。
【0098】
ステップS810では、図11のフローチャートに再度切り替わり、ステップS709またはステップS719へそれぞれ進む。
【0099】
このように実施の形態3のメールアーカイブ装置1001では、引用範囲特定部1032が、関連メールと処理対象メールとの本文どうしを行単位で比較する際に、関連メールの本文の先頭行と処理対象メールの行数対応行との比較と、関連メールの本文の先頭行と処理対象メールの行数対応行の直上の行と直下の行との少なくともいずれかの行との比較とに基づいて、引用範囲を特定する。よって、実施の形態3のメールアーカイブ装置1001では、引用元のメールの本文よりも返信メール本文での引用部分の行数が増加している場合にも、処理対象メールにおける引用範囲を正確に判別できる。
【0100】
実施の形態4.
図16、図17を参照して実施の形態4を説明する。実施の形態4は、コンピュータであるメールアーカイブ装置1001のハードウェア構成を説明する。
図16は、メールアーカイブ装置1001の外観の一例を示す図である。
図17は、メールアーカイブ装置1001のハードウェア資源の一例を示す図である。
【0101】
外観を示す図16において、メールアーカイブ装置1001は、システムユニット830、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置813、キーボード814(Key・Board:K/B)、マウス815、コンパクトディスク装置818(CDD:Compact Disk Drive)などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニット830は、メールサーバ2001を介してネットワークに接続している。
【0102】
またハードウェア資源を示す図17において、メールアーカイブ装置1001は、プログラムを実行するCPU810(Central Processing Unit)を備えている。CPU810は、バス825を介してROM(Read Only Memory)811、RAM(Random Access Memory)812、表示装置813、キーボード814、マウス815、通信ボード816、CDD818、磁気ディスク装置820と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置820の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
【0103】
RAM812は、揮発性メモリの一例である。ROM811、CDD818、磁気ディスク装置820等の記憶媒体は、不揮発性メモリの一例である。これらは、「記憶装置」あるいは記憶部、格納部、バッファの一例である。通信ボード816、キーボード814などは、入力部、入力装置の一例である。また、通信ボード816、表示装置813などは、出力部、出力装置の一例である。通信ボード816は、メールサーバ2001を介してネットワークに接続されている。
【0104】
磁気ディスク装置820には、オペレーティングシステム821(OS)、ウィンドウシステム822、プログラム群823、ファイル群824が記憶されている。プログラム群823のプログラムは、CPU810、オペレーティングシステム821、ウィンドウシステム822により実行される。
【0105】
上記プログラム群823には、以上の実施の形態の説明において「〜部」として説明した機能を実行するプログラムが記憶されている。プログラムは、CPU810により読み出され実行される。
【0106】
ファイル群824には、以上の実施の形態の説明において、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明した情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU810によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【0107】
また、以上に述べた実施の形態の説明において、データや信号値は、RAM812のメモリ、CDD818のコンパクトディスク、磁気ディスク装置820の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス825や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【0108】
また、以上の実施の形態の説明において、「〜部」として説明したものは、「〜手段」、であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明したものは、ソフトウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU810により読み出され、CPU810により実行される。すなわち、プログラムは、以上に述べた「〜部」としてコンピュータを機能させるものである。あるいは、以上に述べた「〜部」の手順や方法をコンピュータに実行させるものである。
【0109】
以上の実施の形態では、メールアーカイブ装置1001を説明したが、メールアーカイブ装置1001を、コンピュータをメールアーカイブ装置1001として機能させるためのプログラム(電子メール管理プログラム)としても把握できることは以上の説明から明らかである。また、メールアーカイブ装置1001の動作を、メールアーカイブ装置1001が実行する方法(電子メール管理方法)として把握することがきることも以上の説明から明らかである。
【0110】
以上の実施の形態では以下を特徴とするメールアーカイブ装置を説明した。
メールサーバを介して送受信される任意のメールに対して、
メールヘッダに含まれる”MessageId”,“Reference”,“From”,“To”,“Cc”,“Subject”等の各ヘッダ情報、および、本文や添付ファイル内容を示すテキスト情報を抽出する、メール取込処理部と、
メール取込処理部で抽出した各ヘッダ情報を利用して、処理対象メールより以前に送受信されたメールの中から関連性の高いメールを検索する関連メール検索部と、
前述の関連メール検索部による検索結果の関連メールと処理対象メールの本文を行単位で比較することで、処理対象メールにおける関連メールの引用範囲を特定する引用範囲特定部とから構成され、
処理対象メールが返信メールか否かを判断し、かつ、そのメール内の引用範囲まで特定することを特徴とする返信メール解析処理部と、
返信メール解析処理部で特定した関連メールの引用範囲を取り除く、引用範囲削除部と、
メール取込処理部で抽出した各ヘッダ情報と、引用範囲削除部による処理結果のテキスト情報を、メールデータとして記憶装置に保存する、メールデータ登録処理部と、
メールデータ登録処理部がメールデータの保存先とし、かつ、返信メール解析処理部の関連メール検索部が関連メールの検索をおこなう、メールデータ記憶装置と、
を構成要素とするメールアーカイブ装置。
【0111】
以上の実施の形態では以下を特徴とするメールアーカイブ装置を説明した。
引用範囲特定部は、関連メールの本文行数分、処理対象メールの本文最終行から前方へ移動し、この移動先の行と関連メールの本文開始行を対象に最大共通部分列(LCS)長を求め、これと関連メールの本文開始行長を比較することで、処理対象メールにおける関連メールの引用範囲を特定するメールアーカイブ装置。
【0112】
以上の実施の形態では以下を特徴とするメールアーカイブ装置を説明した。
メール取込処理部が、
メールアーカイブ装置が処理対象とするメール全てに対し、メール送受信時の状態での本文の行数をカウントした結果を本文行数情報とし、
メールデータ登録処理部が、
本文行数情報をメールデータ記憶装置に追加で保存し、
引用範囲特定部が、
本文行数情報をメールデータ記憶装置から取得して、この数値分処理対象メールの本文最終行から前方へ移動し、この移動先の行と関連メールの本文開始行を対象に、最大共通部分列(LCS)長を求め、これと関連メールの本文開始行長を比較することで、処理対象メールにおける関連メールの引用範囲を特定するメールアーカイブ装置。
【0113】
以上の実施の形態では以下を特徴とするメールアーカイブ装置を説明した。
引用範囲特定部が、
本文行数情報の数値分処理対象メールの本文最終行から前方へ移動し、この移動先の行とその前後1行まで含めた2行と、関連メールの本文開始行を対象に、最大共通部分列(LCS)長またはその合計値を求め、これと関連メールの本文開始行長を比較することで、処理対象メールにおける関連メールの引用範囲を特定するメールアーカイブ装置。
【符号の説明】
【0114】
1001 メールアーカイブ装置、1002 メール取込処理部、1003 返信メール解析処理部、1031 関連メール検索部、1032 引用範囲特定部、1006 引用範囲削除部、1007 メールデータ登録処理部、1008 メールデータ記憶装置、1009 処理対象メール記憶部、2000 電子メールシステム、2001 メールサーバ、2004 LAN/WAN、2005,2006,2007 メール端末装置、3001 ユーザテーブル、3002 発信メールテーブル、3003 返信テーブル。
【特許請求の範囲】
【請求項1】
ヘッダ情報と本文とを含む過去に送信された電子メールを格納するメール格納部と、
他の装置から送信されたヘッダ情報と本文とを含む電子メールであって処理対象となる前記電子メールを示す処理対象メールを記憶する処理対象メール記憶部と、
前記処理対象メール記憶部の記憶する前記処理対象メールに関連する前記電子メールを示す関連メールを、前記メール格納部を対象として所定の検索規則に基づいて検索する関連メール検索部と、
前記関連メール検索部による検索で前記関連メールがヒットした場合に、前記関連メールと前記処理対象メールとの本文どうしを行単位で比較することにより、前記処理対象メールの前記本文における前記関連メールの前記本文の引用範囲を特定する引用範囲特定部と、
前記引用範囲特定部によって前記引用範囲が特定された場合に、前記処理対象メールの前記本文から前記引用範囲を削除する引用範囲削除部と、
前記引用範囲削除部によって前記引用範囲の削除された前記処理対象メールの前記本文を前記処理対象メールの前記ヘッダ情報と関連付けて、前記過去に送信された前記電子メールとして前記メール格納部に格納する格納処理部と
を備えたことを特徴とする電子メール管理装置。
【請求項2】
前記メール格納部は、
送受信時における本文の行数を示す本文行数情報が対応付けられた前記電子メールを格納し、
前記電子メール管理装置は、さらに、
前記処理対象メールの前記本文行数情報を前記処理対象メールから抽出する抽出部を備え、
前記引用範囲特定部は、
前記関連メールと前記処理対象メールとの本文どうしを行単位で比較する際に、前記関連メールの本文の先頭行と、前記処理対象メールの本文の最終行から前記関連メールに対応付けられた前記本文行数情報の示す行数だけ先頭行へ向かう位置に存在する行を示す行数対応行との比較を行い、前記比較結果に基づいて前記引用範囲を特定し、
前記格納処理部は、
前記引用範囲削除部によって前記引用範囲の削除された前記処理対象メールの前記本文を前記処理対象メールの前記ヘッダ情報に加え、さらに、前記抽出部によって抽出された前記本文行数情報と関連付けて、前記過去に送信された前記電子メールとして前記メール格納部に格納することを特徴とする請求項1記載の電子メール管理装置。
【請求項3】
前記引用範囲特定部は、
前記関連メールと前記処理対象メールとの本文どうしを行単位で比較する際に、前記関連メールの本文の先頭行と、前記処理対象メールの前記行数対応行との最大共通部分列の値を求め、求めた前記最大共通部分列の値と前記関連メールの本文の先頭行の長さとを比較し、比較結果に基づいて、前記引用範囲を特定することを特徴とする請求項2記載の電子メール管理装置。
【請求項4】
前記引用範囲特定部は、
前記関連メールと前記処理対象メールとの本文どうしを行単位で比較する際に、前記関連メールの本文の先頭行と前記処理対象メールの前記行数対応行との比較と、前記関連メールの本文の先頭行と前記処理対象メールの前記行数対応行の直上の行と直下の行との少なくともいずれかの行との比較とに基づいて、前記引用範囲を特定することを特徴とする請求項2記載の電子メール管理装置。
【請求項5】
前記引用範囲特定部は、
前記関連メールと前記処理対象メールとの本文どうしを行単位で比較する際に、前記関連メールの本文の先頭行と、前記処理対象メールの本文の最終行から前記関連メールの本文の行数だけ先頭行へ向かう位置に存在する行との最大共通部分列の値を求め、求めた前記最大共通部分列の値と前記関連メールの本文の先頭行の長さとを比較し、比較結果に基づいて前記引用範囲を特定することを特徴とする請求項1記載の電子メール管理装置。
【請求項6】
コンピュータを、
ヘッダ情報と本文とを含む過去に送信された電子メールを格納するメール格納部、
他の装置から送信されたヘッダ情報と本文とを含む電子メールであって処理対象となる前記電子メールを示す処理対象メールを記憶する処理対象メール記憶部、
前記処理対象メール記憶部の記憶する前記処理対象メールに関連する前記電子メールを示す関連メールを、前記メール格納部を対象として所定の検索規則に基づいて検索する関連メール検索部、
前記関連メール検索部による検索で前記関連メールがヒットした場合に、前記関連メールと前記処理対象メールとの本文どうしを行単位で比較することにより、前記処理対象メールの前記本文における前記関連メールの前記本文の引用範囲を特定する引用範囲特定部、
前記引用範囲特定部によって前記引用範囲が特定された場合に、前記処理対象メールの前記本文から前記引用範囲を削除する引用範囲削除部、
前記引用範囲削除部によって前記引用範囲の削除された前記処理対象メールの前記本文を前記処理対象メールの前記ヘッダ情報と関連付けて、前記過去に送信された前記電子メールとして前記メール格納部に格納する格納処理部、
として機能させるための電子メール管理プログラム。
【請求項7】
メール格納部と、処理対象メール記憶部と、関連メール検索部と、引用範囲特定部と、引用範囲削除部と、格納処理部とを備えた電子メール管理装置が行う電子メール管理方法であって、
前記メール格納部が、
ヘッダ情報と本文とを含む過去に送信された前記電子メールを格納し、
前記処理対象メール記憶部が、
端末装置から送信されたヘッダ情報と本文とを含む電子メールであって処理対象となる前記電子メールを示す処理対象メールを記憶し、
前記関連メール検索部が、
前記処理対象メール記憶部の記憶する前記処理対象メールに関連する前記電子メールを示す関連メールを、前記メール格納部を対象として所定の検索規則に基づいて検索し、
前記引用範囲特定部が、
前記関連メール検索部による検索で前記関連メールがヒットした場合に、前記関連メールと前記処理対象メールとの本文どうしを行単位で比較することにより、前記処理対象メールの前記本文における前記関連メールの前記本文の引用範囲を特定し、
前記引用範囲削除部が、
前記引用範囲特定部によって前記引用範囲が特定された場合に、前記処理対象メールの前記本文から前記引用範囲を削除し、
前記格納処理部が、
前記引用範囲削除部によって前記引用範囲の削除された前記処理対象メールの前記本文を前記処理対象メールの前記ヘッダ情報と関連付けて、前記過去に送信された前記電子メールとして前記メール格納部に格納することを特徴とする電子メール管理方法。
【請求項1】
ヘッダ情報と本文とを含む過去に送信された電子メールを格納するメール格納部と、
他の装置から送信されたヘッダ情報と本文とを含む電子メールであって処理対象となる前記電子メールを示す処理対象メールを記憶する処理対象メール記憶部と、
前記処理対象メール記憶部の記憶する前記処理対象メールに関連する前記電子メールを示す関連メールを、前記メール格納部を対象として所定の検索規則に基づいて検索する関連メール検索部と、
前記関連メール検索部による検索で前記関連メールがヒットした場合に、前記関連メールと前記処理対象メールとの本文どうしを行単位で比較することにより、前記処理対象メールの前記本文における前記関連メールの前記本文の引用範囲を特定する引用範囲特定部と、
前記引用範囲特定部によって前記引用範囲が特定された場合に、前記処理対象メールの前記本文から前記引用範囲を削除する引用範囲削除部と、
前記引用範囲削除部によって前記引用範囲の削除された前記処理対象メールの前記本文を前記処理対象メールの前記ヘッダ情報と関連付けて、前記過去に送信された前記電子メールとして前記メール格納部に格納する格納処理部と
を備えたことを特徴とする電子メール管理装置。
【請求項2】
前記メール格納部は、
送受信時における本文の行数を示す本文行数情報が対応付けられた前記電子メールを格納し、
前記電子メール管理装置は、さらに、
前記処理対象メールの前記本文行数情報を前記処理対象メールから抽出する抽出部を備え、
前記引用範囲特定部は、
前記関連メールと前記処理対象メールとの本文どうしを行単位で比較する際に、前記関連メールの本文の先頭行と、前記処理対象メールの本文の最終行から前記関連メールに対応付けられた前記本文行数情報の示す行数だけ先頭行へ向かう位置に存在する行を示す行数対応行との比較を行い、前記比較結果に基づいて前記引用範囲を特定し、
前記格納処理部は、
前記引用範囲削除部によって前記引用範囲の削除された前記処理対象メールの前記本文を前記処理対象メールの前記ヘッダ情報に加え、さらに、前記抽出部によって抽出された前記本文行数情報と関連付けて、前記過去に送信された前記電子メールとして前記メール格納部に格納することを特徴とする請求項1記載の電子メール管理装置。
【請求項3】
前記引用範囲特定部は、
前記関連メールと前記処理対象メールとの本文どうしを行単位で比較する際に、前記関連メールの本文の先頭行と、前記処理対象メールの前記行数対応行との最大共通部分列の値を求め、求めた前記最大共通部分列の値と前記関連メールの本文の先頭行の長さとを比較し、比較結果に基づいて、前記引用範囲を特定することを特徴とする請求項2記載の電子メール管理装置。
【請求項4】
前記引用範囲特定部は、
前記関連メールと前記処理対象メールとの本文どうしを行単位で比較する際に、前記関連メールの本文の先頭行と前記処理対象メールの前記行数対応行との比較と、前記関連メールの本文の先頭行と前記処理対象メールの前記行数対応行の直上の行と直下の行との少なくともいずれかの行との比較とに基づいて、前記引用範囲を特定することを特徴とする請求項2記載の電子メール管理装置。
【請求項5】
前記引用範囲特定部は、
前記関連メールと前記処理対象メールとの本文どうしを行単位で比較する際に、前記関連メールの本文の先頭行と、前記処理対象メールの本文の最終行から前記関連メールの本文の行数だけ先頭行へ向かう位置に存在する行との最大共通部分列の値を求め、求めた前記最大共通部分列の値と前記関連メールの本文の先頭行の長さとを比較し、比較結果に基づいて前記引用範囲を特定することを特徴とする請求項1記載の電子メール管理装置。
【請求項6】
コンピュータを、
ヘッダ情報と本文とを含む過去に送信された電子メールを格納するメール格納部、
他の装置から送信されたヘッダ情報と本文とを含む電子メールであって処理対象となる前記電子メールを示す処理対象メールを記憶する処理対象メール記憶部、
前記処理対象メール記憶部の記憶する前記処理対象メールに関連する前記電子メールを示す関連メールを、前記メール格納部を対象として所定の検索規則に基づいて検索する関連メール検索部、
前記関連メール検索部による検索で前記関連メールがヒットした場合に、前記関連メールと前記処理対象メールとの本文どうしを行単位で比較することにより、前記処理対象メールの前記本文における前記関連メールの前記本文の引用範囲を特定する引用範囲特定部、
前記引用範囲特定部によって前記引用範囲が特定された場合に、前記処理対象メールの前記本文から前記引用範囲を削除する引用範囲削除部、
前記引用範囲削除部によって前記引用範囲の削除された前記処理対象メールの前記本文を前記処理対象メールの前記ヘッダ情報と関連付けて、前記過去に送信された前記電子メールとして前記メール格納部に格納する格納処理部、
として機能させるための電子メール管理プログラム。
【請求項7】
メール格納部と、処理対象メール記憶部と、関連メール検索部と、引用範囲特定部と、引用範囲削除部と、格納処理部とを備えた電子メール管理装置が行う電子メール管理方法であって、
前記メール格納部が、
ヘッダ情報と本文とを含む過去に送信された前記電子メールを格納し、
前記処理対象メール記憶部が、
端末装置から送信されたヘッダ情報と本文とを含む電子メールであって処理対象となる前記電子メールを示す処理対象メールを記憶し、
前記関連メール検索部が、
前記処理対象メール記憶部の記憶する前記処理対象メールに関連する前記電子メールを示す関連メールを、前記メール格納部を対象として所定の検索規則に基づいて検索し、
前記引用範囲特定部が、
前記関連メール検索部による検索で前記関連メールがヒットした場合に、前記関連メールと前記処理対象メールとの本文どうしを行単位で比較することにより、前記処理対象メールの前記本文における前記関連メールの前記本文の引用範囲を特定し、
前記引用範囲削除部が、
前記引用範囲特定部によって前記引用範囲が特定された場合に、前記処理対象メールの前記本文から前記引用範囲を削除し、
前記格納処理部が、
前記引用範囲削除部によって前記引用範囲の削除された前記処理対象メールの前記本文を前記処理対象メールの前記ヘッダ情報と関連付けて、前記過去に送信された前記電子メールとして前記メール格納部に格納することを特徴とする電子メール管理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2012−203492(P2012−203492A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−65363(P2011−65363)
【出願日】平成23年3月24日(2011.3.24)
【出願人】(501158538)三菱電機インフォメーションテクノロジー株式会社 (28)
【Fターム(参考)】
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願日】平成23年3月24日(2011.3.24)
【出願人】(501158538)三菱電機インフォメーションテクノロジー株式会社 (28)
【Fターム(参考)】
[ Back to top ]