図1は、この発明の一実施形態による電子メール通信システムの構成を示すブロック図である。
電子メール通信システム2は、メールサーバ装置4と、複数のメール送受装置6、6、・・・と、を備えており、メールサーバ装置4と各メール送受装置6とは、情報通信手段8を介して通信可能となっている。各メール送受装置6は、電子メールを送受信する機能を有する。
なお、この実施形態においては、登録ユーザと相手とが、同様の構成のメール送受装置を使用する場合と、異なる構成のメール送受装置を使用する場合とを想定しており、さらに、登録ユーザ自身も相手も、時により、異なる構成のメール送受装置を使用する場合を想定していることから、便宜上、これらのメール送受装置を区別せず、すべて、メール送受装置6と表現し、必要に応じ、登録ユーザのメール送受装置6、あるいは、相手のメール送受装置6、との表現を用いることとする。
図2は、メールサーバ装置4の構成を例示するブロック図である。
図2に示すように、メールサーバ装置4は、データベース25と転送処理部10とを備えている。
データベース25は、電子メールを送信する相手の電子メールアドレスである相手実アドレスと、相手から返信された電子メールを受信する本システム2の登録ユーザの電子メールアドレスであるユーザ実アドレスと、メールサーバ装置4の管理下にある電子メールアドレスであって登録ユーザの暫定的な電子メールアドレスであるコネクションアドレスに対応するコネクション識別標識(以下、「コネクションID」という。)とを、関連付けて記憶する。
データベース25は、さらに、コネクションIDごとに設定された、コネクションID有効期限を記憶するとともに、コネクションIDごとに設定された、コネクションIDの有効期限の自動更新を行うか否かの情報を記憶している。
この例では、データベース25は、アカウントマスタテーブル26と、コネクションテーブル27とを備えている。
転送処理部10は、データベース25に記憶されたデータに基づいて電子メールの転送処理を行うよう構成され、メール受信手段11、メール判定手段12、効力判定手段13、エンコード手段14、メール送信手段15、期限更新手段16、デコード手段17、エラーメール送信手段18、コネクション作成手段19、コネクション作成・デコード手段20を備えている。
メール受信手段11は、情報通信手段8を介してメール送受装置6から電子メールを受信する。
メール判定手段12は、メール受信手段11において受信した電子メールが、登録ユーザから相手に送ることを目的とする相手宛メールか、相手から登録ユーザに送ることを目的とするユーザ宛メールかを、電子メールのヘッダ情報に基づいて判定する。
ここにいう電子メールのヘッダ情報とは、電子メールのヘッダを構成するヘッダ名(すなわち、フィールド名)、および/または、フィールド値をいう。
どのヘッダ情報に基づいてどのように当該判定をするかは、とくに限定されるものではないが、たとえば、相手宛メールかユーザ宛メールかを判定するための専用ヘッダの有無、あるいは、当該専用ヘッダのフィールド値に基づいて判定するよう構成することができる。
この実施形態においては、当該専用ヘッダとして、相手実アドレスをフィールド値とする専用ヘッダ(たとえば、図13に示す「x−unidto:」ヘッダ)を新たに設定し、この専用ヘッダの有無により判定するよう構成している。
すなわち、受信した電子メールが「x−unidto:」ヘッダを持っているか否かを判断し、持っている場合は、相手宛メールであり、持ってない場合は相手宛メールでないと判定する。とくに、後述の、受信した電子メールがコネクション発行要求メールか否かについての判断を、先に済ませるよう構成した場合など、受信した電子メールが、相手宛メールおよびユーザ宛メールのいずれかであるような状況においては、「x−unidto:」ヘッダの有無のみで、相手宛メールかユーザ宛メールかを判定することができる。
これ以外に、たとえば、送信元ヘッダや宛先ヘッダのような汎用ヘッダ(一般的に用いられているヘッダ)のヘッダ情報に基づいて判断するよう構成することもできる。
たとえば、受信した電子メールの送信元ヘッダ(たとえば、図13に示す「from:」ヘッダ)のフィールド値、すなわち、当該電子メールの送信元である電子メールアドレス、で判断する場合は、当該フィールド値が、データベース25に記憶されているユーザ実アドレスと一致すれば相手宛メールであり、相手実アドレスと一致すればユーザ宛メールであると判定する。
もっとも、送信元ヘッダのフィールド値に基づいて判断する場合、送信元が、データベース25に記憶されているユーザ実アドレスおよび相手実アドレス以外の電子メールアドレスである場合は、相手宛メールかユーザ宛メールかの判定をすることはできない。
したがって、たとえば、本システム2を利用して登録ユーザからの電子メールを受取った相手が、別の電子メールアドレスから返信してきた場合には、原則として、ユーザ宛メールとは判定できない。相手宛メールの場合も同様である。
上述の「x−unidto:」ヘッダに基づいて判定するよう構成すれば、このような問題を生じないから、好都合である。
この実施形態においては、メール受信手段11は、さらに、コネクション発行要求メール、すなわち、登録ユーザからメールサーバ装置4に対して相手実アドレスを特定してコネクションIDの発行を求めるための電子メール、をも受信するよう構成され、メール判定手段12は、メール受信手段11において受信した電子メールが、当該コネクション発行要求メールか否かについても、電子メールのヘッダ情報に基づいて判定するよう構成されている。
どのヘッダ情報に基づいて、どのように当該判定をするかは、とくに限定されるものではないが、この実施形態においては、受信した電子メールの宛先ヘッダ(たとえば、図12に示す「to:」ヘッダ)のフィールド値、すなわち、当該電子メールの宛先である電子メールアドレス、で判断するよう構成している。
たとえば、当該フィールド値を構成する電子メールアドレスのローカルパートが、データベース25に記憶されているユーザ識別標識(登録ユーザごとに与えられ、登録ユーザを特定するためのユニークな識別標識)に該当するか否かを判断し、該当すれば当該登録ユーザからのコネクション発行要求メールであると判定する。
なお、この実施形態においては、受信した電子メールが、上記「x−unidto:」ヘッダを持っておらず、かつ、宛先ヘッダで示される電子メールアドレスのローカルパートが、データベース25に記憶されているユーザ識別標識に該当しない場合は、ユーザ宛メールであると判定するよう構成している。
つぎに、デコード手段17は、メール判定手段12において電子メールが相手宛メールであると判定された場合に、この相手宛メールの本文および件名を変更することなく、宛先を表す宛先ヘッダのフィールド値として相手実アドレスを書き込み、送信元を表す送信元ヘッダのフィールド値として、コネクションIDに対応するコネクションアドレスを書き込んだ電子メールである相手宛転送メールを生成する。
なお、この例では、相手宛メールの本文および件名を変更することなく、相手宛転送メールの本文および件名とするよう構成しているが、この発明は、これに限定されるものではない。
たとえば、相手宛メールの本文または件名にコメントや記号を追加して、相手宛転送メールの本文、件名とすることもできる。すなわち、相手宛転送メールの本文が相手宛メールの本文をそっくり含むよう構成したり、相手宛転送メールの件名が相手宛メールの件名をそっくり含むよう構成したりすることができる。
また、相手宛メールの本文または件名が、たとえば所定長を超えるなど本システムの要件を満たさない場合等に、相手宛メールの本文または件名を一部削除したり変更したりして相手宛転送メールの本文または件名とすることもできる。すなわち、相手宛転送メールの本文が相手宛メールの本文を実質的に含むよう構成したり、相手宛転送メールの件名が相手宛メールの件名を実質的に含むよう構成したりすることができる。
要は、相手宛メールの本文および件名を実質的に変更することなく、相手宛転送メールの本文および件名とするよう構成すればよい。
この実施形態においては、デコード手段17は、相手宛転送メールを生成する際に、相手宛メールに記載されていた「x−unidto:」ヘッダを削除するよう構成されている。
エンコード手段14は、メール判定手段12において電子メールがユーザ宛メールであると判定された場合に、このユーザ宛メールの本文および件名を変更することなく、宛先ヘッダのフィールド値としてユーザ実アドレスを書き込んだ電子メールであるユーザ宛転送メールを生成する。このユーザ宛転送メールのヘッダ情報は、ユーザ宛転送メールを受信したメール送受装置6においてユーザ宛転送メールの本文を書き換えたうえで返信すると相手宛メール(この場合は、相手に対する再送信メール)となるよう構成されている。
ユーザ宛転送メールを受信したメール送受装置6において返信すると相手宛メールとなるようにするために、ユーザ宛転送メールの宛先ヘッダのフィールド値としてユーザ実アドレスを書き込むとともに、送信元ヘッダのフィールド値として、たとえば、相手実アドレスを書き込むよう構成することもできる。
ただし、この場合、このユーザ宛転送メールに対する返信として相手に再送信された相手宛メールが、上記デコード手段17において処理されるためにはメールサーバ装置4を経由しなければならず、そのためには、たとえば、上記ユーザ実アドレスとして、メールサーバ装置4の管理下にある電子メールアドレスを用いるなどの制約が必要となる。
この実施形態においては、エンコード手段14は、ユーザ宛転送メールの送信元ヘッダのフィールド値としてコネクションアドレスを書き込むよう構成されている。このため、上記制約は、必要ではない。
なお、この例では、ユーザ宛メールの本文および件名を変更することなく、ユーザ宛転送メールの本文および件名とするよう構成しているが、この発明は、これに限定されるものではない。
たとえば、ユーザ宛メールの本文または件名にコメントや記号を追加して、ユーザ宛転送メールの本文、件名とすることもできる。すなわち、ユーザ宛転送メールの本文がユーザ宛メールの本文をそっくり含むよう構成したり、ユーザ宛転送メールの件名がユーザ宛メールの件名をそっくり含むよう構成したりすることができる。
また、ユーザ宛メールの本文または件名が、たとえば所定長を超えるなど本システムの要件を満たさない場合等に、ユーザ宛メールの本文または件名を一部削除したり変更したりしてユーザ宛転送メールの本文または件名とすることもできる。すなわち、ユーザ宛転送メールの本文がユーザ宛メールの本文を実質的に含むよう構成したり、ユーザ宛転送メールの件名がユーザ宛メールの件名を実質的に含むよう構成したりすることができる。
要は、ユーザ宛メールの本文および件名を実質的に変更することなく、ユーザ宛転送メールの本文および件名とするよう構成すればよい。
この実施形態においては、さらに、エンコード手段14は、ユーザ宛転送メールを生成する際に、専用ヘッダとして「x−unidto:」ヘッダを追記する。この追記される「x−unidto:」ヘッダのフィールド値を構成する相手実アドレスとして、上記ユーザ宛メールの送信元ヘッダのフィールド値(すなわち、このユーザ宛メールの送信元を表す電子メールアドレス)が書き込まれる。この、ユーザ宛メールの送信元を表す電子メールアドレスを、とくに、返信元実アドレスという。
したがって、生成されたユーザ宛転送メールには、相手実アドレスである返信元実アドレスが、専用ヘッダのフィールド値として記載されることになる。
期限更新手段16は、メール判定手段12において電子メールが相手宛メールであると判定された場合に、この相手宛メールに対応するコネクションIDの有効期限の自動更新を行うか否かを、データベース25に記憶されたデータに基づいて判定し、有効期限を更新すると判定した場合は、データベース25に記憶されたコネクションIDの有効期限を、更新する。一方、有効期限を更新しないと判定した場合は、データベース25に記憶されたコネクションIDの有効期限を更新しない。
効力判定手段13は、メール判定手段12において電子メールがユーザ宛メールであると判定された場合に、上述のエンコード手段14による処理に先立って、このユーザ宛メールに対応するコネクションIDの有効期限が切れているか否かを、データベース25に記憶されたデータに基づいて判定し、コネクションIDの有効期限が切れていないと判定した場合は、このユーザ宛メールについてエンコード手段14に制御を移す。
エラーメール送信手段18は、効力判定手段13においてコネクションIDの有効期限が切れていると判定された場合に、このユーザ宛メールの送信元に、ユーザ宛メールがエラー送信である旨を記載した電子メールを送信する。
コネクション作成手段19は、メール判定手段12において電子メールがコネクション発行要求メールであると判定された場合に、新たなコネクションIDを発行する。
そして、このコネクション発行要求メールによって特定された相手実アドレスと、コネクション発行要求メールによって、または、予めデータベース25に記憶されているデータによって特定されたユーザ実アドレスと、新たなコネクションIDと、を関連付けてデータベース25に記憶する。
さらに、宛先ヘッダのフィールド値としてユーザ実アドレスを書き込んだ電子メールであるテンプレートメールを作成する。このテンプレートメールは、テンプレートメールを受信したメール送受装置6においてこのテンプレートメールの本文を書き換えたうえで返信すると相手宛メールとなるよう構成されている。
この実施形態においては、コネクション作成手段19は、テンプレートメールの送信元ヘッダのフィールド値としてコネクションアドレスを書き込むよう構成されている。
この実施形態においては、さらに、コネクション作成手段19は、テンプレートメールを生成する際に、専用ヘッダとして、コネクション発行要求メールによって特定された相手実アドレスをフィールド値とする「x−unidto:」ヘッダを、追記する。登録ユーザによって特定されデータベース25に記憶された相手実アドレスを、とくに、宛先実アドレスという。
したがって、生成されたテンプレートメールには、相手実アドレスである宛先実アドレスが、専用ヘッダのフィールド値として記載されることになる。
コネクション作成・デコード手段20は、情報通信手段8を介して登録ユーザのメール送受装置6から、相手実アドレスおよび被伝達データを特定したコネクション発行・相手宛転送メール生成要求信号を受信すると、新たなコネクションIDを発行する。
そして、このコネクション発行・相手宛転送メール生成要求信号によって特定された相手実アドレスと、当該要求信号によって、または、予めデータベース25に記憶されているデータによって特定されたユーザ実アドレスと、新たなコネクションIDと、を関連付けてデータベース25に記憶する。
さらに、宛先ヘッダのフィールド値として相手実アドレスを書き込み、送信元ヘッダのフィールド値として新たなコネクションIDに対応するコネクションアドレスを書き込み、本文として被伝達データを書き込んだ電子メールを生成する。
なお、コネクション発行・相手宛転送メール生成要求信号によって特定された相手実アドレスも、登録ユーザによって特定されデータベース25に記憶された相手実アドレスであるから、宛先実アドレスである。
メール送信手段15は、デコード手段17、エンコード手段14、コネクション作成手段19、または、コネクション作成・デコード手段20において生成された電子メールを、これらの電子メールのヘッダ情報にしたがって情報通信手段8を介して送信する。
図3は、メール送受装置6の構成を例示するブロック図である。
図3に示すように、メール送受装置6は、メール処理部30およびローカルデータベース35を備えている。ローカルデータベース35は、メールサーバ装置4のデータベース25に記憶されているデータの一部と同一のデータにより構成されている。ローカルデータベース35を用いることで、メール送受装置6のメール処理部30等における処理の一部が、メールサーバ装置4と通信することなしに、実行可能となる。
この例では、ローカルデータベース35は、ローカルコネクションテーブル37を備えている。
なお、相手のメール送受装置6においては、ローカルデータベース35は不要であり、登録ユーザのメール送受装置6においても、メール処理部30等における処理を行う上で、ローカルデータベース35は必須のものではなく、必要に応じて装備すればよい。
メール処理部30は、メールクライアント手段31、コネクション発行要求手段32、送受装置側コネクション発行・メール生成手段33、相手宛メール生成手段34、コネクションリスト等表示手段39を備えている。
なお、相手のメール送受装置6のメール処理部30においては、メールクライアント手段31以外の手段は不要であり、登録ユーザのメール送受装置6のメール処理部30においても、メールクライアント手段31以外の手段は必須のものではなく、必要に応じて装備すればよい。
コネクション発行要求手段32は、相手実アドレスを特定してコネクションIDの発行を求める信号が入力されると、コネクション発行要求メールを生成し、情報通信手段8を介して、メールサーバ装置4に送信する。相手実アドレスを特定してコネクションIDの発行を求める信号は、たとえば、メール送受装置6の入力装置66から入力される。
コネクション発行要求メールは、相手実アドレスを特定して、メールサーバ装置4に対し、新たなコネクションIDの発行と、当該コネクションID、相手実アドレス、ユーザ実アドレスを関連付けてデータベース25に記憶することを求めるとともに、テンプレートメールを作成して、ユーザ実アドレスに送信することを求めるための電子メールである。
コネクション発行要求メールの宛先となる電子メールアドレスは、とくに限定されるものではないが、メールサーバ装置4の管理下にある電子メールアドレスであって当該登録ユーザを特定できるものが好ましい。この実施形態においては、ユーザ識別標識により構成されたローカルパートと、メールサーバ装置4を表すドメイン名とにより、コネクション発行要求メールの宛先となる電子メールアドレスが構成されている。
送受装置側コネクション発行・メール生成手段33は、コネクション発行・メール生成手段を構成するメール送受装置6側の手段である。コネクション発行・メール生成手段は、新たなコネクションIDの発行および登録と、このコネクションIDに対応するコネクションアドレスを用いた電子メール(相手宛メールまたは相手宛転送メール)の作成および送信とを、一連の処理として連続的に実行する手段である。
この実施形態においては、コネクション発行・メール生成手段において生成される電子メールが相手宛転送メールである場合について説明する。
この場合におけるコネクション発行・メール生成手段を、とくに、コネクション発行・相手宛転送メール生成手段といい、そのメール送受装置6側の手段を、送受装置側コネクション発行・相手宛転送メール生成手段という。すなわち、この実施形態においては、送受装置側コネクション発行・メール生成手段33は、送受装置側コネクション発行・相手宛転送メール生成手段を意味する。
すなわち、送受装置側コネクション発行・相手宛転送メール生成手段としての送受装置側コネクション発行・メール生成手段33は、相手実アドレスおよび被伝達データを特定してコネクション発行・相手宛転送メール生成要求信号の生成を求める信号が入力されると、コネクション発行・相手宛転送メール生成要求信号を生成し、情報通信手段8を介して、メールサーバ装置4に送信する。相手実アドレスおよび被伝達データを特定してコネクション発行・相手宛転送メール生成要求信号の生成を求める信号は、たとえば、メール送受装置6の入力装置66から入力される。
コネクション発行・相手宛転送メール生成要求信号は、相手実アドレスおよび被伝達データを特定して、メールサーバ装置4に対し、新たなコネクションIDの発行と、当該コネクションID、相手実アドレス、ユーザ実アドレスを関連付けてデータベース25に記憶することを求めるとともに、被伝達データを本文とし、デコード手段17において生成される相手宛転送メールと同様の電子メールを作成して、相手実アドレスに送信することを求める信号である。
この実施形態においては、コネクション発行・相手宛転送メール生成要求信号には、登録ユーザにより指定されたユーザ実アドレスを特定するデータも含まれている。
相手宛メール生成手段34は、コネクションIDおよび被伝達データを特定して、相手宛メールの生成を求める信号が入力されると、当該コネクションIDと関連付けられた相手に対する、被伝達データを本文とした相手宛メールを生成し、情報通信手段8を介して、メールサーバ装置4に送信する。相手宛メールの生成を求める信号は、たとえば、メール送受装置6の入力装置66から入力される。
メールクライアント手段31は、たとえば、一般的な(すなわち、汎用の)メールクライアントプログラム(あるいは、MUA、すなわち、mail user agent)により構成され、電子メールの作成、送信、受信、閲覧、編集、返信等が可能である。
メール送受装置6の上記各手段における電子メールの送受信処理については、メールクライアント手段31の全部または一部の機能を利用するようにしてもよいし、別途用意された同様の機能を利用するようにしてもよい。
コネクションリスト等表示手段39は、登録ユーザのメール送受装置6の表示装置64に、コネクションリスト等表示画面80(図18参照)を表示する。
コネクションリスト等表示画面80には、当該登録ユーザと関連付けられたコネクションIDを表すコネクション名(コネクションIDによって特定されるコネクションの名称)の記載されたコネクション名ボタン81a、81b、・・・を一覧表示してなるコネクションリスト81が表示される。
コネクションリスト等表示画面80には、さらに、新規コネクションボタン82、新規コネクション・メール生成ボタン83が表示されている。
コネクションリスト等表示画面80は、メール送受装置6の入力装置66としても機能し、新規コネクションボタン82が選択(たとえば、クリックやタップ。以下同様)されると、コネクション発行要求手段32による処理が開始される。
新規コネクション・メール生成ボタン83が選択されると、送受装置側コネクション発行・メール生成手段33による処理が開始される。
コネクション名ボタン81a、81b、・・・のいずれかが選択されると、選択されたコネクション名ボタンに対応するコネクションIDに関する相手宛メール生成手段34による処理が開始される。
図4は、図2に示すメールサーバ装置4および図3に示すメール送受装置6のハードウェア構成の一例を示すブロック図であって、メールサーバ装置4およびメール送受装置6として、それぞれ1台のコンピュータ用いた場合の例である。
メールサーバ装置4は、とくに限定されるものではないが、この例では、一般的なサーバコンピュータと同様の構成である。
メールサーバ装置4は、電子メール通信システム2のメールサーバ装置4側のプログラムを記憶した記録媒体であり、データベース25の記憶媒体でもあるハードディスクを備えたHDD(ハードディスクドライブ)等の補助記憶装置50、補助記憶装置50に記憶されたプログラムがロードされる主記憶装置48、主記憶装置48にロードされたプログラムを実行する転送処理部10に対応するCPU42,LCD(液晶表示装置)等の表示装置44,キーボード、マウス、トラックパッド等の入力装置46、および、情報通信手段8を介してメール送受装置6と通信するための通信インタフェース52を備えている。
メール送受装置6は、とくに限定されるものではなく、たとえばパーソナルコンピュータであってもよいし、タブレット型コンピュータであってもよいし、携帯情報端末装置であってもよいし、いわゆるスマートフォンに代表される携帯電話機であってもよい。
メール送受装置6は、電子メール通信システム2のメール送受装置6側のプログラムを記憶した記録媒体であるフラッシュメモリを搭載したSSD(ソリッドステートドライブ)等の補助記憶装置70、補助記憶装置70に記憶されたプログラムがロードされる主記憶装置68、主記憶装置68にロードされたプログラムを実行するメール処理部30に対応するCPU62、LCD(液晶表示装置)等の表示装置64,入力キー、タッチパネル等の入力装置66、および、情報通信手段8を介してメールサーバ装置4と通信するための通信インタフェース72、を備えている。
情報通信手段8は、電気信号、光信号等に変換された情報を伝達するための通信手段であって、有線、無線の別を問わない。情報通信手段8として、インターネットに代表されるWAN(Wide Area Network)、LAN(Local Area Network)等のコンピュータネットワーク、電話回線(携帯電話回線を含む。)、専用回線等の通信回線、通信ケーブルや赤外線等による直接接続、あるいはこれらを組合わせたものが例示される。
図5〜図10は、電子メール通信システム2を構成するメールサーバ装置4における処理の流れの一例を示すフローチャートである。
図12は、図6に示す新規コネクション作成処理における処理内容を説明するための図面である。図13は、図8に示すヘッダデコード処理における処理内容を説明するための図面である。図14は、図9に示すヘッダエンコード処理における処理内容を説明するための図面である。図15は、再送信(登録ユーザから相手への返信)の場合における図8のヘッダデコード処理の内容を説明するための図面である。
図11Aは、アカウントマスタテーブル26のデータ構成の一例を示す図面である。図11Bは、コネクションテーブル27のデータ構成の一例を示す図面である。
図11Aに示すように、アカウントマスタテーブル26には、本システム2の登録された利用者である登録ユーザの属性に関するアカウント情報が記憶されている。アカウントマスタテーブル26に記憶された各レコードをアカウントレコードという。
アカウントマスタテーブル26のフィールドのうち、unIDアカウント26aは、ユーザ識別標識を表す。
なお、本明細書においては、とくに断らないかぎり、データベース25(すなわち、アカウントマスタテーブル26およびコネクションテーブル27)のフィールド名に符号を付して表したもの(たとえば、「unIDアカウント26a」)は、当該フィールドのデータを表すものとする。
デフォルト実アドレス26dは、登録ユーザのデフォルトの電子メールアドレスを表す。
アカウントマスタテーブル26の返信先アドレス設定26eは、図9に示すヘッダエンコード処理におけるユーザ宛転送メールの宛先となる電子メールアドレス、すなわち、ユーザ実アドレスをどのように特定するかを指定するデータであって、登録ユーザにより指定される。
この返信先アドレス設定26eで「デフォルト」が指定されている場合は、ユーザ実アドレスとして、上記デフォルト実アドレス26dがあてられる。一方、「送信元」が指定されている場合は、ユーザ実アドレスとして、図11Bに示すコネクションテーブル27のフィールドの1つである送信元実アドレス27eがあてられる。
つまり、アカウントマスタテーブル26のデフォルト実アドレス26dまたはコネクションテーブル27の送信元実アドレス27eが、ユーザ実アドレスに該当する。
アカウントマスタテーブル26のフィールドのうち、延長期間設定値26fは、コネクションIDの延長期間を示す。
つぎに、図11Bに示すコネクションテーブル27には、登録ユーザと相手との関係に関するコネクション情報が記憶されている。コネクションテーブル27に記憶された各レコードをコネクションレコードという。
コネクションテーブル27のフィールドのうち、コネクションID27bは、コネクションIDを示すデータである。コネクションIDは、登録ユーザの暫定的な電子メールアドレスであるコネクションアドレスに対応しており、通常、メールサーバ装置4により自動的に付与されるユニークなデータである。つまり、コネクションIDは、目的ごとに設定された、ユーザと相手との電子メールを介してのつながり(コネクション)を表す識別標識である。
この例では、コネクションIDにより構成されたローカルパートと、メールサーバ装置4を表すドメイン名とにより、コネクションアドレスが構成されている。
なお、コネクションIDとコネクションアドレスとが、一意的な(すなわち、1対1の)対応関係にあるのであれば、コネクションアドレスは、コネクションIDにより構成されたローカルパートと、メールサーバ装置4を表すドメイン名とにより、構成されたものに限定されるものではない。もちろん、コネクションIDとコネクションアドレスとが同一のものであってもよい。
コネクションテーブル27のunIDアカウント27cは、アカウントマスタテーブル26のunIDアカウント26aと同じデータであり、このunIDアカウント27cとunIDアカウント26aとにより、コネクションテーブル27のコネクションレコードと、アカウントマスタテーブル26のアカウントレコードとが関連付けられている。
宛先実アドレス27dは、通常、新たなコネクションIDを発行する際に登録ユーザによって与えられる相手実アドレスである。この宛先実アドレス27d、または、上述のユーザ宛メールの送信元ヘッダのフィールド値を構成する電子メールアドレスである返信元実アドレスが、相手実アドレスに該当する。
つぎに、送信元実アドレス27eは、通常、メールサーバ装置4によって取得された、上述のコネクション発行要求メールの送信元の電子メールアドレス、または、コネクション発行・相手宛転送メール生成要求信号により特定されたユーザ実アドレスである。
この例では、メールサーバ装置4は、さらに、登録ユーザから相手宛メールを受信するたびに、受信した相手宛メールの送信元の電子メールアドレスを取得し、取得した電子メールアドレスで、送信元実アドレス27eを更新するよう構成されている。したがって、この例では、送信元実アドレス27eは、直前の(最新の)相手宛メールの送信元の電子メールアドレスとなっている。
有効期限27gは、コネクションIDの有効期限(すなわちコネクションアドレスの有効期限)である。
自動更新27iは、図7に示す有効期限延長処理において、有効期限の自動更新を行うか否かを示すデータであり、このデータが「1」であれば自動更新を行い、「0」であれば自動更新を行わない。
無効化27kは、コネクションIDが無効であるか否かを示すデータであり、このデータが「1」であればコネクションIDが無効であり、「0」であればコネクションIDが有効であることを示す。コネクションIDが期限切れとなったときや、有効期限内であっても登録ユーザがコネクションIDを中途破棄したときは、無効化が「1」となり、以後、相手からのユーザ宛メールは登録ユーザに転送されなくなる。
なお、無効化27kに基づくコネクションIDが有効か無効かの判断は、たとえば、図2に示す効力判定手段13(これに対応する後述のステップS9およびステップS10に示す処理)における有効期限の判断と同時に行わせればよい。
コネクションテーブル27のフィールドのうち、アカウントマスタテーブル26のフィールドと同質のデータにより構成されているフィールドであって、unIDアカウント27c以外のフィールド、すなわち、この例では、コネクションテーブル27の返信先アドレス設定27fおよび延長期間設定値27h(なお、この例では、フィールド名もアカウントマスタテーブル26のそれと同一となっている。)については、コネクションテーブル27のデータが優先される。
したがって、コネクションテーブル27の当該フィールドに有意なデータが記載されている場合は、該当する処理においてこのデータが用いられ、コネクションテーブル27に有意なデータが記載されていない場合(たとえば、当該データが「null」の場合)にかぎり、対応するアカウントマスタテーブル26のデータが用いられる。
つぎに、図5〜図15を参照しつつ、メールサーバ装置4における処理の手順について説明する。
なお、本出願に含まれる図面において、<>内に記載された文字は、データの項目名を表し、<項目名>で示されたものは、とくに断らないかぎり、当該項目名で示された項目のデータを表すものとする。項目名が、データベース25(すなわち、アカウントマスタテーブル26およびコネクションテーブル27)におけるフィールド名である場合は、とくに断らないかぎり、<フィールド名>(たとえば、<コネクションID>)は、当該データベース25における該当するフィールドのデータを表すものとする。また、""内に記載された文字は、データそのものを表すものとする。
図5に示すように、メールサーバ装置4のCPU42(図4参照)は、電子メールの着信を監視しており、電子メールを受信すると(ステップS1)、この電子メールが、専用ヘッダである「x−unidto:」ヘッダを持っているか否かを判断する(ステップS2)。
ステップS2において、「x−unidto:」ヘッダを持っていないと判断した場合は、この電子メールの宛先ヘッダである「to:」ヘッダのローカルパートと、アカウントマスタテーブル26のunIDアカウント26aとを照合し(ステップS3)、マッチすれば、この電子メールは、マッチしたunIDアカウント26aに対応する登録ユーザからのコネクション発行要求メールであると判定し(ステップS4)、新規コネクション作成処理を実行する(ステップS5)。
図12に、登録ユーザのメール送受装置6から送信されたコネクション発行要求メール91の構成を例示する。
図6に示すように、新規コネクション作成処理においてCPU42は、新たなコネクションIDを発番するとともに(ステップS21)、当該新たなコネクションIDに対応する新たなコネクションレコードをコネクションテーブル27に登録する(ステップS22)。
すなわち、新たなコネクションID27b、当該登録ユーザのunIDアカウント27c、コネクション発行要求メール91の本文において特定された宛先実アドレス27d、当該コネクション発行要求メール91の送信元ヘッダのフィールド値である送信元実アドレス27eなど、所定のフィールドからなる新たなコネクションレコードが、コネクションテーブル27に追加される。
この例では、新規コネクション作成処理においてコネクションテーブル27に追加される宛先実アドレス27dをコネクション発行要求メール91によって特定するための具体的構成として、宛先実アドレス27dをコネクション発行要求メール91の本文に記載する方法を例示しているが、宛先実アドレス27dをコネクション発行要求メール91によって特定する具体的構成は、これに限定されるものではない。
たとえば、宛先実アドレス27dを、コネクション発行要求メール91のヘッダに記載する方法もある。より具体的には、件名を表す件名ヘッダ等の汎用ヘッダを転用したり、専用ヘッダを設けたりして、当該ヘッダのフィールド値として宛先実アドレス27dを記載する方法が例示できる。
また、この例では、新規コネクション作成処理においてコネクションテーブル27に追加される送信元実アドレス27eとして、コネクション発行要求メール91の送信元ヘッダのフィールド値を用いているが、新規コネクション作成処理においてコネクションテーブル27に追加される送信元実アドレス27eは、これに限定されるものではない。
新規コネクション作成処理においてコネクションテーブル27に追加される送信元実アドレス27eとして、たとえば、コネクション発行要求メール91の本文やヘッダ(汎用ヘッダを転用したもの、または、新たに設定された専用ヘッダ)において、登録ユーザが任意に指定した電子メールアドレスを用いるよう構成したり、上記送信元実アドレス27eとして、データベース25に予め記憶されている登録ユーザの電子メールアドレス(たとえば、アカウントマスタテーブル26のデフォルト実アドレス26d)を用いるよう構成したり、これらの方法から登録ユーザが選択できるよう構成したりすることができる。
もっとも、新規コネクション作成処理においてコネクションテーブル27に追加される送信元実アドレス27eとして、コネクション発行要求メール91の送信元ヘッダのフィールド値を用いる場合であっても、登録ユーザが、保持している電子メールアドレス(すなわち、メールアカウント)から所望の電子メールアドレスを選択することができ、選択された電子メールアドレスからコネクション発行要求メール91を送信することができるよう構成しておけば、登録ユーザは、所望の電子メールアドレスでテンプレートメールを受信することができる。
なお、図11Bに示すコネクションレコードのフィールドのうち、上で明記した以外のフィールドのデータについては、メールサーバ装置4において予め定めたデータを生成するようにしてもよいし、コネクション発行要求メールにおいてこれらのデータを特定させるようにしてもよいし、図3に示すメール送受装置6のコネクション発行要求手段32において、メールサーバ装置4に直接これらのデータを送信させるようにしてもよいし、これらを組み合わせて行うよう構成してもよい。
つぎにCPU42は、テンプレートメールを作成し(ステップS23)、送信する(図5、ステップS6)。
図12に、メールサーバ装置4から送信されたテンプレートメール92の構成を例示する。
メールサーバ装置4から送信されたテンプレートメール92は、登録ユーザのメール送受装置6の送信元実アドレスに送られる。これを受信した登録ユーザにより、その本文が書き換えられて返信されたものが相手宛メールである。
図13に、登録ユーザのメール送受装置6から返信された相手宛メール93の構成を例示する。
登録ユーザのメール送受装置6から返信された相手宛メール93は、メールサーバ装置4に設定された当該登録ユーザの該当するコネクションアドレスに送られる。
図5に戻って、ステップS2において、受信した電子メールが、「x−unidto:」ヘッダを持っていると判断した場合、CPU42は、受信した電子メールが相手宛メール93であると判定し、有効期限延長処理を行う(ステップS7)。
図7に示す有効期限延長処理において、CPU42は、コネクションテーブル27から当該相手宛メール93の「to:」ヘッダのローカルパートを構成しているコネクションIDに対応するコネクションレコードから、自動更新27iなど必要なデータを取得し(ステップS31)、取得した自動更新27iが「1」であるか「0」であるかを判断する(ステップS32)。
CPU42は、自動更新27iが「1」であると判断すると、有効期限27gを更新すると判定し、さらに、コネクションテーブル27の延長期間設定値27hにデータが記載されているかをチェックする(ステップS33)。
コネクションテーブル27の延長期間設定値27hにデータが記載されていると判断した場合、CPU42は、コネクションテーブル27の有効期限27gを、現在時刻(すなわちメールサーバ装置4に保持されている現在の日時を表すデータ)に、この延長期間設定値27hを加えたものに更新する(ステップS35)。
一方、ステップS33において、コネクションテーブル27の延長期間設定値27hに何も記載されていないと判断した場合、CPU42は、アカウントマスタテーブル26に記載されている延長期間設定値26fを取得し(ステップS34)、取得した延長期間設定値26fに基づいて上記ステップS35の処理を行う。
図5に戻って、CPU42は、つぎにヘッダデコード処理を行う(ステップS8)。
図8に示すように、CPU42は、基本ヘッダデコード処理を行う(ステップS41)。基本ヘッダデコード処理においては、まず、受信した相手宛メール93(図13参照)の「from:」ヘッダが削除され、「to:」ヘッダのヘッダ名が「from:」に変更され、「x−unidto:」ヘッダのヘッダ名が「to:」に変更される。
つぎにCPU42は、「cc:」ヘッダのフィールド値をチェックし(ステップS42)、当該フィールド値が"replyAll"以外のものである場合、あるいは、「cc:」ヘッダそのものがない場合には、ヘッダデコード処理を終了し、当該フィールド値が"replyAll"である場合は、追加のヘッダデコード処理を行ったうえで(ステップS43)、ヘッダデコード処理を終了する。追加のヘッダデコード処理については、後述する。
CPU42は、受信した相手宛メール93に上記のヘッダデコード処理を施して得られた相手宛転送メールを送信する(図5、ステップS6)。
図13に、相手宛転送メール94の構成を例示する。
メールサーバ装置4から送信された相手宛転送メール94は、相手のメール送受装置6の宛先実アドレスに送られる。これを受信した相手により、その本文が書き換えられて返信されたものがユーザ宛メールである。
図14に、相手のメール送受装置6から返信されたユーザ宛メール95の構成を例示する。
ユーザ宛メール95の「from:」ヘッダのフィールド値は、当該ユーザ宛メール95の送信元の電子メールアドレスを表す<返信元実アドレス>であるが、相手宛転送メール94(図13参照)を受信した相手が、その受信した電子メールアドレスから返信してきた場合は、当該<返信元実アドレス>を構成しているデータは、コネクションテーブル27に記憶されている宛先実アドレス27dのデータに等しい。
相手のメール送受装置6から返信されたユーザ宛メール95は、メールサーバ装置4に設定された当該登録ユーザの該当するコネクションアドレスに送られる。すなわち、ユーザ宛メール95の宛先は、上述の相手宛メール93の宛先と同一である。
なお、ユーザ宛メール95が同報送信を伴う場合は、相手が指定した同報先実アドレスをフィールド値とする「cc:」ヘッダが追加される。
図5に戻って、ステップS2において、受信した電子メールが、「x−unidto:」ヘッダを持っていないと判断され、かつ、ステップS4において、この電子メールの「to:」ヘッダのローカルパートと、アカウントマスタテーブル26のunIDアカウント26aとがマッチしない場合、CPU42は、受信した電子メールがユーザ宛メール95であると判定し、コネクションテーブル27から、宛先とされたコネクションアドレスに対応するコネクションレコードのフィールドである有効期限27gを取得する(ステップS9)。
そして、現在時刻が有効期限27gを過ぎているか否かを判断し(ステップS10)、過ぎていると判断した場合は、当該コネクションIDは期限切れであるとして、その旨を記載したエラーメールを作成し、相手に返信する(ステップS11)。
一方、ステップS10において、現在時刻が有効期限27gを過ぎていないと判断した場合は、当該コネクションIDは期限切れでないと判断して、ヘッダエンコード処理を行う(ステップS12)。
図9に示すように、ヘッダエンコード処理において、CPU42は、まず、受信したユーザ宛メール95の転送先となる、当該コネクションIDと関連付けられたユーザ実アドレスを取得する(ステップS51)。
すなわち、CPU42は、コネクションテーブル27の当該コネクションID27bに対応する返信先アドレス設定27fをチェックし、返信先アドレス設定27fに「送信元」と記載されていればコネクションテーブル27の送信元実アドレス27eを取得し、これをユーザ実アドレスとする。
一方、コネクションテーブル27の返信先アドレス設定27fに「デフォルト」と記載されていれば、アカウントマスタテーブル26から、当該コネクションID27bに対応するunIDアカウント26aに対応するアカウントレコードのデフォルト実アドレス26dを取得し、これをユーザ実アドレスとする。
なお、コネクションテーブル27の返信先アドレス設定27fに何も記載されていない場合は、アカウントマスタテーブル26の、当該コネクションID27bに対応するunIDアカウント26aに対応するアカウントレコードの返信先アドレス設定26eをチェックし、当該返信先アドレス設定26eのデータにしたがって、上記と同様の処理を行う。
このようにして、ユーザ実アドレスが決定されると、つぎに基本ヘッダエンコード処理を行う(ステップS52)。
基本ヘッダエンコード処理においては、受信したユーザ宛メール95(図14参照)の「to:」ヘッダが削除され、フィールド値を、ユーザ実アドレス(すなわち、デフォルト実アドレス26d、または、送信元実アドレス27e)とする「to:」ヘッダが追加され、「from:」ヘッダのヘッダ名が「x−unidto:」に変更され、フィールド値を、当該コネクションIDに対応するコネクションアドレスとする「from:」ヘッダが追加される。
つぎにCPU42は、「cc:」ヘッダの有無をチェックし(ステップS53)、「cc:」ヘッダがない場合は、ヘッダエンコード処理を終了し、「cc:」ヘッダがある場合は、追加のヘッダエンコード処理を行ったのち、ヘッダエンコード処理を終了する(ステップS54)。
追加のヘッダエンコード処理においては、受信したユーザ宛メール95の「cc:」ヘッダのヘッダ名が、同報先実アドレスをフィールド値とする専用ヘッダを表す「x−unidcc:」に変更され、フィールド値を"replyAll"とする「cc:」ヘッダが追加される。
CPU42は、受信したユーザ宛メール95に上記のヘッダエンコード処理を施して得られたユーザ宛転送メールを送信する(図5、ステップS6)。
図14に、ユーザ宛転送メール96の構成を例示する。
メールサーバ装置4から送信されたユーザ宛転送メール96は、登録ユーザのメール送受装置6のユーザ実アドレス(すなわち、デフォルト実アドレス26d、または、送信元実アドレス27e)に送られる。
さらに、これを受信した登録ユーザにより、その本文が書き換えられ、再送信(すなわち、相手に返信)された場合について説明する。本システム2においては、登録ユーザから再送信された電子メールも、相手宛メールとして扱われ、上述の相手宛メール93(図13参照)に対する処理と同様の処理がなされる。
図15に、登録ユーザのメール送受装置6から再送信(返信)された相手宛メール97の構成を例示する。この例では、登録ユーザのユーザ実アドレスは送信元実アドレス27eであるものとしている。また、相手からのユーザ宛メール95(図14参照)が同報送信を伴うものであって、登録ユーザは、これらの同報先実アドレス全てに返信するものと仮定する。
この場合、図8に示すヘッダデコード処理のステップS42において、「cc:」ヘッダのフィールド値が"replyAll"と判断され、追加のヘッダデコード処理が行われる。
追加のヘッダデコード処理において、相手宛メール97の「cc:」ヘッダが削除され、「x−unidcc:」ヘッダのヘッダ名が「cc:」に変更される。
図15に、このようにして生成された相手宛転送メール98の構成を例示する。
本システム2においては、このように、登録ユーザから相手に再送信(返信)された電子メールであっても、さらに、これに対する返信メールであっても、回数に関係なく、1回目の相手宛メール、ユーザ宛メールと同様の処理が行われる。
すなわち、登録ユーザおよび相手のメール送受装置6が一般的なメールクライアント手段31(図3参照)を備えていれば、登録ユーザから相手に対する電子メールの送信、相手からの返信、再送信(返信に対する返信)、再返信(再送信に対する返信)、・・・を繰り返すことができる。
一方、既登録のコネクションIDに対応する相手に、新規の電子メール(相手宛メール)を作成して送信するには、登録ユーザのメール送受装置6において、たとえば、後述の相手宛メール生成処理(図17、ステップS75)を実行させればよい。
つぎに、図10に基づいて、サーバ側コネクション発行・相手宛転送メール生成処理について説明する。
メールサーバ装置4のCPU42は、コネクション発行・相手宛転送メール生成要求信号を監視しており、情報通信手段8を介して登録ユーザのメール送受装置6から、相手実アドレスである宛先実アドレスおよび被伝達データを特定したコネクション発行・相手宛転送メール生成要求信号を受信すると、新たなコネクションIDを発番するとともに(ステップS61)、当該新たなコネクションIDに対応する新たなコネクションレコードをコネクションテーブル27に登録する(ステップS62)。
すなわち、新たなコネクションID27b、当該登録ユーザのunIDアカウント27c、当該コネクション発行・相手宛転送メール生成要求信号によって特定された宛先実アドレス27d、送信元実アドレス27eなど、所定のフィールドからなる新たなコネクションレコードが、コネクションテーブル27に追加される。
この例では、サーバ側コネクション発行・相手宛転送メール生成処理においてコネクションテーブル27に追加される送信元実アドレス27eとして、当該要求信号の発信元のメール送受装置6の電子メールアドレスを用いている(これは、たとえば、コネクション発行・相手宛転送メール生成要求信号に、当該要求信号の発信元のメール送受装置6において主として使用されている電子メールアドレスを含ませることにより実現できる。)が、サーバ側コネクション発行・相手宛転送メール生成処理においてコネクションテーブル27に追加される送信元実アドレス27eは、これに限定されるものではない。
サーバ側コネクション発行・相手宛転送メール生成処理においてコネクションテーブル27に追加される送信元実アドレス27eとして、たとえば、登録ユーザが任意に指定した電子メールアドレスを用いるよう構成したり(これは、たとえば、当該要求信号に、登録ユーザが任意に指定した電子メールアドレスを含ませることにより実現できる。)、上記送信元実アドレス27eとして、データベース25に予め記憶されている登録ユーザの電子メールアドレス(たとえば、アカウントマスタテーブル26のデフォルト実アドレス26d)を用いるよう構成したり、これらの方法から登録ユーザが選択できるよう構成したりすることができる。
上述の新規コネクション作成処理(図6参照)の場合と同様、図11Bに示すコネクションレコードのフィールドのうち、上で明記した以外のフィールドのデータについては、メールサーバ装置4において予め定めたデータを生成するようにしてもよいし、コネクション発行・相手宛転送メール生成要求信号においてこれらのデータを特定させるようにしてもよいし、これらを組み合わせて行うよう構成してもよい。
つぎにCPU42は、宛先ヘッダのフィールド値として宛先実アドレス27dを書き込み、送信元ヘッダのフィールド値として新たなコネクションID27bに対応するコネクションアドレスを書き込み、本文として被伝達データを書き込んだ電子メールを生成し(ステップS63)、送信する(ステップS64)。
ステップS64においてメールサーバ装置4から送信されたこの電子メールは、新規コネクション作成処理(図6参照)を経由する場合と異なり、登録ユーザのメール送受装置6における一回の作業、すなわち、後述の送受装置側コネクション発行・メール生成処理(図17、ステップS74)によって、相手のメール送受装置6の宛先実アドレス27dに送られる。
この電子メールの構成は、図13に例示される相手宛転送メール94と同じであり、本システム2においては、相手宛転送メール94と同じものとして処理される。したがって、とくに断らないかぎり、このような電子メールも相手宛転送メール94と記述する。
つぎに、図16は、メール送受装置6のローカルデータベース35を構成するローカルコネクションテーブル37のデータ構成の一例を示す図面である。ローカルコネクションテーブル37のデータ構成は、unIDアカウント27cに対応するデータが含まれていないことを除き、図11Bに示すコネクションテーブル27のデータ構成と同一である。ただし、ローカルコネクションテーブル37には、コネクションテーブル27のunIDアカウント27cにより特定される当該登録ユーザに関するコネクションレコードのみが記憶されている。
このローカルコネクションテーブル37のデータとコネクションテーブル27のデータとは、適宜、情報通信手段8を介して、同期化され、同一性が維持される。
図17は、メール通信システム2を構成する登録ユーザのメール送受装置6における処理の流れの一例を示すフローチャートである。
図18は、図17に示す処理を説明するための図面であって、当該メール送受装置6の表示装置64に表示されたコネクションリスト等表示画面80を表す図面である。
つぎに、図17を参照しつつ、登録ユーザのメール送受装置6における処理の手順について説明する。
図17に示すように、当該メール送受装置6のCPU62(図4参照)は、表示装置64に、コネクションリスト等表示画面80を表示し(ステップS71)、入力装置66からの入力を監視する(ステップS72)。
なお、コネクションリスト等表示画面80に表示されるコネクションリスト81を構成するコネクション名ボタン81a、81b、・・・に記載される各コネクション名(たとえば「e−メイト問合わせ」)は、メールサーバ装置4のコネクションテーブル27から、当該登録ユーザに関連するコネクションIDに対応するコネクション名27jを抽出して取得するようにしてもよいが、この実施形態においては、メール送受装置6のローカルコネクションテーブル37に記憶された全てのコネクション名37jを取得するようにしている。
ここで、コネクションリスト等表示画面80の新規コネクションボタン82が選択されると、CPU62は、登録ユーザからコネクション発行要求がなされたと判断し、相手の宛先実アドレスの入力を求める。この入力があると、入力された宛先実アドレスに基づいてコネクション発行要求メール91(図12参照)を生成し、情報通信手段8を介して、メールサーバ装置4に送信する(ステップS73)。
上述のように、コネクション発行要求メール91を受信したメールサーバ装置4において、新規コネクション作成処理(図6参照)が実行され、テンプレートメール92(図12参照)が、登録ユーザの送信元実アドレスに送信される。
ステップS72において、コネクションリスト等表示画面80の新規コネクション・メール生成ボタン83が選択されると、CPU62は、登録ユーザからコネクション発行・相手宛転送メール生成要求がなされたと判断し、相手の宛先実アドレス、電子メールの本文となる被伝達データ、電子メールの件名となるデータの入力を求める。この入力があると、入力されたこれらのデータに基づいて、上述のコネクション発行・相手宛転送メール生成要求信号を生成し、情報通信手段8を介して、メールサーバ装置4に送信する(ステップS74)。
上述のように、コネクション発行・相手宛転送メール生成要求信号を受信したメールサーバ装置4において、サーバ側コネクション発行・相手宛転送メール生成処理(図10参照)が実行され、相手宛転送メール94が相手の宛先実アドレスに送信される。
ステップS72において、コネクションリスト等表示画面80のコネクションリスト81を構成するコネクション名ボタン81a、81b、・・・のいずれかが選択されると、相手宛メール生成処理が実行される(ステップS75)。
相手宛メール生成処理を必要とする理由を説明する。
上述のように、登録ユーザのメール送受装置6に、送信元ヘッダである「from:」ヘッダのフィールド値がコネクションアドレスであって、専用ヘッダである「x−unidto:」ヘッダの記載されている電子メール、たとえば、テンプレートメール92(図12参照)、ユーザ宛転送メール96(図14参照)が保持されている場合は、これらの電子メールに返信することで、図13に示す相手宛メール93(図15に示す再送信の場合の相手宛メール97を含む)の生成・送信が、何度でも可能となる。
しかし、登録ユーザのメール送受装置6に、テンプレートメール92もユーザ宛転送メール96も保持されていない場合、たとえば、これらの電子メールが、既に当該メール送受装置6から消去されている場合や、これらの電子メールが保持されているメール送受装置と異なるメール送受装置6から送信したい場合には、これらの電子メールに返信する方法で相手宛メール93を生成し送信することができない。
相手宛メール生成処理(ステップS75)は、このような場合であっても、メール送受装置6において、既存のコネクションアドレスを用いて相手宛メール93を生成・送信することを可能とする処理である。
さて、この相手宛メール生成処理において、CPU62は、登録ユーザから相手宛メール生成要求がなされたと判断し、電子メールの本文となる被伝達データ、電子メールの件名となるデータの入力を求める。
この入力があると、入力されたこれらのデータ、選択されたコネクション名ボタンに対応するコネクションID、および、当該コネクションIDに対応する宛先実アドレスに基づいて、専用ヘッダである「x−unidto:」ヘッダの記載された相手宛メールを生成し、情報通信手段8を介して、メールサーバ装置4に送信する(ステップS75)。
コネクションIDに対応する宛先実アドレスについては、メールサーバ装置4のコネクションテーブル27から、当該コネクションIDに対応する宛先実アドレス27dを取得するようにしてもよいが、この実施形態においては、メール送受装置6のローカルコネクションテーブル37に記憶された宛先実アドレス37dを取得するようにしている。
このようにしてメールサーバ装置4に送信された相手宛メールは、テンプレートメール92(図12参照)の本文、件名が書き換えられて返信された相手宛メール93(図13参照)と同様の構成であり、このメール通信システム2においては、相手宛メール93と同様に処理される。したがって、ステップS75において生成、送信された相手宛メールも、相手宛メール93と記述する。
上述のように、このあと、相手宛メール93を受信したメールサーバ装置4において、有効期限延長処理(図7参照)およびヘッダデコード処理(図8参照)が実行され、相手宛転送メール94(図13参照)が、相手の宛先実アドレスに送信される。
なお、ステップS75における相手宛メール生成処理は、上述の方法に限定されるものではない。
たとえば、新規コネクション作成処理(図5、ステップS5)により作成され、メール送受装置6において受信したテンプレートメール92(図12参照)を、メール送受装置6の記憶装置(たとえば、図4に示す主記憶装置68または補助記憶装置70)に記憶して保存しておくよう構成しておく。このテンプレートメール92は、原則として消去不能としておくのが好ましい。
そして、コネクションリスト等表示画面80のコネクションリスト81を構成するコネクション名ボタン81a、81b、・・・のいずれかが選択されると、登録ユーザから相手宛メール生成要求がなされたと判断し、電子メールの本文となる被伝達データ、電子メールの件名となるデータの入力を求める。
この入力があると、記憶装置に記憶されているテンプレートメールの中から、選択されたコネクション名ボタンに対応するコネクションIDに対応するテンプレートメール92を読み出し、テンプレートメール92の本文を被伝達データに書き換え、件名として、入力されたデータを書き込んで相手宛メールを生成し、情報通信手段8を介して、メールサーバ装置4に返信するのである。
このように構成すれば、ステップS75に示す相手宛メール生成処理を実行する際、メール送受装置6において専用ヘッダである「x−unidto:」ヘッダを新たに付加する処理は必要ない。このため、メール送受装置6に専用の電子メール作成機能を持たせる必要はなく、たとえば、図3に示すメールクライアント手段31の機能を利用すればよい。
もちろん、原則として消去不能としておく電子メールは、テンプレートメール92でなくてもよい。たとえば、(最新の)ユーザ宛転送メール96であってもよい。要は、原則として消去不能としておく電子メールは、送信元ヘッダである「from:」ヘッダのフィールド値がコネクションアドレスであって、専用ヘッダである「x−unidto:」ヘッダの記載されている電子メールであればよい。
ただし、最初に説明した相手宛メール生成処理だと、メール送受装置6にテンプレートメール92やユーザ宛転送メール96が保持されていない場合でも当該処理が可能となるという利点がある。
さて、上述の実施形態においては、図3に示す送受装置側コネクション発行・メール生成手段33を構成要素とするコネクション発行・メール生成手段において生成される電子メールが相手宛転送メールである場合について説明したが、つぎに、当該コネクション発行・メール生成手段において生成される電子メールが相手宛メールである場合について説明する。
この場合におけるコネクション発行・メール生成手段を、とくに、コネクション発行・相手宛メール生成手段といい、そのメール送受装置6側の手段を、送受装置側コネクション発行・相手宛メール生成手段という。すなわち、この場合、図3に示す送受装置側コネクション発行・メール生成手段33は、送受装置側コネクション発行・相手宛メール生成手段を意味する。
すなわち、送受装置側コネクション発行・相手宛メール生成手段としての送受装置側コネクション発行・メール生成手段33は、相手実アドレスおよび被伝達データを特定してコネクションIDの発行および相手宛メールの生成を求める信号が入力されると、当該相手実アドレスを特定してコネクションIDの発行を求める信号を生成し、これをコネクション発行要求手段32に入力する。相手実アドレスおよび被伝達データを特定してコネクション識別標識の発行および相手宛メールの生成を求める信号は、たとえば、メール送受装置6の入力装置66から入力される。
そして、コネクション発行要求手段32により生成されて送信されたコネクション発行要求メール91に基づいてメールサーバ装置4により生成されて送信されたテンプレートメール92を受信し、受信したテンプレートメール92の本文を被伝達データに書き換えたうえで返信する。このようにして送信された電子メールが相手宛メール93である。
図3に示す送受装置側コネクション発行・メール生成手段33が、送受装置側コネクション発行・相手宛メール生成手段である場合における、送受装置側コネクション発行・メール生成処理(図17、ステップS74)について説明する。この処理を、送受装置側コネクション発行・相手宛メール生成処理という。
図19は、送受装置側コネクション発行・相手宛メール生成処理の手順の一例を示すフローチャートである。以下、図19に基づいて説明する。
この場合、上述のステップS72(図17参照)において、コネクションリスト等表示画面80の新規コネクション・メール生成ボタン83(図18参照)が選択されると、CPU62は、登録ユーザからコネクション発行・相手宛メール生成要求がなされたと判断し、被伝達データ等記憶処理を行う(ステップS81)。
被伝達データ等記憶処理において、CPU62は、相手の宛先実アドレス、電子メールの本文となる被伝達データ、電子メールの件名となるデータの入力を求め、この入力があると、入力されたこれらのデータを、メール送受装置6の記憶装置(主記憶装置68または補助記憶装置70)に一時的に記憶する。
CPU62は、つぎに、コネクション発行要求処理を行う(ステップS82)。
ステップS82のコネクション発行要求処理は、上記記憶装置に記憶されている宛先実アドレスに基づいてコネクション発行要求メール91(図12参照)を生成し送信する処理で、ステップS73(図17参照)のコネクション発行要求処理と同様の処理である。
このコネクション発行要求処理において作成され送信されたコネクション発行要求メール91(図12参照)は、メールサーバ装置4で受信され、メールサーバ装置4において新規コネクション作成処理(図5、ステップS5)が実行される。
メール送受装置6のCPU62は、新規コネクション作成処理(図5、ステップS5)において作成され送信されたテンプレートメール92(図12参照)を受信すると(ステップS83)、上記記憶装置に一時的に記憶されている電子メールの本文となる被伝達データ、電子メールの件名となるデータを読出し(ステップS84)、記憶装置から読み出した上記データに基づいてテンプレートメール92を書き換えて相手宛メール93(図13参照)を生成し送信する(ステップS85)。
このように、図19に示す送受装置側コネクション発行・相手宛メール生成処理によれば、新たなコネクションIDの発行および登録から、相手宛メール93の生成および送信に至る一連の処理を、登録ユーザのメール送受装置6における一回の操作で行わせることができる。
なお、このようにして、生成されて送信された相手宛メール93は、メールサーバ装置4において、有効期限延長処理(図7参照)およびヘッダデコード処理(図8参照)が施されて、相手宛転送メール94(図13参照)となり、相手に送信される(図5、ステップS6)。
上述の各実施形態においては、登録ユーザのメール送受装置6が図3に示す構成を全て備えている場合について説明したが、上述のように、登録ユーザのメール送受装置6の構成はこれに限定されるものではなく、たとえば、登録ユーザのメール送受装置6が、図3に示す構成のうち、メールクライアント手段31のみを備えている場合も、この発明を適用することができる。
この場合、コネクション発行要求メール91(図12参照)を生成し送信する処理(すなわち、図3に示すコネクション発行要求手段32の実行する処理に相当する処理)は、次の方法で実行することができる。
この処理の前提として、登録ユーザのユーザ識別標識(すなわち、unIDアカウント26a)と、メールサーバ装置4を表すドメイン名(この例では"unid.us")が、登録ユーザに既知であるものとする。
この場合、登録ユーザは、メール送受装置6のメールクライアント手段31を用いて、相手実アドレスである宛先実アドレスを本文とし、unIDアカウント26aをローカルパートとし"unid.us"をドメイン名とする電子メールアドレスを宛先ヘッダのフィールド値とする新規電子メールを作成し、送信すれば、これがコネクション発行要求メール91として、メールサーバ装置4に受信される。
上述のように、コネクション発行要求メール91を受信したメールサーバ装置4において、「x−unidto:」ヘッダを持つテンプレートメール92(図12参照)が生成され、登録ユーザの送信元実アドレスに送られてくる。メール送受装置6のメールクライアント手段31を用いて、このテンプレートメール92に返信すれば、相手宛メール93(図13参照)となるのである。
以後、相手からの返信の受信、相手に対する再送信、相手からの再返信の受信、・・・は、上述のとおり、メールクライアント手段31のみを用いて行うことができる。
さて、相手宛メール93(図13参照)を生成し送信する処理(すなわち、図3に示す相手宛メール生成手段34の実行する処理に相当する処理)は、次の方法で実行することができる。
この処理の前提として、相手との電子メール通信に用いるコネクションアドレスが、登録ユーザに既知であるものとする。
たとえば、まず、登録ユーザは、メール送受装置6のメールクライアント手段31を用いて、当該コネクションアドレス宛に新規電子メール(本文、件名は空白のままでよい)を作成し、送信する。この電子メールは「x−unidto:」ヘッダを持たないため、メールサーバ装置4においてユーザ宛メール95(図14参照)と判定され、ヘッダエンコード処理(図5、ステップS12参照)が実行される。
この結果、メールサーバ装置4において、「x−unidto:」ヘッダが付加されたユーザ宛転送メール96(図14参照)が生成され、登録ユーザの送信元実アドレスまたはデフォルト実アドレスに転送(返送)されてくる。
登録ユーザは、メール送受装置6のメールクライアント手段31を用いて、これを受信し、本文、件名を書き込んだうえで返信すれば、これが相手宛メール93(図13参照)となる。
また、登録ユーザのメール送受装置6のメールクライアント手段31に、新規コネクション作成処理の際、メールサーバ装置4から送られてきたテンプレートメール92(図12参照)が保存されているような場合は、メール送受装置6のメールクライアント手段31を用いて、このテンプレートメール92に返信すれば、これが相手宛メール93となる。
このように、メール送受装置6が、専用ヘッダである「x−unidto:」ヘッダを電子メールに付与する機能を持たない汎用のメールクライアントプログラム(すなわち、メールクライアント手段31)しか装備していない場合であっても、この発明にかかる電子メール受信システム2を構成するメール送受装置6として機能する。
前述の各実施形態においては、メールサーバ装置4の受信した電子メールが相手宛メールかユーザ宛メールかを、専用ヘッダである「x−unidto:」ヘッダを持っているか否かにより判断する場合を例に説明し、また、汎用ヘッダである送信元ヘッダ(「from:」ヘッダ)のフィールド値に基づいて判断する構成についても言及したが、受信した電子メールが相手宛メールかユーザ宛メールかを、目印となる特定のデータ(以下、「目印データ」という。)がヘッダのフィールド値に含まれるか否かにより判断するよう構成することもできる。つぎに、このように構成した実施形態について説明する。
図21は、このような実施形態による新規コネクション作成処理における処理内容を説明するための図面である。図22は、当該実施形態によるヘッダデコード処理における処理内容を説明するための図面である。図23は、当該実施形態によるヘッダエンコード処理における処理内容を説明するための図面である。
なお、相手宛メールであるかユーザ宛メールであるかについて、いずれかのヘッダのフィールド値に目印データが含まれるか、いずれのヘッダのフィールド値にも目印が含まれないか、により判断するよう構成することもできるが、この例では、特定のヘッダのフィールド値に目印データが含まれるか否か、により判断する場合について説明する。このほうが、判断が迅速かつ容易になるからである。
また、上記特定のヘッダは、専用ヘッダであっても汎用ヘッダであってもよいが、この実施形態では、特定のヘッダとして、汎用ヘッダ、とくに、いわゆる標準的な汎用ヘッダを用いた場合について説明する。標準的な汎用ヘッダは、一般的なメールクライアントプログラムやメールサーバにおいて削除されることがないからである。
さらに、ここでは、標準的な汎用ヘッダのうち、一般的に登録ユーザや相手が任意に変更等することが不能なヘッダ、たとえば、「In-Reply-To:」ヘッダを上記特定のヘッダとして用いた場合について説明する。
「In-Reply-To:」ヘッダは、受信した電子メールが、ある電子メール(元の電子メール)に対する返信としてまたは転送として送られえてきた電子メール(すなわち、返信メールまたは転送メール)である場合に、当該元の電子メールを特定するためのヘッダである。この実施形態においては、「In-Reply-To:」ヘッダのようなヘッダを、返信メールまたは転送メールの返信または転送の元となった電子メール(以下、単に「返信元メール」と呼ぶことがある。)を特定するヘッダという意味で「返信元メール識別ヘッダ」と呼ぶことがある。
一般的に、返信メールまたは転送メールの「In-Reply-To:」ヘッダのフィールド値として、上記元の電子メール(返信元メール)の「message−ID:」ヘッダのフィールド値が転記されている。「Message−ID:」ヘッダは、個々の電子メールを特定するためのヘッダである。この実施形態においては、「Message−ID:」ヘッダのようなヘッダを「メール識別ヘッダ」と呼ぶことがある。なお、「Message−ID:」ヘッダも、標準的な汎用ヘッダの一つである。
この実施形態においては、前述の実施形態で用いた専用ヘッダである「x−unidto:」ヘッダを用いないこととし、メールサーバ装置4の受信した電子メールが相手宛メールかユーザ宛メールかを、「In-Reply-To:」ヘッダのフィールド値に目印データが含まれるか否か、により判断するようにしている。
このように構成された場合、本システムの基本的な構成および処理内容は、「x−unidto:」ヘッダの有無により相手宛メールかユーザ宛メールかを判断する場合と同様であるが、一部異なる点もある。以下、異なる点について説明する。
まず、図2に示すメール判定手段12においては、受信した電子メールの「In-Reply-To:」ヘッダのフィールド値に目印データが含まれていれば相手宛メールであり、含まれていなければユーザ宛メールであると判断する。
デコード手段17においては、相手宛転送メールを生成する際に、相手宛メールの「In-Reply-To:」ヘッダのフィールド値から目印データを削除する。なお、相手宛メールに基づいて相手宛転送メールを生成する処理を「アウトバウンド転送処理」と呼ぶことがある。
エンコード手段14においては、ユーザ宛転送メールを生成する際に、ユーザ宛メールの「message−ID:」ヘッダのフィールド値に目印データを付加する。なお、ユーザ宛メールに基づいてユーザ宛転送メールを生成する処理を「インバウンド転送処理」と呼ぶことがある。
コネクション作成手段19においては、テンプレートメールを生成する際に、コネクション発行要求メールの「message−ID:」ヘッダのフィールド値に目印データを付加する。
図5に示すステップS2において、メールサーバ装置4のCPU42は、受信した電子メールの「In-Reply-To:」ヘッダのフィールド値に目印データが含まれているか否かを判断する。
「In-Reply-To:」ヘッダのフィールド値に目印データが含まれていない場合には、前述の実施形態において「x−unidto:」ヘッダを持っていない場合と同様の処理が行われ、「In-Reply-To:」ヘッダのフィールド値に目印データが含まれてる場合には、前述の実施形態において「x−unidto:」ヘッダを持っている場合と同様の処理が行われる。
図21に、登録ユーザのメール送受装置6から送信されたコネクション発行要求メール191の構成、および、メールサーバ装置4から送信されたテンプレートメール192の構成を例示する。
図6に示す新規コネクション作成処理においては、テンプレートメールを生成する際に、その「message−ID:」ヘッダのフィールド値として、コネクション発行要求メール191の「message−ID:」ヘッダのフィールド値に目印データを付加したものを用いるようにしている。この例では、コネクション発行要求メール192の「message−ID:」ヘッダのフィールド値の前に、目印データとして「x−unidto.」という文字列を付加したものが、テンプレートメールの「message−ID:」ヘッダのフィールド値となっている。
上述のように、メールサーバ装置4から送信されたテンプレートメール192は、登録ユーザのメール送受装置6の送信元実アドレスに送られる。テンプレートメール192を受信した登録ユーザにより、その本文が書き換えられて返信されたものが相手宛メールとなるが、返信する際、テンプレートメールの「message−ID:」ヘッダのフィールド値が、相手宛メールの「In-Reply-To:」ヘッダのフィールド値として転記される。
図22に、登録ユーザのメール送受装置6から返信された相手宛メール193の構成、および、相手宛転送メール194の構成を例示する。
図8に示すヘッダデコード処理のうち基本ヘッダデコード処理(ステップS41)においては、受信した相手宛メール193(図22参照)の「In-Reply-To:」ヘッダのフィールド値から目印データが削除され、これが、相手宛転送メール194の「In-Reply-To:」ヘッダのフィールド値となる。
そして、相手宛メール193の「to:」ヘッダのヘッダ名が「from:」に変更され、フィールド値を宛先実アドレス27dとする「to:」ヘッダが追加される。この実施形態においては、ユーザ宛メールの実際の送信元である返信元実アドレスが何であっても、当該ユーザ宛メールに対する返信である相手宛転送メールの「to:」ヘッダのフィールド値として、コネクションテーブル27に登録された宛先実アドレス27dが用いられる。すなわち、この実施形態においては、宛先実アドレスのみが上述の相手実アドレスに該当する。
このように構成することにより、たとえば、相手宛転送メールが不正に第三者に入手され、当該第三者の電子メールアドレスから登録ユーザにユーザ宛メールが送られてきた場合であっても、このユーザ宛メールに対する登録ユーザからの返信は、コネクションテーブル27に登録された宛先実アドレス27d宛に送信される。このため、不正が早期に発見でき、被害の拡大を防ぐことができる。
そして、ユーザ宛メールの返信元実アドレスがコネクションテーブル27に登録された宛先実アドレス27d以外の電子メールアドレスである場合には、当該返信元実アドレスを、ユーザ宛転送メールの一部、たとえば、本文の一行目に追記するよう構成している。
相手宛転送メールを受信した相手方本人が、コネクションテーブル27に登録された宛先実アドレス27d以外の電子メールアドレスから返信してくる可能性に考慮したものである。また、このように構成することで、ユーザ宛転送メールを受信した登録ユーザに注意を促すことができる。
図8に示す基本ヘッダデコード処理において、「message−ID:」ヘッダのフィールド値は変更されない。
なお、この実施形態においては、図8に示すヘッダデコード処理のうち「cc:」ヘッダに関する処理(ステップS42およびステップS43)は実行されない。
図23に、相手宛転送メール194に対して相手のメール送受装置6から返信された
ユーザ宛メール195の構成、および、ユーザ宛転送メール196の構成を例示する。
図9に示すヘッダエンコード処理のうち基本ヘッダエンコード処理(ステップS52)においては、受信したユーザ宛メール195(図23参照)の「message−ID:」ヘッダのフィールド値に目印データを付加したものを、ユーザ宛転送メール196の「message−ID:」ヘッダのフィールド値として用いる。
基本ヘッダエンコード処理において、「In-Reply-To:」ヘッダのフィールド値は変更されない。
この実施形態においては、図9に示すヘッダエンコード処理のうち「cc:」ヘッダに関する処理(ステップS53およびステップS54)は実行されない。
図22に示す相手宛転送メール194に対して相手のメール送受装置6から返信される際、相手宛転送メール194の「message−ID:」ヘッダのフィールド値が、ユーザ宛メール195の「In-Reply-To:」ヘッダのフィールド値として転記されるのは、上述のテンプレートメール192に対する返信の場合と同様である。
ユーザ宛転送メール196を受信した登録ユーザにより、その本文が書き換えられ、再送信(すなわち、相手に返信)された電子メールも、相手宛メールとして扱われ、上述の相手宛メール193(図22参照)に対する処理と同様の処理がなされる。
ユーザ宛転送メール196に対して相手に返信する際、ユーザ宛転送メール196の「message−ID:」ヘッダのフィールド値が、相手宛メール193の「In-Reply-To:」ヘッダのフィールド値として転記されるのは、上述の相手宛転送メール194に対する返信の場合と同様である。
さて、この実施形態においては、さらに、メール送受装置6の表示装置64に、登録ユーザのメール送受装置6と相手のメール送受装置6との間で送受信された一連の電子メールについて、たとえば、返信または転送の相互関係(親子関係)をツリー構造に一覧表示してなる、いわゆるスレッドを表示するよう構成している。
図31Aは、登録ユーザのメール送受装置6において正常に表示されたスレッドの一例を示す図面である。図31Bは、相手のメール送受装置6において正常に表示されたスレッドの一例を示す図面である。
スレッドを表示するための方法は種々考えられるが、この実施形態においては、「References:」ヘッダを利用する場合を例に説明する。
「References:」ヘッダは、受信した電子メールが返信メールまたは転送メールである場合に、当該返信メールまたは転送メールの返信元メール(元の電子メール)の特定、ならびに、当該返信元メールがさらに返信メールまたは転送メールである場合に、当該返信元メールの返信元メールの特定、・・・というように、受信した電子メールの返信元メールの特定を過去に遡って順次記載したヘッダである。この実施形態においては、「References:」ヘッダのようなヘッダを、「返信元メール識別履歴ヘッダ」と呼ぶことがある。
一般的に、返信メールまたは転送メールの「References:」ヘッダのフィールド値として、当該返信メールまたは転送メールの「In-Reply-To:」ヘッダのフィールド値が順次、追記されてゆく。
上述のように、「In-Reply-To:」ヘッダのフィールド値として、返信元メールの「message−ID:」ヘッダのフィールド値が転記されているから、結局、「References:」ヘッダのフィールド値として、当該電子メールに至る各返信元メールの「message−ID:」ヘッダのフィールド値が、順に列記されていることになる。
図29は、この実施形態において、後述する特別の処理を行うことなく、相手のメール送受装置6と登録ユーザのメール送受装置6との間で電子メール(以下、「メッセージ」ということがある。)の返信を繰り返したと仮定した場合の状況を説明するための図面であって、送受信の各段階におけるメッセージのヘッダの記載内容を説明するための図面である。
図29においては、説明のため、処理の各段階におけるメッセージを構成するデータ(以下、「メッセージデータ」ということがある。)のうち、「message−ID:」ヘッダ、「In-Reply-To:」ヘッダ、および「References:」ヘッダのみを記載している。
図29には、相手のメール送受装置6と登録ユーザのメール送受装置6との間で、最上段右側のメッセージから最下段左側のメッセージに至る、連続した3往復のメッセージの送受信が行われた場合が例示されている。この例では、説明のため、ユーザ宛メールの「message−ID:」ヘッダのフィールド値を、順に「A」、「B」、「C」とし、相手宛メールの「message−ID:」ヘッダのフィールド値を、順に「1」、「2」、「3」とし、目印データを「X」としている。
したがって、図29の最上段右側のメッセージ(「ユーザ宛メール」に該当)のメッセージデータは、次のようになっている、
message−ID:A
In-Reply-To:<null>
References:<null>
このユーザ宛メールに対して基本ヘッダエンコード処理がなされて得られた図29の最上段左側のメッセージ(「ユーザ宛転送メール」に該当)のメッセージデータは、次のようになっている、
message−ID:XA
In-Reply-To:<null>
References:<null>
このユーザ宛転送メールに対する返信メールとして作成された図29の2段目左側のメッセージ(「相手宛メール」に該当)のメッセージデータは、次のようになっている、
message−ID:1
In-Reply-To:XA
References:XA
この相手宛メールに対して基本ヘッダデコード処理がなされて得られた図29の2段目右側のメッセージ(「相手宛転送メール」に該当)のメッセージデータは、次のようになっている、
message−ID:1
In-Reply-To:A
References:XA
さらに、この相手宛転送メールに対する返信メールとして作成された図29の3段目右側のメッセージ(「ユーザ宛メール」に該当)のメッセージデータは、次のようになっている、
message−ID:B
In-Reply-To:1
References:XA、1
以下、同様の処理が繰り返される。この結果、図29の右側の相手のメール送受装置6には、「message−ID:」ヘッダのフィールド値を、それぞれ「A」、「B」、「C」とする3通の送信済みメッセージ(ユーザ宛メール)、および、「message−ID:」ヘッダのフィールド値を、それぞれ「1」、「2」、「3」とする3通の受信済みメッセージ(相手宛転送メール)の合計6通のメッセージが記憶される。
一方、図29の左側の登録ユーザのメール送受装置6には、「message−ID:」ヘッダのフィールド値を、それぞれ「XA」、「XB」、「XC」とする3通の受信済みメッセージ(ユーザ宛転送メール)、および、「message−ID:」ヘッダのフィールド値を、それぞれ「1」、「2」、「3」とする3通の送信済みメッセージ(相手宛メール)の合計6通のメッセージが記憶される。
この実施形態においては、説明の便宜上、「message−ID:」ヘッダのフィールド値をもって、メッセージを特定する表現とすることがある。この表現によれば、たとえば「message−ID:」ヘッダのフィールド値を「A」、「XA」、「1」とするメッセージは、それぞれ、メッセージ「A」、メッセージ「XA」、メッセージ「1」と表現される。
さて、図29の最下段左側に記載されたメッセージ「3」を送信し終えた時点での登録ユーザのメール送受装置6におけるスレッド表示は、当該メッセージの「References:」ヘッダおよび「message−ID:」ヘッダのフィールド値にしたがい、登録ユーザのメール送受装置6に記憶されているメッセージ「XA」、メッセージ「1」、メッセージ「XB」、メッセージ「2」、メッセージ「XC」、メッセージ「3」の6通のメッセージが、この順に表示され、これらのメッセージによりスレッドが構成される。
このようにして表示されたスレッドは、たとえば、図31Aのようになる。スレッドを構成する各メッセージの親子関係が判別できる形態で、表示されている。この例では、1のメッセージ(親メッセージ)に対する返信のメッセージ(子メッセージ)を、親メッセージより右側にずらせて配置して表示するようにしている。
図31Aによれば、メッセージ「XA」に対する返信がメッセージ「1」であり、このメッセージ「1」に対する返信がメッセージ「XB」であり、・・・、メッセージ「XC」に対する返信がメッセージ「3」であることが分かる。
なお、スレッドを表示する際、各メッセージのいかなるデータを表示するかは、特に限定されるものではないが、たとえば、各メッセージの「件名」および/または「本文」を、スレッドを構成する各メッセージのデータとして表示することができる。
つぎに、図29の最下段右側に記載されたメッセージ「3」を受信し終えた時点での相手のメール送受装置6におけるスレッド表示について検討する。
相手のメール送受装置6に記憶されているメッセージ「3」の「References:」ヘッダのフィールド値は、登録ユーザのメール送受装置6に記憶されているメッセージ「3」の「References:」ヘッダのフィールド値と同じく、「XA、1、XB、2、XC」であり、「message−ID:」ヘッダのフィールド値は「3」であるが、上述のように、相手のメール送受装置6に記憶されているメッセージは、メッセージ「A」、メッセージ「B」、メッセージ「C」、メッセージ「1」、メッセージ「2」、メッセージ「3」であって、メッセージ「XA」、メッセージ「XB」、メッセージ「XC」は記憶されていない。
もっとも、上述のように、登録ユーザのメール送受装置6に記憶されているメッセージ「XA」、メッセージ「XB」、メッセージ「XC」は、上述の基本ヘッダエンコード処理において、これらの「message−ID:」ヘッダのフィールド値に目印データ「X」が付加されてはいるが、それぞれ、相手のメール送受装置6に記憶されているメッセージ「A」、メッセージ「B」、メッセージ「C」と実質的に同一のメッセージである。
しかし、実質的に同一のメッセージであっても、「message−ID:」ヘッダのフィールド値が異なれば、異なるメッセージと判断されることから、相手のメール送受装置6においては、「References:」ヘッダのフィールド値により特定されるメッセージが、実際に記憶されているメッセージの中に存在しないという不都合、すなわち、「References:」ヘッダのフィールド値により特定されるメッセージと実際に記憶されているメッセージとの不一致という不都合が生ずることとなる。このため、このままでは、スレッドが正常に表示されないおそれがある。
そこで、この実施形態においては、このような不都合を回避するための特別の処理、すなわち、登録ユーザのメール送受装置6および相手のメール送受装置6の双方において、「References:」ヘッダのフィールド値を、それぞれ、実際に記憶されているメッセージに一致させるよう調整する処理(この処理を、「返信元メール識別履歴ヘッダ調整処理」という。)を実行するよう構成している。
図30は、返信元メール識別履歴ヘッダ調整処理を実行しつつ、相手のメール送受装置6と登録ユーザのメール送受装置6との間でメッセージの返信を繰り返した場合の状況を説明するための図面であって、図29に対応する図面である。
図30に示す例では、基本ヘッダエンコード処理および基本ヘッダデコード処理のまえに、それぞれ、References保存処理を行うとともに、基本ヘッダエンコード処理および基本ヘッダデコード処理のあとに、それぞれ、References復元処理を行うよう構成している。この、References保存処理およびReferences復元処理が、返信元メール識別履歴ヘッダ調整処理に該当する。
すなわち、図30に示す例においては、ヘッダエンコード処理およびヘッダデコード処理のいずれもが、返信元メール識別履歴ヘッダ調整処理を含むよう構成されている。
図24は、返信元メール識別履歴ヘッダ調整処理を構成するReferences保存処理の一例を示すフローチャートである。図25は、返信元メール識別履歴ヘッダ調整処理を構成するReferences復元処理の一例を示すフローチャートである。図26は、返信元メール識別履歴ヘッダ調整処理に用いられるReferencesテーブル28のデータ構成の一例を示す図面である。
図24〜図26および図30に基づいて、返信元メール識別履歴ヘッダ調整処理の説明を行う。図30に示すように、基本ヘッダエンコード処理および基本ヘッダデコード処理に先だって、それぞれ、References保存処理が行われる。
図24に示すように、References保存処理においては、受信メッセージの「message−ID:」ヘッダのフィールド値と、「References:」ヘッダのフィールド値とが、相互に関連付けられたレコードとしてデータベース25を構成するReferencesテーブル28に保存される(ステップS101)。
図30に示すように、References保存処理に続いて、それぞれ、基本ヘッダエンコード処理および基本ヘッダデコード処理が行われ、これらに続いて、それぞれ、References復元処理が行われる。
図25に示すように、References復元処理においては、まず、「In-Reply-To:」ヘッダのフィールド値が、変数IRTとして記憶される(ステップS102)。
つぎに、Referencesテーブル28に保存されているデータの中から、「message−ID:」ヘッダのフィールド値が変数IRTと同一の値を持つレコードが抽出される(ステップS103)。
ステップS103において、該当するレコードが存在する場合は、当該メッセージの「References:」ヘッダのフィールド値として、当該レコードの「References:」ヘッダのフィールド値をセットする(ステップS104)。
ステップS103において、該当するレコードが存在しない場合は、当該メッセージの「References:」ヘッダのフィールド値として、「null」をセットする(ステップS104)。
つぎに、当該メッセージの「References:」ヘッダのフィールド値に、変数IRTと同一の値を追記する(ステップS105)。
図27は、ヘッダエンコード処理において実行される返信元メール識別履歴ヘッダ調整処理におけるメッセージデータの推移を説明するための図面である。図28は、ヘッダデコード処理において実行される返信元メール識別履歴ヘッダ調整処理におけるメッセージデータの推移を説明するための図面である。
図27に示すように、ヘッダエンコード処理において実行される返信元メール識別履歴ヘッダ調整処理においては、メッセージデータは、メッセージデータ110〜メッセージデータ113へと推移する。
メッセージデータ110は、References保存処理(ステップS101)実行前後のメッセージデータである。メッセージデータ111は、基本ヘッダエンコード処理(ステップS52)実行後のメッセージデータである。メッセージデータ112は、References復元処理におけるステップS104実行後のメッセージデータである。メッセージデータ113は、References復元処理におけるステップS105実行後のメッセージデータである。
図28に示すように、ヘッダデコード処理において実行される返信元メール識別履歴ヘッダ調整処理においては、メッセージデータは、メッセージデータ114〜メッセージデータ117へと推移する。
メッセージデータ114は、References保存処理(ステップS101)実行前後のメッセージデータである。メッセージデータ115は、基本ヘッダデコード処理(ステップS41)実行後のメッセージデータである。メッセージデータ116は、References復元処理におけるステップS104実行後のメッセージデータである。メッセージデータ117は、References復元処理におけるステップS105実行後のメッセージデータである。
図30に示すように、返信元メール識別履歴ヘッダ調整処理を実行することで、相手のメール送受装置6に記憶されているメッセージ「3」の「References:」ヘッダのフィールド値は、「A、1、B、2、C」となり、相手のメール送受装置6に記憶されているメッセージ「A」、メッセージ「B」、メッセージ「C」、メッセージ「1」、メッセージ「2」と一致する。
また、登録ユーザのメール送受装置6に記憶されているメッセージ「3」の「References:」ヘッダのフィールド値は、「XA、1、XB、2、XC」であり、登録ユーザのメール送受装置6に記憶されているメッセージ「XA」、メッセージ「XB」、メッセージ「XC」、メッセージ「1」、メッセージ「2」と一致している。
このように、この実施形態においては、ヘッダエンコード処理およびヘッダデコード処理において、返信元メール識別履歴ヘッダ調整処理を実行するよう構成している。このため、登録ユーザのメール送受装置6および相手のメール送受装置6の双方において、それぞれ、「References:」ヘッダのフィールド値を、実際に記憶されているメッセージに一致させることができる。この結果、登録ユーザのメール送受装置6および相手のメール送受装置6の双方において、スレッドが正常に表示される(図31A、図31B参照)。
なお、この実施形態においては、返信元メール識別履歴ヘッダ調整処理をReferences保存処理およびReferences復元処理により構成するとともに、基本ヘッダエンコード処理および基本ヘッダデコード処理のまえに、それぞれ、References保存処理を行うとともに、基本ヘッダエンコード処理および基本ヘッダデコード処理のあとに、それぞれ、References復元処理を行うよう構成した場合を例に説明したが、返信元メール識別履歴ヘッダ調整処理は、このような構成に限定されるものではない。
返信元メール識別履歴ヘッダ調整処理は、次のように表現することもできる。
返信元メール識別履歴ヘッダ調整処理は、ヘッダエンコード処理(より一般的には、インバウンド転送処理)において、ユーザ宛転送メール113の返信元メールに相当する相手宛メール118の「References:」ヘッダ(返信元メール識別履歴ヘッダ)のフィールド値に、当該ユーザ宛転送メール113の「In-Reply-To:」ヘッダ(返信元メール識別ヘッダ)のフィールド値、すなわち、上記相手宛メール118の「message−ID:」ヘッダ(メール識別ヘッダ)のフィールド値を追記したものを、当該ユーザ宛転送メール113の「References:」ヘッダのフィールド値とするとともに、ヘッダデコード処理(より一般的には、アウトバウンド転送処理)において、相手宛転送メール117の返信元メールに相当するユーザ宛メール110の「References:」ヘッダのフィールド値に、当該相手宛転送メール117の「In-Reply-To:」ヘッダのフィールド値、すなわち、上記ユーザ宛メール110の「message−ID:」ヘッダのフィールド値を追記したものを、当該相手宛転送メール117の「References:」ヘッダのフィールド値とする処理である。
さらに、返信元メール識別履歴ヘッダ調整処理は、このような処理に限定されるものではなく、要は、ヘッダエンコード処理(より一般的には、インバウンド転送処理)、および/または、ヘッダデコード処理(より一般的には、アウトバウンド転送処理)において、登録ユーザのメール送受装置6および相手のメール送受装置6の双方において、「References:」ヘッダのフィールド値を、それぞれ、実際に記憶されているメッセージに一致させるよう調整する処理であればよい。
なお、上述の各実施形態においては、メールサーバ装置およびメール送受装置が、それぞれ1台のコンピュータを用いて構成されている場合を例に説明したが、この発明はこれに限定されるものではない。メールサーバ装置を、2台以上のコンピュータにより構成することもできる。この場合、当該2台以上のコンピュータを、上記情報通信手段8を介して接続することもできる。
また、メール送受装置を2台以上のコンピュータにより構成することもできる。この場合も、当該2台以上のコンピュータを、上記情報通信手段8を介して接続することもできる。
図20は、2台以上のコンピュータにより構成したメール送受装置106の構成を例示するブロック図である。このメール送受装置106は、端末装置7とウェブサーバ5とを備えている。
端末装置7のハードウェア構成は、図4に示すメール送受装置6の場合と同様である。ウェブサーバ5のハードウェア構成は、ウェブサーバ5が1台のコンピュータにより構成されている場合は、図4に示すメールサーバ装置4の場合と同様である。ウェブサーバ5が2台以上のコンピュータにより構成されている場合は、各コンピュータの構成は、図4に示すメールサーバ装置4の場合と同様である。
端末装置7とウェブサーバ5とは、たとえば、情報通信手段8を介して通信可能となっている。ウェブサーバ5が2台以上のコンピュータで構成されている場合、これらのコンピュータ相互間も、たとえば、情報通信手段8を介して通信可能となっている。
端末装置7は、ウェブブラウザ3を装備している。
図20は、登録ユーザが、端末装置7のウェブブラウザ3を介して、ウェブサーバ5上の当該登録ユーザ専用のウェブページ(以下「専用ページ」という。)にログインした状態を表している。
この状態において、ウェブサーバ5は、図3に示すメール送受装置6のメール処理部30およびローカルデータベース35と同様の機能を果たすよう構成されている。図20に示すウェブサーバ5の構成要素のうち、図3に示すメール送受装置6の構成要素と同様の機能を有するものには同一の符号を付している。もちろん、ローカルデータベース35は、当該登録ユーザに関するデータのみにより構成されている。
すなわち、メール送受装置106においては、メール送受装置6におけるメール処理部30とローカルデータベース35に相当する機能が、ウェブサーバ5から、ASP(Application Service Provider)方式で提供されている。
つまり、登録ユーザの専用ページにログインしている状態においては、上述のメール処理(図17、図19参照)を実行する上で、端末装置7とウェブサーバ5とにより構成されたメール送受装置106は、図3に示すメール送受装置6と等価な装置となっている。
このメール送受装置106は、次のようにして使用される。ここで、登録ユーザの専用ページにログインするための識別標識(以下、「ログインID」という。)およびログインパスワードが、予め付与されているものとする。
登録ユーザは、端末装置7のウェブブラウザ3を介して、ログインIDおよびログインパスワードを入力することで、当該登録ユーザの専用ページにログインすることができる。
専用ページにログインすると、登録ユーザの端末装置7の表示装置には、当該専用ページが表示される。この専用ページは、たとえば、図18に示すコネクションリスト等表示画面80と同様のものである。
登録ユーザが、端末装置7のウェブブラウザ3を介して、この専用ページに対する操作(クリックやタップ)を行うことで、上記メール送受装置6の場合と同様のメール処理が、ウェブサーバ5において実行され、その処理経過や処理結果が、端末装置7のウェブブラウザ3を介して、その表示装置に表示される。
このように、当該登録ユーザの端末装置7とウェブサーバ5とが一体となって、当該登録ユーザのメール送受装置106を構成しているのであるが、登録ユーザは、ウェブサーバ5の存在を意識することなく、あたかも、端末装置7自体が、上記メール送受装置6であるかのように操作することができる。
なお、ASP方式を利用したメール送受装置106として、図20に示す構成を例示しているが、メール送受装置106の構成は、これに限定されるものではない。たとえば、図20では、メール送受装置106におけるメール処理部30およびローカルデータベース35の機能の全部を、ウェブサーバ5において実行する構成となっているが、これらの機能を、ウェブサーバ5と端末装置7とで分担して処理するよう構成することもできる。
たとえば、メール処理部30のうち、メールクライアント手段31を端末装置7に装備し、他の手段をウェブサーバ5に装備するよう構成することができる。
このように構成した場合であっても、登録ユーザの専用ページにログインしている状態においては、上述のメール処理を実行する上で、端末装置7とウェブサーバ5とにより構成されたメール送受装置106は、メール送受装置6と等価な装置となっている。
なお、相手も、メール送受装置106と同様のメール送受装置(便宜上、これもメール送受装置106という)を使って、電子メールの送受信を行うことができる。ただし、相手のメール送受装置106のメール処理部30には、メールクライアント手段31以外の手段は不要である。
また、この電子メール通信システム2においては、登録ユーザと相手の双方が、メール送受装置106を用いることもできるし、一方がメール送受装置106を用い、他方が上記メール送受装置6を用いることもできる。さらに、時に応じて、メール送受装置106とメール送受装置6とを使い分けることもできる。
図5に示すステップS1が、図2のメールサーバ装置4の転送処理部10を構成するメール受信手段11に対応する。ステップS2〜ステップS4が、メール判定手段12に対応する。ステップS5がコネクション作成手段19に対応する。ステップS7が期限更新手段16に対応する。ステップS8がデコード手段17に対応する。ステップS9〜ステップS10が、効力判定手段13に対応する。ステップS11がエラーメール送信手段18に対応する。ステップS12がエンコード手段14に対応する。
図10に示すステップS61〜ステップS63が、コネクション作成・デコード手段20に対応する。そして、図5に示すステップS6、および、図10に示すステップS64が、メール送信手段15に対応する。
図17に示すステップS71が、図3のメール送受装置6または図20のメール送受装置106のメール処理部30を構成するコネクションリスト等表示手段39に対応する。ステップS73が、コネクション発行要求手段32に対応する。ステップS75が、相手宛メール生成手段34に対応する。
図17に示すステップS74(図19に示すステップS81〜ステップS85を含む)が、送受装置側コネクション発行・メール生成手段33に対応する。
なお、この実施形態においては、電子メール通信システム2のメールサーバ装置4側のプログラムを記憶した記録媒体、および、メール送受装置106側のプログラムを記憶した記録媒体として、HDDに装着されたハードディスクを例示し、メール送受装置6側のプログラムを記憶した記録媒体として、SSDに装着されたフラッシュメモリを例示しているが、プログラムを記憶した記録媒体はこれらに限定されるものではなく、プログラムを記憶した記録媒体として、たとえば、外部メモリカード、CD−ROM、DVD−ROM、フレキシブルディスク、磁気テープを用いることもできる。さらに、主記憶装置もプログラムを記憶した記録媒体として用いることができる。
また、プログラムの配布態様は特に限定されるものではなく、記録媒体にプログラムを記憶した状態で配布するほか、有線や無線の情報通信手段を介して当該プログラムを配布するようにしてもよい。
また、プログラムの記録態様は特に限定されるものではない。直接実行できる形で記録媒体に記憶したり配布したりする他、たとえば、解凍して使用するように圧縮された形で記録媒体に記憶したり配布したりすることもできる。
なお、上述の各実施形態においては、コンピュータを用いて図2および図3、または図20の各機能を実現する場合を例に説明したが、これらの機能の一部または全部を、ハードウェアロジックを用いて構成するようにしてもよい。
また、上述のブロック図、ハードウェア構成、フローチャート、データベースの構成、電子メールの構成等は、例として挙げたものであり、本願発明は、これらに限定されるものではない。
上記においては、本発明を好ましい実施形態として説明したが、各用語は、限定のために用いたのではなく、説明のために用いたものであって、本発明の範囲および精神を逸脱することなく、添付のクレームの範囲において、変更することができるものである。また、上記においては、本発明のいくつかの典型的な実施形態についてのみ詳細に記述したが、当業者であれば、本発明の新規な教示および利点を逸脱することなしに上記典型的な実施形態において多くの変更が可能であることを、容易に認識するであろう。したがって、そのような変更はすべて、本発明の範囲に含まれるものである。