以下、電子メールシステムの一実施形態について、図1〜図24に基づいて詳細に説明する。図1には、一実施形態に係る電子メールシステム100が概略的に示されている。
本実施形態の電子メールシステム100は、図1に示すように、サーバ10と、クライアント20と、を備える。サーバ10とクライアント20は、インターネットやLAN(Local Area Network)などのネットワーク80に接続されている。この電子メールシステム100は、クライアント20においてブラウザ上に表示されるWEBメールの画面(サーバ10から提供)において、利用者が入力や操作を行うことで、クライアント20間における電子メールのやり取りを可能にするシステムである。
図2(a)には、サーバ10のハードウェア構成が示されている。図2(a)に示すように、サーバ10は、CPU(Central Processing Unit)90、ROM(Read Only Memory)92、RAM(Random Access Memory)94、記憶部(ここではHDD(Hard Disk Drive))96、ネットワークインタフェース97、及び可搬型記憶媒体用ドライブ99等を備えている。これらサーバ10の構成各部は、バス98に接続されている。サーバ10では、ROM92あるいはHDD96に格納されているプログラム(メール処理プログラムを含む)、或いは可搬型記憶媒体用ドライブ99が可搬型記憶媒体91から読み取ったプログラム(メール処理プログラムを含む)をCPU90が実行することにより、図3に示す、メール処理部40としての機能が実現される。メール処理部40は、メールの送受信のほか、クライアント20上で表示する画面を生成し、送信するなどの機能を有する。なお、図3には、サーバ10のHDD96等に格納されている人事DB(database)30、メールDB32、及び返信管理DB34、振り分けテーブル36も図示されている。なお、DB30、32及び34、テーブル36の具体的なデータ構造等については後述する。
図2(b)には、クライアント20のハードウェア構成が示されている。図2(b)に示すように、クライアント20は、CPU190、ROM192、RAM194、記憶部(HDD)196、ディスプレイ193、入力部195、ネットワークインタフェース197、及び可搬型記憶媒体用ドライブ199等を備えており、クライアント20の構成各部は、バス198に接続されている。ディスプレイ193は、液晶ディスプレイ等を含み、入力部195は、キーボードやマウス、タッチパネル等を含む。クライアント20においては、CPU190がプログラムを実行することで、図3に示す表示処理部50及び入力処理部52としての機能が実現される。表示処理部50は、サーバ10のメール処理部40からの指示に応じて、クライアント20のディスプレイ193上にメール閲覧、メール作成、送受信に関する画面等を表示する。入力処理部52は、クライアント20の利用者が入力部195を介して入力した情報を受け付け、当該情報をサーバ10のメール処理部40に対して送信する。
ここで、サーバ10が有するDB及びテーブルについて説明する。
図4には、人事DB30のデータ構造の一例が示されている。人事DB30は、クライアント20を利用する利用者のID(利用者ID)と、パスワードと、利用者氏名と、を管理するデータベースである。人事DB30は、「利用者ID」と「パスワード」と「利用者氏名」のフィールドを有し、各フィールドには利用者を識別するためのID(本実施形態ではメールアドレス)及びパスワード、利用者の氏名(図4では、氏のみ)が格納される。
図5には、メールDB32のデータ構造の一例が示されている。メールDB32は、利用者ごとに用意され、各利用者が送受信したメールの情報を格納するデータベースである。メールDB32は、図5に示すように、「受送信区分」、「フォルダ名」、「メッセージID」、「差出人ID」、「送信日時」、「宛先」、「メール情報(タイトル、本文)」の各フィールドを有する。なお、図5は、利用者IDが「tanaka@jp」である利用者のメールDBを示している。本実施形態では、メールDB32をメールアドレス毎に用意しているが、まとめたひとつのメールDBとして管理してもよい。
「送受信区分」のフィールドには、利用者が「受信」したメールであるか、「送信」したメールであるかを示す区分が格納される。「フォルダ名」のフィールドには、メールが格納される格納先(フォルダ)の名称が格納される。「メッセージID」のフィールドには、メールごとに定められるユニークなIDが格納される。「差出人ID」のフィールドには、メールの差出人(発信者)のアドレスが格納される。なお、「種別」のフィールドが「送信」であるメールの場合、「差出人ID」のフィールドには、メールDB32の利用者のアドレス(利用者ID)が格納されることになる。「送信日時」のフィールドには、メールが送信された日時が格納される。「宛先」のフィールドには、メールの送信先が格納される。なお、送信先が複数存在するメールは、同報メールであることを意味する。「メール情報」のフィールドには、メールの件名を示す「タイトル」、メールの文面を示す「本文」を格納するフィールドが含まれる。
図6(a)には、返信管理DB34の一例が示されている。返信管理DB34は、サーバ10において1つのみ保持しているものとする。返信管理DB34には、あるメールに対する返信メールが送信された場合に、該あるメールのメッセージID(親メッセージ)と、返信メールのメッセージID(子メッセージ)と、返信メールの返信先を遡った場合の大元のメールのメッセージID(ルートメッセージ)と、が関連付けて格納される。
図6(b)には、振り分けテーブル36の一例が示されている。振り分けテーブル36は、利用者ごとに存在するものとする。振り分けテーブル36においては、ルートメッセージのメッセージIDと、ルートメッセージが共通するメール(返信メール及び返信メールを遡った場合の大元のメール)を格納するフォルダ(振り分け先フォルダ)名とが関連づけて格納される。
(メール処理部40の処理について)
次に、本実施形態におけるメール処理部40の処理について、図7〜図13のフローチャートに沿って、その他図面を適宜参照しつつ詳細に説明する。
図7の処理では、まず、ステップS10において、メール処理部40が、メール表示要求をクライアント20から受信するまで待機する。クライアント20の利用者は、クライアント20のディスプレイ193に表示されているブラウザ上でWEBメールサービスのアドレスに対してアクセスすることによりメール表示要求を出すことができる。なお、メール表示要求は、クライアント20の入力処理部52から送信される。
メール処理部40は、入力処理部52から送信されてきたメール表示要求を受信すると(ステップS10の判断が肯定されると)、ステップS12に移行する。ステップS12では、メール処理部40が、ID(メールアドレス)、パスワード入力画面のデータをクライアント20に送信する。この場合のID(メールアドレス)、パスワード入力画面は、図14(a)に示すような画面であるものとする。なお、クライアント20においては、表示処理部50が、ID(メールアドレス)、パスワード入力画面のデータを受信した段階で、ID(メールアドレス)、パスワード入力画面(図14(a))をディスプレイ193上に表示する。
次いで、ステップS14に移行すると、メール処理部40は、ID(メールアドレス)、パスワードをクライアント20から受信するまで待機する。なお、利用者がID(メールアドレス)とパスワードを図14(a)の画面上で入力し、「送信」ボタンを押すと、入力処理部52は、ID(メールアドレス)とパスワードをメール処理部40に送信する。
ID(メールアドレス)とパスワードが入力処理部52からメール処理部40に対して送信されると(ステップS14の判断が肯定されると)、ステップS16に移行する。ステップS16では、メール処理部40が、人事DB30(図4)を用いて、利用者の認証を行う。すなわち、メール処理部40は、入力されたID(メールアドレス)とパスワードの組み合わせが人事DB30に存在しているか否かを判断する。次いで、ステップS18では、メール処理部40が、認証がOKであったか否かを判断する。ここでの判断が否定された場合には、ステップS20に移行し、メール処理部40は、認証エラー画面のデータを生成し、当該画面のデータをクライアント20(表示処理部50)に送信し、図7〜図13の全処理を終了する。なお、表示処理部50は、認証エラー画面のデータを受信した段階で、認証エラー画面(図14(b))をディスプレイ193上に表示する。
一方、ステップS18の判断が肯定された場合、すなわち、認証がOKであった場合には、メール処理部40は、ステップS22に移行する。ステップS22では、メール処理部40は、ID(メールアドレス)に対応するメールDB32から第1の格納先としてのメインフォルダに格納されている受信メール情報を取得し、受信メール一覧画面のデータを作成する。そして、メール処理部40は、作成した受信メール一覧画面のデータをクライアント20(表示処理部50)に送信する。なお、表示処理部50は、受信メール一覧画面のデータを受信した段階で、受信メール一覧画面をディスプレイ193上に表示する。なお、利用者「田中」が、メール表示要求を出した場合、図15に示す受信メール一覧画面がディスプレイ193上に表示される。図15の受信メール一覧画面には、「新規作成」ボタンと、「ログアウト」ボタンと、受信メールの差出人、日付、件名の情報と、が表示されている。
次いで、図8のステップS30に移行すると、メール処理部40は、利用者からのフォルダ選択要求を受信したか否かを判断する。なお、フォルダが複数存在していない段階では、ここでの判断が否定されて、ステップS34に移行する。図15の例では、1つのフォルダ「メインフォルダ」しか存在していないため、ステップS30の判断は否定される。
ステップS30の判断が否定されてステップS34に移行すると、メール処理部40は、利用者からメール選択要求を受信したか否かを判断する。この場合、利用者が、図15の受信メール一覧画面の中から1つのメールを選択すると、ステップS34の判断が肯定されて、ステップS36の処理に移行する。
ステップS36では、メール処理部40は、選択されたメールの情報を、メールDB32から取得し、メッセージ表示画面のデータを作成する。この場合、メール処理部40は、メールDB32から、選択されたメッセージのメッセージIDに対応する宛先、差出人、タイトル、本文などの情報を取得して、メッセージ表示画面のデータを作成する。なお、利用者が図15の上から2つ目のメールを選択した場合には、図16に示すようなメッセージ表示画面のデータが生成される。
次いで、ステップS38では、メール処理部40は、生成したメッセージ表示画面のデータをクライアント20(表示処理部50)に対して送信する。なお、表示処理部50では、メール表示画面のデータを受信した段階で、メッセージ表示画面(図16)をディスプレイ193上に表示する。その後は、ステップS40に移行する。なお、図16のメッセージ表示画面には、メールの内容のほか、「新規作成」、「返信」、「全員に返信」、「一覧表示に戻る」、「ログアウト」の各ボタンが用意されているものとする。
なお、ステップS34の段階で、メール選択要求を受信していなかった場合には、ステップS36、S38を経ずに、ステップS40に移行する。
ステップS40に移行すると、メール処理部40は、利用者からのメールの新規作成要求を受信したか否かを判断する。ここでの判断が肯定された場合、すなわち、図15の画面上又は図16の画面上において利用者が「新規作成」ボタンを押した場合には、ステップS42〜S48の処理を実行する。
具体的には、メール処理部40は、ステップS42において、メッセージ作成画面のデータを作成し、クライアント20(表示処理部50)に送信する。なお、表示処理部50では、メッセージ作成画面のデータを受信した段階で、メッセージ作成画面(図17)をディスプレイ193上に表示する。次いで、ステップS44では、メール処理部40は、宛先、タイトル、本文、差出人ID(発信者ID)を受信するまで待機する。この場合、利用者が図17のメッセージ作成画面上で各欄への入力を行い、「送信」ボタンを押すと、クライアント20の入力処理部52からメール処理部40に対して、宛先、タイトル、本文、差出人ID(発信者ID)が送信される。したがって、利用者が「送信」ボタンを押した段階で、次のステップS46に移行する。ステップS46では、メール処理部40が、メッセージID、ヘッダを作成し、宛先、タイトル、本文等を、宛先のメールDB32(受送信区分=「受信」)に追記する。これにより、新規作成されたメールが差出人から宛先に対して送信されたことになる。次いで、ステップS48では、メール処理部40が、メッセージID、宛先、タイトル、本文等を、送信者(差出人)のメールDB32(受送信区分=「送信」)に追記する。以上のようにステップS42〜S48の処理が終了すると、図13の処理に移行する。なお、図13の処理については、後述する。
ところで、ステップS40の判断が否定された場合、すなわち、メール処理部40がメールの新規作成要求を受信していない場合には、ステップS50に移行する。ステップS50では、メール処理部40が、利用者から返信要求を受信したか否かを判断する。ここでの判断が否定された場合、すなわち、図16の画面上において利用者が「返信」ボタン又は「全員に返信」ボタンを押していない場合には、図13の処理に移行する。一方、ステップS50の判断が肯定された場合、すなわち、図16の画面上において利用者が「返信」ボタン及び「全員に返信」ボタンのいずれかを押した場合には、ステップS52に移行する。
ステップS52では、メール処理部40が、メールDB32(あるいはヘッダ)から返信元のメールを取得する。その後は、図9のステップS60に移行する。
図9のステップS60に移行すると、メール処理部40は、返信元のメールに複数の宛先が含まれているか否か、すなわち、返信元のメールが同報メールであるか否かを判断する。ここでの判断が否定された場合、すなわち、返信元メールの宛先が1つであった場合には、ステップS62に移行し、メール処理部40は、返信画面のデータを作成し、クライアント(表示処理部50)に送信する。表示処理部50では、返信画面のデータを受信した段階で、返信画面(図18)をディスプレイ193上に表示する。なお、図18の返信画面には、返信元のメール本文(本文情報)が引用形式で(各行の先頭に引用符「>」を記載した状態で)表示されているものとする。また、図18の返信画面のタイトルの欄には、返信元のメールのタイトルの先頭に「Re:」を付加したものが表示され、宛先の欄には、返信元のメールの送信者のアドレスが表示されているものとする。更に、返信画面には、「新規作成」、「返信(通常)」、「一覧表示に戻る」、「ログアウト」の各ボタンが用意されているものとする。
次いで、ステップS64では、メール処理部40が、宛先、タイトル、本文、発信者IDを受信するまで待機する。この場合、利用者が図18の返信画面上で入力を行い、「返信(通常)」ボタンを押すことで、クライアント20の入力処理部52からメール処理部40に対して、宛先、タイトル、本文、差出人IDが送信される。したがって、利用者が「送信」ボタンを押した段階で、次のステップS66(通常メール送信処理)に移行する。
ステップS66では、メール処理部40は、図10のフローチャートに沿った処理を実行する。以下、図10の処理(通常メール送信処理)について説明する。
図10の処理では、まず、ステップS661において、メール処理部40は、前述したステップS46と同様、メッセージID、ヘッダを作成し、宛先、タイトル、本文を宛先のメールDB(受送信区分=「受信」)に追記する。これにより、作成された返信メールが宛先に対して送信(返信)されたことになる。次いで、ステップS662では、前述したステップS48と同様、メール処理部40が、メッセージID、宛先、タイトル、本文等を、送信者(差出人)のメールDB32(受送信区分=「送信」)に追記する。次いで、ステップS663では、メール処理部40が、返信元のメッセージIDと、本返信メールのメッセージIDとを返信管理DB34に登録する。以上により、ステップS66の全処理が終了するので、図13の処理に移行する。
図9に戻り、ステップS60の判断が肯定された場合、すなわち、返信元メールに複数の宛先が含まれていた場合(同報メールであった場合)には、ステップS68に移行する。そして、ステップS68では、メール処理部40は、返信元メールのメッセージIDが返信管理DB34に含まれるかを調べる。すなわち、返信元メールに対していずれかの利用者から返信メールが出されたかどうかを調べる。
次いで、ステップS70では、メール処理部40は、返信管理DB34に選択されたメールのメッセージIDが含まれているか否かを判断する。ここでの判断が否定された場合、すなわち、返信元メール(同報メール)に対して、未だいずれの利用者も返信していない場合には、ステップS72に移行する。ステップS72に移行すると、メール処理部40は、図18の画面に「返信(関連メール振り分け)」ボタンを追加した返信画面(図19の画面)のデータを作成し、クライアント20(表示処理部50)に対して送信する。表示処理部50では、該返信画面のデータを受信した段階で、図19の返信画面をディスプレイ193上に表示する。なお、「返信(関連メール振り分け)」ボタンは、同報メールに関連する(紐付く)メールを格納するための新たなフォルダを生成するか否かを利用者に選択させるための選択情報(ボタン)である。なお、図19の画面は、利用者が図16のメッセージ表示画面において「返信」ボタンを押した場合の例を示している。なお、利用者が図16の画面において「全員に返信」ボタンを押した場合には、図19の画面の宛先欄に返信元メールに含まれる他の宛先が加えられることになる。
次いで、ステップS74では、メール処理部40が、宛先、タイトル、本文、差出人IDを受信するまで待機する。この場合、利用者が図19の返信画面上で入力を行い、「返信(通常)」ボタン又は「返信(関連メール振り分け)」ボタンを押すと、クライアント20の入力処理部52からメール処理部40に対して、宛先、タイトル、本文、差出人IDが送信される。したがって、利用者がいずれかのボタンを押した段階で、次のステップS76に移行する。
ステップS76に移行すると、メール処理部40は、押下されたのが「返信(関連メール振り分け)」ボタンであったか否かを判断する。ここでの判断が否定された場合、すなわち、「返信(通常)」ボタンが押された場合には、ステップS66に移行し、上記と同様、図10の処理を実行して、図13の処理に移行する。一方、ステップS76の判断が肯定された場合には、ステップS78(メール送信(関連メール振り分け)処理)に移行する。
ステップS78では、メール処理部40は、図11のフローチャートに沿った処理を実行する。以下、図11の処理について説明する。
図11の処理では、まず、ステップS781において、前述したステップS46,S661と同様、メール処理部40が、メッセージID、ヘッダを作成し、宛先、タイトル、本文を宛先のメールDB32(受送信区分=「受信」)に追記する。これにより、作成された返信メールが宛先に対して送信(返信)されたことになる。次いで、ステップS782では、前述したステップS48,S662と同様、メール処理部40が、メッセージID、宛先、タイトル、本文を、送信者(差出人)のメールDB32(受送信区分=「送信」)に追記する。次いで、ステップS783では、前述したステップS663と同様、メール処理部40が、返信元のメッセージIDと、本返信メールのメッセージIDとを返信管理DB34に登録する。次いで、ステップS784では、メール処理部40が、返信管理DB34を用いて、返信元メッセージのルートメッセージ(この場合は、返信元メッセージがルートメッセージとなる)のIDを取得する。次いで、ステップS785では、メール処理部40が、ルートメッセージのメッセージIDと、発信元メールの件名及び差出人IDとを対応づけて、振り分けテーブル36に記録する。例えば、図19の返信画面上で作成された返信メールが送信された場合には、メール処理部40は、図6(b)に示すように、ルートメッセージのメッセージID「kaigi1@jp」とフォルダ名(一例として、発信元メールの件名及び差出人ID)「会議の出欠についてyamada@jp」とを対応付けて、振り分けテーブル36に記録する。このステップS785の処理は、第2の格納先としての新たなフォルダ「会議の出欠についてyamada@jp」を生成する処理であるとも言える。
なお、ステップS785では、図20に示すようなメッセージを表示することとしてもよい。図20で表示されているメッセージは、メール「会議の出欠について」(発信者yamada@jp)から派生したメール(紐付く返信メール)が、今後、フォルダ「会議の出欠についてyamada@jp」に振り分けられるということを利用者に伝えるものである。
以上により図11の処理(ステップS78の処理)が終了すると、図13の処理に移行する。
図9に戻り、ステップS70の判断が肯定された場合、すなわち、返信元のメールに対して、既にいずれかの利用者が返信している場合には、ステップS80に移行する。ステップS80に移行すると、メール処理部40は、図18の画面に対して「返信(関連メール振り分け)」ボタンと「返信(全て振り分け)」ボタンを追加した返信画面のデータを作成する。そして、メール処理部40は、作成した返信画面のデータをクライアント20(表示処理部50)に対して送信する。表示処理部50では、該返信画面のデータを受信した段階で、図21に示す返信画面を表示する。なお、「返信(全て振り分け)」ボタンも、「返信(関連メール振り分け)」ボタンと同様、同報メールに関連する(紐付く)メールを格納するための新たなフォルダを生成するか否かを利用者に選択させるための選択情報(ボタン)である。なお、図21の画面は、利用者が図16のメッセージ表示画面において「返信」ボタンを押した場合の例を示している。なお、利用者が図16の画面において「全員に返信」ボタンを押した場合には、図21の画面の宛先欄に返信元メールに含まれる他の宛先が加えられることになる。
次いで、ステップS82では、メール処理部40が、宛先、タイトル、本文、差出人IDを受信するまで待機する。この場合、利用者が図21の返信画面上で入力を行い、「返信(通常)」ボタン、「返信(関連メール振り分け)」ボタン又は「返信(全て振り分け)」ボタンを押すと、クライアント20の入力処理部52からメール処理部40に対して、宛先、タイトル、本文、差出人IDが送信される。したがって、利用者がいずれかのボタンを押した段階で、次のステップS84に移行する。
ステップS84に移行すると、メール処理部40は、利用者によって押下されたのが「返信(全て振り分け)」ボタンであったか否かを判断する。ここでの判断が否定された場合には、ステップS76に移行し、前述と同様の判断・処理を実行する。一方、ステップS84の判断が肯定された場合、すなわち、「返信(全て振り分け)」ボタンが押された場合には、ステップS86に移行する。
ステップS86に移行した場合、メール処理部40は、メール送信(全て振り分け)処理を実行する。ステップS86では、メール処理部40は、図12のフローチャートに沿った処理を実行する。以下、図12の処理について説明する。
図12の処理では、まず、ステップS861において、前述したステップS46,S661、S781と同様、メール処理部40が、メッセージID、ヘッダを作成し、宛先、タイトル、本文を宛先のメールDB32(受送信区分=「受信」)に追記する。これにより、作成された返信メールが宛先に対して送信(返信)されたことになる。次いで、ステップS862では、前述したステップS48、S662、S782と同様、メール処理部40が、メッセージID、宛先、タイトル、本文を、送信者(差出人)のメールDB32(受送信区分=「送信」)に追記する。次いで、ステップS863では、前述したステップS663、S783と同様、メール処理部40が、返信元のメッセージIDと、本返信メールのメッセージIDとを返信管理DB34に登録する。次いで、ステップS864では、前述したステップS784と同様、メール処理部40が、返信管理DB34を用いて、返信元メッセージのルートメッセージのIDを取得する。次いで、ステップS865では、前述したステップS785と同様、メール処理部40が、ルートメッセージのメッセージIDと、発信元メールの件名及び差出人IDとを対応づけて、振り分けテーブル36に記録する。このステップS865の処理は、第2の格納先としての新たなフォルダを生成する処理であるとも言える。
次いで、ステップS866では、メール処理部40は、返信管理DB34より、取得したルートメッセージのIDが設定されているレコードをすべて取得する。次いで、ステップS867では、メール処理部40は、取得したレコードの子メッセージの情報をメールDB32から全て取得する。そして、ステップS868では、メール処理部40は、取得したメッセージの情報を、先ほど記録した振り分けテーブルのフォルダに全て移動する(実際には、フォルダ名を変更する)。以上により、これまでに受信した「会議の出欠について」(発信者yamada@jp)のメールから派生したメールがフォルダ「会議の出欠についてyamada@jp」に振り分けられる。また、今後受信する「会議の出欠について」(発信者yamada@jp)のメールから派生したメールも、フォルダ「会議の出欠についてyamada@jp」に振り分けられることになる。なお、ステップS868においても、図20のようなメッセージをクライアント20のディスプレイ193上に表示するようにしてもよい。
以上により図12の処理(ステップS86の処理)が終了すると、図13の処理に移行する。
図13に移行すると、メール処理部40は、ステップS90において、メールDB32に新しいメッセージが追加されたか(受信したか)否かを判断する。なお、新しいメッセージは、メインフォルダに追加されるものとする。ステップS90の判断が否定された場合、ステップS104に移行するが、肯定された場合には、ステップS92に移行する。なお、ステップS92〜S102は、メール(新規メール、返信メールを含む)を受信したときにメール処理部40が実行する処理である。
ステップS92に移行すると、メール処理部40は、返信管理DB34に、追加されたメッセージのIDが含まれているかを判別する。すなわち、メール処理部40は、受信したメールが返信メールであるか否かを判別する。そして、ステップS94では、メール処理部40が、ステップS92の結果、返信管理DB34に含まれているか否かを判断し、判断が否定された場合には、ステップS104に移行する。一方、ステップS94の判断が肯定された場合には、ステップS96に移行する。
ステップS96に移行した場合、メール処理部40は、返信管理DB34から、受信メール(返信メール)に対応するルートメッセージのIDを取得する。次いで、ステップS98では、メール処理部40が、ルートメッセージのIDが、振り分けテーブル36に含まれているか否かを判断する。ここでの判断が否定された場合には、ステップS104に移行するが、肯定された場合には、ステップS100に移行する。
ステップS100に移行した場合、メール処理部40は、ルートメッセージのIDに対応するフォルダ名を振り分けテーブル36から取得する。次いで、ステップS102では、メール処理部40が、追加されたメッセージの情報を取得したフォルダ名に対応する欄に移動させる。なお、ステップS102では、メール処理部40は、実際には、メールDB32のフォルダ名の欄の記載をメインフォルダから振り分け先のフォルダに変更する処理を実行する(図22参照)。
ステップS102の後、あるいはステップS90、S94、S98のいずれかの判断が否定された後には、ステップS104に移行し、メール処理部40は、受信メール一覧画面の表示要求を受信したか否かを判断する。なお、利用者がメッセージ表示画面(図16)や返信画面(図18〜図21)において、「一覧表示に戻る」ボタンを押すと、クライアント20の入力処理部52からメール処理部40に対して受信メール一覧画面の表示要求が送信される。このように受信メール一覧表示の要求が出された場合(S104:肯定)には、メール処理部40は、図7のステップS22に移行する。なお、ステップS22に移行した段階で、図22に示すようにメールDB32の「フォルダ名」のフィールドに複数のフォルダ名(図22では、「メインフォルダ」と「会議の出欠についてyamada@jp」の2つ)が格納されている場合には、メール処理部40は、図23(a)に示すような受信メール一覧画面を表示する。なお、図23(a)の受信メール一覧画面では、メインフォルダ内のメッセージの情報を表示した画面となっている。そして、図8のステップS30の判断が肯定されると(利用者によってフォルダ「会議の出欠についてyamada@jp」が選択されると)、メール処理部40は、ステップS32において、利用者のメールDB32の選択されたフォルダ(フォルダ「会議の出欠についてyamada@jp」)から、受信メールの情報を取得し、受信メール一覧画面(図23(b))を作成し、クライアント20(表示処理部50)に送信する。
一方、図13のステップS104の判断が否定された場合、すなわち、受信メール一覧表示の要求が出されていない場合には、ステップS106に移行する。
ステップS106に移行すると、メール処理部40は、ログアウト要求を受信したか否かを判断する。なお、利用者が画面(図15〜図23)上において、「ログアウト」ボタンを押すと、クライアント20の入力処理部52からメール処理部40に対してログアウト要求が送信される。このようにログアウト要求が出された場合(S106:肯定)には、メール処理部40は、図7〜図13の全処理を終了するが、ログアウト要求が出されていない場合(S106:否定)には、図8のステップS30に移行する。
なお、図23(b)の受信メール一覧画面において、フォルダ「会議の出欠についてyamada@jp」内の上から2つ目のメールが選択された場合には、図24に示すようなメッセージ表示画面を表示するようにしてもよい。図24のメッセージ表示画面には、「振り分け解除」ボタンが用意されているものとする。利用者が「振り分け解除」ボタンを押した場合、メール処理部40は、表示しているメールをフォルダ「会議の出欠についてyamada@jp」から「メインフォルダ」に移動させる(メールDB32のフォルダ名を変更する)こととしてもよい。あるいは、利用者が「振り分け解除」ボタンを押した場合、メール処理部40は、フォルダ「会議の出欠についてyamada@jp」に格納されている全メールを「メインフォルダ」に移動させる(メールDB32のフォルダ名を変更する)こととしてもよい。
これまでの説明から明らかなように、本実施形態では、一例として、メール処理部40により、返信画面のデータをクライアント20に送信する送信部、返信画面上で作成されたメールの情報を受信する受信部、同報メールに関連するメールを格納するフォルダを生成する生成部、生成部により生成されたフォルダにメールを格納する格納部としての機能が実現されている。
以上、詳細に説明したように、本実施形態によると、メール処理部40は、送信元から複数の宛先に対して送信された同報メールをメールDB32のメインフォルダに格納し(S90)、同報メールに対する返信メールの作成要求をクライアント20から受信すると(S50:肯定)、同報メールに関連するメールを格納するフォルダを生成するか否かを選択させるための選択情報(「返信(関連メール振り分け)」ボタンや「返信(全て振り分け)」ボタン)を含む返信画面(図19、図21)のデータをクライアント20に送信する(S72、S80)。そして、メール処理部40は、クライアント20から返信画面上で作成されたメールの情報(宛先・タイトル・本文・差出人ID)を受信すると(S74、S82:肯定)、メールの情報に「返信(関連メール振り分け)」ボタンや「返信(全て振り分け)」ボタンが押された情報が含まれていれば、その振り分け用のフォルダを生成する(S78,S86)。このようにすることで、本実施形態では、クライアント20の利用者が同報メールに返信した適切なタイミングで、同報メールに関連するメール(紐付くメール)を格納するフォルダを作成することができる。これにより、同報メールに関連するメールを読む必要がなくなる(可能性が高い)タイミング以降は、該関連するメールがメインフォルダとは異なるフォルダに格納されるようになる。したがって、重要なメールと読む必要の無いメールとが同一フォルダ(本実施形態では、メインフォルダ)に混在しなくなるので、利用者にとっての利便性を向上することができる。また、利用者は、同報メールを送信するまでは、同報メールに対する他の利用者からの返信メールを読みたい場合も多い。本実施形態によれば、このような利用者が読みたいメールは、利用者が同報メールに返信するまではメインフォルダに格納されるので、利用者の利便性が損なわれることはない。
また、本実施形態では、メール処理部40は、フォルダ作成後に同報メールに関連するメールを新たに受信した場合、及びフォルダ作成前に同報メールに関連するメールを受信していた場合に、それらのメールを作成したフォルダに格納するようにしている(S868、S102)。これにより、メール処理部40は、フォルダ作成前後にかかわらず、受信した同報メールに関連するメールを全て新たに作成したフォルダに格納するので、利用者の利便性を向上することができる。
また、本実施形態では、メール処理部40は、新たに作成したフォルダを指定した表示要求をクライアント20から受信すると(S30:肯定)、新たに作成したフォルダに格納されているメールの表示画面(図23(a))のデータをクライアント20に対して送信する(S32)。これにより、本実施形態では、メインフォルダ内のメールのみならず、新たに作成したフォルダに格納されたメールの閲覧が可能となる。
なお、上記実施形態では、メール処理部40は、同報メールに関連するメール(紐付くメール)を格納するフォルダを作成した場合に、作成タイミングの前後に受信した関連するメール全てを作成したフォルダに移動する場合について説明した。しかしながら、これに限られるものではなく、メール処理部40は、例えば、作成タイミングの前に受信した関連するメールはフォルダに移動しないようにしてもよい。この場合、図9のステップS80〜S86の処理・判断を省略することとしてもよい。
なお、上記実施形態では、返信管理DB34がルートメッセージを格納する場合について説明したが、これに限られるものではない。例えば、返信管理DB34にはルートメッセージを格納しないこととしてもよい。この場合、メール処理部40は、ルートメッセージの確認が必要なときに、返信管理DB34の子メッセージと親メッセージの対応関係から、ルートメッセージを探すようにしてもよい。また、返信管理DB34を用意することなく、メールのヘッダ内のReply-To情報を用いて、親メッセージのIDを取得することでも実現可能である。
なお、上記実施形態では、メールDB32をメインフォルダ及び新たに作成されるフォルダごとに用意することとしてもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体(ただし、搬送波は除く)に記録しておくことができる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
なお、以上の実施形態の説明に関して、更に以下の付記を開示する。
(付記1) 送信元から複数の宛先に対して送信された同報メールを第1の格納先に格納し、
前記同報メールに対する返信メールの作成要求を端末から受信すると、前記同報メールに関連するメールを格納する第2の格納先を生成するか否かを選択させるための選択情報を該端末に送信し、
該端末からメール情報を受信し、
該メール情報に前記第2の格納先を生成する選択がされた情報が含まれていた場合に、前記第2の格納先を生成する、
処理をコンピュータに実行させることを特徴とするメール処理プログラム。
(付記2) 前記同報メールに関連するメールを受信した場合、及び前記同報メールに関連するメールを受信していた場合に、該メールを前記第2の格納先に格納する、処理を前記コンピュータに更に実行させることを特徴とする付記1に記載のメール処理プログラム。
(付記3) 送信元から複数の宛先に対して送信された同報メールを第1の格納先に格納する工程と、
前記同報メールに対する返信メールの作成要求を端末から受信すると、前記同報メールに関連するメールを格納する第2の格納先を生成するか否かを選択させるための選択情報を該端末に送信する工程と、
該端末からメール情報を受信する工程と、
該メール情報に前記第2の格納先を生成する選択がされた情報が含まれていた場合に、前記第2の格納先を生成する工程と、
をコンピュータが実行することを特徴とするメール処理方法。
(付記4) 前記同報メールに関連するメールを受信した場合、及び前記同報メールに関連するメールを受信していた場合に、該メールを前記第2の格納先に格納する工程を前記コンピュータが更に実行することを特徴とする付記3に記載のメール処理プログラム。
(付記5) 送信元から複数の宛先に対して送信された同報メールを格納する第1の格納先と、
前記同報メールに対する返信メールの作成要求を端末から受信すると、前記同報メールに関連するメールを格納する第2の格納先を生成するか否かを選択させるための選択情報を該端末に送信する送信部と、
該端末からメール情報を受信する受信部と、
該メール情報に前記第2の格納先を生成する選択がされた情報が含まれていた場合に、前記第2の格納先を生成する生成部と、
を備えるメール処理装置。
(付記6) 前記同報メールに関連するメールを受信した場合、及び前記同報メールに関連するメールを受信していた場合に、該メールを前記第2の格納先に格納する格納部を更に備える付記5に記載のメール処理装置。