(57)【特許請求の範囲】
【請求項１】
メールを送信する送信装置において、
受信側でコンテンツを再生させるためのスクリプトを読み出す読み出し手段と、
読み出された前記スクリプトを実行して、前記コンテンツを再生させるためのデータ、および前記メールの本文を取得する取得手段と、
前記メールに格納され、前記メールの受信側で前記コンテンツを再生させる前記スクリプトとして、前記読み出し手段により読み出された前記スクリプトと同一のスクリプトを生成する生成手段と、
取得された前記本文を含む前記メールを生成し、前記メールに前記生成手段により生成された前記スクリプトおよび前記データを格納する格納手段と、
前記スクリプトおよび前記データが格納された前記メールの送信を制御する送信制御手段と
を含むことを特徴とする送信装置。
【請求項２】
前記生成手段は、受信側で動画像の前記コンテンツを再生させる前記スクリプトを生成する
ことを特徴とする請求項１に記載の送信装置。
【請求項３】
前記生成手段は、受信側で音声の前記コンテンツを再生させる前記スクリプトを生成する
ことを特徴とする請求項１に記載の送信装置。
【請求項４】
メールを送信する送信装置の送信方法において、
受信側でコンテンツを再生させるためのスクリプトを読み出す読み出しステップと、
読み出された前記スクリプトを実行して、前記コンテンツを再生させるためのデータ、および前記メールの本文を取得する取得ステップと、
前記メールに格納され、前記メールの受信側で前記コンテンツを再生させる前記スクリプトとして、前記読み出しステップにより読み出された前記スクリプトと同一のスクリプトを生成する生成処理ステップと、
取得された前記本文を含む前記メールを生成し、前記メールに前記生成処理ステップにより生成された前記スクリプトおよび前記データを格納する格納処理ステップと、
前記スクリプトおよび前記データが格納された前記メールの送信を制御する送信制御処理ステップと
を含むことを特徴とする送信方法。
【請求項５】
メールを送信する送信処理用のプログラムであって、
受信側でコンテンツを再生させるためのスクリプトを読み出す読み出しステップと、
読み出された前記スクリプトを実行して、前記コンテンツを再生させるためのデータ、および前記メールの本文を取得する取得ステップと、
前記メールに格納され、前記メールの受信側で前記コンテンツを再生させる前記スクリプトとして、前記読み出しステップにより読み出された前記スクリプトと同一のスクリプトを生成する生成処理ステップと、
取得された前記本文を含む前記メールを生成し、前記メールに前記生成処理ステップにより生成された前記スクリプトおよび前記データを格納する格納処理ステップと、
前記スクリプトおよび前記データが格納された前記メールの送信を制御する送信制御処理ステップと
を含むことを特徴とする処理をコンピュータに実行させるプログラムが記録されている記録媒体。
【請求項６】
メールを送信する送信装置を制御するコンピュータに、
受信側でコンテンツを再生させるためのスクリプトを読み出す読み出しステップと、
読み出された前記スクリプトを実行して、前記コンテンツを再生させるためのデータ、および前記メールの本文を取得する取得ステップと、
前記メールに格納され、前記メールの受信側で前記コンテンツを再生させる前記スクリプトとして、前記読み出しステップにより読み出された前記スクリプトと同一のスクリプトを生成する生成処理ステップと、
取得された前記本文を含む前記メールを生成し、前記メールに前記生成処理ステップにより生成された前記スクリプトおよび前記データを格納する格納処理ステップと、
前記スクリプトおよび前記データが格納された前記メールの送信を制御する送信制御処理ステップと
を実行させるプログラム。
【請求項７】
メールを送信する送信装置、および前記メールを受信する受信装置からなる通信システムにおいて、
前記送信装置は、
前記受信装置でコンテンツを再生させるためのスクリプトを読み出す読み出し手段と、
読み出された前記スクリプトを実行して、前記コンテンツを再生させるためのデータ、および前記メールの本文を取得する取得手段と、
前記メールに格納され、前記受信装置で前記コンテンツを再生させる前記スクリプトとして、前記読み出し手段により読み出された前記スクリプトと同一のスクリプトを生成する生成手段と、
取得された前記本文を含む前記メールを生成し、前記メールに前記生成手段により生成された前記スクリプトおよび前記データを格納する格納手段と、
前記スクリプトおよび前記データが格納された前記メールの送信を制御する送信制御手段と
を含み、
前記受信装置は、
前記メールの開封指示に連動して、前記メールに添付ファイルとして付加されている前記スクリプトおよび前記データを抽出する抽出手段と、
抽出された前記スクリプトを実行し、抽出された前記データを基に、前記コンテンツの再生を制御する再生制御手段と
を含むことを特徴とする通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、送信装置および方法、記録媒体、並びに通信システムに関し、特に、電子メールを送信または受信する送信装置および方法、記録媒体、並びに通信システムに関する。
【０００２】
【従来の技術】
ネットワーク等を介して、テキストを基にしたデータを送受信するシステム、いわゆる電子メールシステムが広く利用されている。
【０００３】
電子メール（以下、単にメールとも称する）を受信した受信装置は、受信したメールをテキストで表示する。
【０００４】
電子メールシステムは、アニメーションを表示させるためのデータ、または音楽を再生させるためのデータを添付したメールを送信、または受信することができる。
【０００５】
【発明が解決しようとする課題】
しかしながら、メールを開いたとき、アニメーションを表示するか、または音楽を再生させるには、メールの受け手において、メールを開いた後、さらにメールに添付されたデータを開くなどの所定の操作が必要である。
【０００６】
また、メールの受け手は、メールに添付されたデータを処理できる、アニメーションを表示させるアプリケーションプログラム、または音楽を再生させるアプリケーションプログラムを予め用意しなければならないという問題点があった。
【０００７】
本発明はこのような状況に鑑みてなされたものであり、メールを開いたとき、簡単に、アニメーション、または音楽などのコンテンツを再生できるようにすることを目的とする。
【００１４】
【課題を解決するための手段】
本発明の送信装置は、受信側でコンテンツを再生させるためのスクリプトを読み出す読み出し手段と、読み出されたスクリプトを実行して、コンテンツを再生させるためのデータ、およびメールの本文を取得する取得手段と、メールに格納され、メールの受信側でコンテンツを再生させるスクリプトとして、読み出し手段により読み出されたスクリプトと同一のスクリプトを生成する生成手段と、取得された本文を含むメールを生成し、メールに生成手段により生成されたスクリプトおよびデータを格納する格納手段と、スクリプトおよびデータが格納されたメールの送信を制御する送信制御手段とを含むことを特徴とする。
【００１５】
生成手段は、受信側で動画像のコンテンツを再生させるスクリプトを生成するようにすることができる。
【００１６】
生成手段は、受信側で音声のコンテンツを再生させるスクリプトを生成するようにすることができる。
【００１７】
本発明の送信方法、記録媒体のプログラム、またはプログラムは、受信側でコンテンツを再生させるためのスクリプトを読み出す読み出しステップと、読み出されたスクリプトを実行して、コンテンツを再生させるためのデータ、およびメールの本文を取得する取得ステップと、メールに格納され、メールの受信側でコンテンツを再生させるスクリプトとして、読み出しステップにより読み出されたスクリプトと同一のスクリプトを生成する生成処理ステップと、取得された本文を含むメールを生成し、メールに生成処理ステップにより生成されたスクリプトおよびデータを格納する格納処理ステップと、スクリプトおよびデータが格納されたメールの送信を制御する送信制御処理ステップとを含むことを特徴とする。
【００２０】
本発明の通信システムは、送信装置が、受信装置でコンテンツを再生させるためのスクリプトを読み出す読み出し手段と、読み出されたスクリプトを実行して、コンテンツを再生させるためのデータ、およびメールの本文を取得する取得手段と、メールに格納され、受信装置でコンテンツを再生させるスクリプトとして、読み出し手段により読み出されたスクリプトと同一のスクリプトを生成する生成手段と、取得された本文を含むメールを生成し、メールに生成手段により生成されたスクリプトおよびデータを格納する格納手段と、スクリプトおよびデータが格納されたメールの送信を制御する送信制御手段とを含み、受信装置が、メールの開封指示に連動して、メールに添付ファイルとして付加されているスクリプトおよびデータを抽出する抽出手段と、抽出されたスクリプトを実行し、抽出されたデータを基に、コンテンツの再生を制御する再生制御手段とを含むことを特徴とする。
【００２２】
本発明の送信装置および方法、記録媒体、並びにプログラムにおいては、受信側でコンテンツを再生させるためのスクリプトが読み出され、読み出されたスクリプトが実行されて、コンテンツを再生させるためのデータ、およびメールの本文が取得され、メールに格納され、メールの受信側でコンテンツを再生させるスクリプトとして、読み出されたスクリプトと同一のスクリプトが生成され、取得された本文を含むメールが生成され、メールに生成されたスクリプトおよびデータが格納され、スクリプトおよびデータが格納されたメールの送信が制御される。
【００２３】
本発明の通信システムにおいては、受信装置でコンテンツを再生させるためのスクリプトが読み出され、読み出されたスクリプトが実行されて、コンテンツを再生させるためのデータ、およびメールの本文が取得され、メールに格納され、受信装置でコンテンツを再生させるスクリプトとして、読み出されたスクリプトと同一のスクリプトが生成され、取得された本文を含むメールが生成され、メールに生成されたスクリプトおよびデータが格納され、スクリプトおよびデータが格納されたメールの送信が制御され、メールの開封指示に連動して、メールに添付ファイルとして付加されているスクリプトおよびデータが抽出され、抽出されたスクリプトが実行され、抽出されたデータを基に、コンテンツの再生が制御される。
【００２４】
【発明の実施の形態】
図１は、本発明に係るメール送受信システムの一実施の形態を示す図である。
PDA（Personal Digital Assistant）１−１は、クレードル２−１に装着され、クレードル２−１を介して、パーソナルコンピュータ３−１に接続されている。
【００２５】
PDA１−１は、クレードル２−１、パーソナルコンピュータ３−１、インターネット４、メールサーバ５−１および５−２、並びにDNS（Domain Name System）サーバ６−１および６−２を介して、PDA１−２にメールを送信する。PDA１−２は、メールを受信した場合、メールにスクリプト（例えば、Javaにより記述されているスクリプト）が含まれているとき、スクリプトを抽出して、抽出したスクリプトを実行する。
【００２６】
PDA１−２は、クレードル２−２に装着され、クレードル２−２を介して、パーソナルコンピュータ３−２に接続されている。
【００２７】
PDA１−２は、クレードル２−２、パーソナルコンピュータ３−２、インターネット４、メールサーバ５−１および５−２、並びにDNSサーバ４−１および６−２を介して、PDA１−１にメールを送信する。PDA１−１は、メールを受信した場合、メールにスクリプトが含まれているとき、スクリプトを抽出して、スクリプトを実行する。
【００２８】
クレードル２−１は、USB（Universal Serial Bus）、またはRS-232-Cなどの規格に基づくシリアル通信により、PDA１−１およびパーソナルコンピュータ３−１と接続される。クレードル２−１は、PDA１−１と接続するための端子、およびパーソナルコンピュータ３−１と接続するためのケーブル等が設けられ、装着されているPDA１−１とパーソナルコンピュータ３−１とのメールの送受信を実行する。また、クレードル２−１は、装着されているPDA１−１に電源を供給する。
【００２９】
パーソナルコンピュータ３−１は、クレードル２−１を介して、PDA１−１に接続されるとともに、図示せぬ公衆電話回線、およびインターネット接続サービスプロバイダなどを介して、インターネット４に接続されている。パーソナルコンピュータ３−１は、インターネット４を介して、PDA１−１から供給されたメールをメールサーバ５−１に送信すると共に、メールサーバ５−１から受信したメールをPDA１−１に送信する。
【００３０】
クレードル２−２は、USB、またはRS-232-Cなどの規格に基づくシリアル通信により、PDA１−２およびパーソナルコンピュータ３−２と接続される。クレードル２−２は、PDA１−２と接続するための端子、およびパーソナルコンピュータ３−２と接続するためのケーブル等が設けられ、装着されているPDA１−２とパーソナルコンピュータ３−２とのメールの送受信を実行する。また、クレードル２−２は、装着されているPDA１−２に電源を供給する。
【００３１】
パーソナルコンピュータ３−２は、クレードル２−２を介して、PDA１−２に接続されるとともに、図示せぬ公衆電話回線、およびインターネット接続サービスプロバイダなどを介して、インターネット４に接続されている。パーソナルコンピュータ３−２は、インターネット４を介して、PDA１−２から供給されたメールをメールサーバ５−２に送信すると共に、メールサーバ５−２から受信したメールをPDA１−２に送信する。
【００３２】
メールサーバ５−１は、インターネット４を介して、PDA１−１または１−２からメールを受信し、受信したメールのあて先のドメインが自分に対応していないとき、他のメールサーバ、例えば、メールサーバ５−２にメールを転送する。メールサーバ５−１は、インターネット４を介して、メールサーバ５−２から転送されたメールを受信し、受信したメールのあて先のドメインが自分に対応していない場合、図示せぬ他のメールサーバにメールを転送する。
【００３３】
メールサーバ５−１は、インターネット４を介して、PDA１−１若しくは１−２、またはメールサーバ５−２から受信したメールのあて先のドメインが自分に対応しているとき、受信したメールをスプールと称するメールボックスに格納する。
【００３４】
メールサーバ５−２は、インターネット４を介して、PDA１−１または１−２からメールを受信し、受信したメールのあて先のドメインが自分に対応していない場合、他のメールサーバ、例えば、メールサーバ５−１にメールを転送する。メールサーバ５−２は、インターネット４を介して、メールサーバ５−１から転送されたメールを受信し、受信したメールのあて先のドメインが自分に対応していない場合、他のメールサーバにメールを転送する。
【００３５】
メールサーバ５−２は、インターネット４を介して、PDA１−１若しくは１−２、またはメールサーバ５−１から受信したメールのあて先のドメインが自分に対応しているとき、受信したメールをスプールと称するメールボックスに格納する。
【００３６】
DNSサーバ６−１は、PDA１−１若しくは１−２、メールサーバ５−１若しくは５−２からホスト名を受信したとき、受信したホスト名に対応するIP（Internet Protocol）アドレスをホスト名を送信した相手に送信する。
【００３７】
DNSサーバ６−１は、メールサーバ５−１または５−２からドメイン名を受信したとき、受信したドメイン名に対応するメールサーバ（例えば、メールサーバ５−１または５−２）のホスト名を送信した相手に送信する。
【００３８】
DNSサーバ６−２は、PDA１−１若しくは１−２、メールサーバ５−１若しくは５−２からホスト名を受信したとき、受信したホスト名に対応するIPアドレスをホスト名を送信した相手に送信する。
【００３９】
DNSサーバ６−２は、メールサーバ５−１または５−２からドメイン名を受信したとき、受信したドメイン名に対応するメールサーバ（例えば、メールサーバ５−１または５−２）のホスト名を送信した相手に送信する。
【００４０】
以下、PDA１−１または１−２を個々に区別する必要がないとき、単にPDA１と称する。以下、クレードル２−１または２−２を個々に区別する必要がないとき、単にクレードル２と称する。以下、パーソナルコンピュータ３−１または３−２を個々に区別する必要がないとき、単にパーソナルコンピュータ３と称する。
【００４１】
次に、インターネット４を介した、メールの送受信について説明する。
【００４２】
インターネット４を介して、メールを送信または受信する仕組みは、はがきなどの手紙を届ける郵便の仕組みに非常によく似ている。郵便の場合、１．手紙を書く、２．ポストへ投函する、３．郵便局間で転送する、４．郵便受けに配達する、という４つのステップを経て、１通の手紙が相手に届く。
【００４３】
インターネット４を介した、メールの場合、１．メール送受信プログラム上でメールを書く、２．メール送受信プログラムの送信ボタンを押す、３．メールサーバ間で転送する、４．メール送受信プログラムの受信ボタンを押す、という４つのステップを経て、メールが相手に届く。
【００４４】
メール送受信プログラムは、メールを書いて相手に送る、または相手が送ったメールを受信するプログラムである。メール送受信プログラムは、メーラとも呼ばれ、ポストと郵便受けとに対応する機能を有する。
【００４５】
ほとんどのメール送受信プログラムは、メールを画面に表示させ、またはメールを書くためのエディタ機能を有する。使用者は、メール送受信プログラムを操作して、メールを送信し、または受信する。
【００４６】
代表的なメール送受信プログラムとして、米マイクロソフト社のOutlookExpress（商標）、米クアルコム社のEudora Pro（商標）、フリーソフトウェアであるBecky!InternetMailまたはAl-Mail32などがある。
【００４７】
メールサーバは、いわば郵便局の役割を有する。メールサーバは、メール送受信プログラムが送信したメールを受信し、メールをメール送受信プログラムに送信する。代表的なメールサーバプログラムとして、米センドメール社のsendmail（商標）などがある。
【００４８】
メールサーバの主な役割は、３つある。第１は、メール送受信プログラムから受信したメールを、適切に、他のメールサーバに送信することである。第２は、他のメールサーバから受信したメールをあて先（使用者）別に整理して、管理することである。第３は、管理しているメールをメール送受信プログラムの要求に応じてメール送受信プログラムに送信することである。
【００４９】
メール送受信プログラムがメールサーバにメールを送信する処理の手続は、メールサーバがメール送受信プログラムにメールを送信する処理の手続と異なり、通信の手順が異なる。
【００５０】
通信の手順は、プロトコルと呼ばれている。メール送受信プログラムがメールサーバにメールを送信する処理、およびメールサーバがメールサーバにメールを送信する処理としては、SMTP（Simple Mail Transfer Protocol）が広く利用されている。
【００５１】
メール送受信プログラムがメールサーバからメールを受信する処理としては、POP3（Post Office Protocol Version3）が広く利用されている。
【００５２】
メールサーバにおける、SMTPに対応するポートと、POP3に対応するポートは、それぞれ異なる。メール送受信プログラムは、メールを送信するとき、メールサーバと、SMTPに対応するポートを介して、通信し、メールを受信するとき、メールサーバと、POP3に対応するポートを介して、通信する。
【００５３】
郵便の場合、外国から送信した手紙は、通過した国毎に消印を押される。同様に、メールも、消印が付されている。
【００５４】
メールを送信すると、メールサーバを通過する度に、メール本文の先頭部分には消印情報が次々追記される。先頭に付くことから、この消印情報は、ヘッダと呼ばれる。
【００５５】
ヘッダは、大きく３つのブロックで構成される。最も下の部分（本文に近い部分）には、メール送受信プログラムが付するブロックが配置され、その上の２つの部分には、メールサーバが付するブロックが配置される。
【００５６】
ヘッダは、上部ほど、新しい情報を格納する。
【００５７】
メール送受信プログラムが付するヘッダ情報は、手紙の宛名と同様の情報から構成される。Fromには、送信元のメールアドレスが格納され、Toには、宛先のメールアドレスが格納され、Subjectには、題名が格納される。
【００５８】
メールサーバが付するブロックのうち、Receivedには、タイムスタンプが格納される。formは、通過したメールサーバの名称を格納する。
【００５９】
メールサーバは、通過するメールに、このReceivedのブロックを付する。従って、Receivedのブロックの記載を下から上に順に確認することにより、メールが通過したメールサーバを知ることができる。
【００６０】
次に、メール送受信プログラムの設定について説明する。メールを送信するために正確に設定しなければならない情報は、メール送受信プログラムに対応する電子メールアドレス、およびSMTPに対応するメールサーバのホスト名である。
【００６１】
メール送受信プログラムに対応する電子メールアドレスは、差出人名に対応する、送信元のアドレスである。メール送受信プログラムに対応する電子メールアドレスが設定されないとき、メールを受信した相手が差出人を知ることができず、また、宛て先が不明だったとき、メールの差し戻しをすることができなくなる。
【００６２】
メール送受信プログラムは、メール送受信プログラムに対応する電子メールアドレスを、ヘッダ中のFromの行に挿入する。メール送受信プログラムに対応する電子メールアドレスは、相手が返事を書くときの宛先としても利用される。メール送受信プログラムによっては、返信アドレスの項目を設定することにより、返事の受け取り先を変更することができる。
【００６３】
SMTPに対応するメールサーバのホスト名には、メール送受信プログラムがメールを送信するメールサーバのホスト名が設定される。メール送受信プログラムは、メールを送信するとき、SMTPに対応するメールサーバのホスト名を基に、メールサーバにメールを送信する。ホスト名は、例えば、mailserver.so-net.ne.jpなどと記述される。
【００６４】
電子メールアドレスおよびホスト名は、ドメイン名に基づいて、表記される。
ドメイン名においては、国名、組織の種類、会社名を「．」が接続されて表記される。ドメイン名において、大きい区分ほど、後ろに配置される。
【００６５】
電子メールアドレスは、使用者の名前に、区切り文字としての「＠」を付して、更に、ドメイン名を接続して、表記される。
【００６６】
ホスト名は、サーバ名に、区切り文字としての「．」を付して、更に、ドメイン名を接続して、表記される。
【００６７】
電子メールアドレスまたはホスト名は、上述したように表記されることにより、一意のメールアドレスまたはホスト名とされる。
【００６８】
電子メールアドレスおよびホスト名のドメイン名には、大文字と小文字が使われるが、これらは区別されない。
【００６９】
次に、メール送受信プログラムによるメールサーバへのメールの送信について説明する。メール送受信プログラムは、メールの送信にあたって、ホスト名に対応するIPアドレスを取得しなければならない。IPアドレスは、例えば、192.168.0.1などのように、数字および「．」の組み合わせで記述される。
【００７０】
DNSは、ホスト名をIPアドレスに変換するシステムである。インターネット４には、いくつものDNSサーバが設置されている。いずれかの、DNSサーバにホスト名を送信すると、そのDNSサーバは、ホスト名に対応するIPアドレスを返信する。
【００７１】
例えば、図１のDNSサーバ６−１は、ホスト名Aに対応させて、IPアドレスa.a.a.aを記録している。
【００７２】
メール送受信プログラムは、メールサーバにアクセスする直前に、DNSサーバからメールサーバのIPアドレスを教えてもらう。
【００７３】
次に、メール送受信プログラムからメールサーバへのメールの送信の手順について説明する。メール送受信プログラムおよびメールサーバは、SMTPの手順に従って、メール送受信プログラムからメールサーバにメールを送信する。
【００７４】
SMTPの手順は、TCP（Transmission Control Protocol）のセットアップ、メールサーバの呼び出し、送信の準備、宛先の通知、本文の送信、終了確認、およびTCPの終了の処理から構成される。メールサーバの呼び出し、送信の準備、宛先の通知、本文の送信、および終了確認の処理は、いずれも、メール送受信プログラムからの要求とメールサーバの返答で構成される。
【００７５】
SMTPの処理において、メール送受信プログラムおよびメールサーバは、コマンド文および返信コードにより、通信する。例えば、コマンド文”RCPT from:y@so-net.ne.jp"において、RCPTがメールの宛先を通知するコマンドであり、そのメールの宛先がy@so-net.ne.jpである。
【００７６】
返信コードにおいて、例えば、「はい」が250である。返信コードのいくつかを説明すると、251は、"そのようなユーザは存在しません"を示し、450は、"メールボックスが使用中です”を示し、451は、"エラーが発生し異常終了しました”を示し、452は、"処理に必要なリソースが不足しています"を示し、501は、”コマンドの文法が間違っています”を示し、502は、"コマンドが使えません”を示し、550は、"メールボックスが存在しません"を示す。
【００７７】
メールには、一斉同報機能がある。一生同報機能は、同じ文面のメールを何人にも送る機能である。
【００７８】
例えば、ヘッダのToの行に、複数のメールアドレスを記載すると、メール送受信プログラムは、RCPTコマンドを送信する処理を、メールアドレスに記載された、それぞれアドレスについて繰り返す。
【００７９】
なお、Ｃｃ（カーボンコピー）行またはＢｃｃ（ブラインドカーボンコピー）行といった専用のヘッダを利用しても一斉同報をすることができる。
【００８０】
Ｃｃ行またはＢｃｃ行を利用してメールを送信した場合、メールを受信した相手は、ヘッダのTo行に自分のアドレスが記載されていないことから、メールのコピーを受信したことを知ることができる。
【００８１】
Ｃｃ行を利用してメールを送信した場合、ヘッダには、相手のメールアドレスが格納されている。Ｂｃｃ行を利用してメールを送信した場合、メール送受信プログラムは、RCPTコマンドを送信する処理の後、ヘッダからＢｃｃ行を削除して、本文を送信する。Ｂｃｃ行を利用したメールの送信は、相手に同報した宛先をあえて知らせたくないとき、有効である。
【００８２】
次に、メールサーバが、宛先ちかくのメールサーバを探して転送する処理について説明する。メールサーバからメールサーバにメールを転送する処理は、SMTPの手順に従って実行される。
【００８３】
メールサーバからメールサーバにメールを転送する処理において、メールを送信するメールサーバは、メールの送り先からドメイン名を切り出して、切り出したドメイン名をDNSサーバに送信する。
【００８４】
DNSサーバは、ドメイン名とメールサーバのホスト名との関係をMXレコードとして記録しているので、ドメイン名に対応するメールサーバのホスト名を、ドメイン名を送信したメールサーバに送信する。
【００８５】
例えば、図１のDNSサーバ６−２は、ドメイン名B.B.Bに対応させて、ホスト名Bを記録している。
【００８６】
ホスト名を受信したメールサーバは、そのホスト名をDNSサーバに送信する。
【００８７】
DNSサーバは、ホスト名とIPアドレスとの関係をAレコードとして記録しているので、ホスト名に対応するIPアドレスを、ホスト名を送信したメールサーバに送信する。
【００８８】
例えば、図１のDNSサーバ６−２は、ホスト名Bに対応させて、IPアドレスb.b.b.bを記録している。
【００８９】
IPアドレスを送信したメールサーバは、上述したSMTPの手順に基づき、メールを、メールの送り先のドメイン名に対応するメールサーバに送信する。
【００９０】
メールサーバは、メーリングリストを利用して、メールを同報することができる。メーリングリストを利用して、メールを同報するとき、エイリアス機能が使用される。
【００９１】
エイリアス機能を利用するメールサーバは、所定のメールアドレス（代表アドレス）に対応して、予め複数のアドレスをグループ化して、記録している。メールサーバは、代表アドレス宛のメールを受信すると、代表アドレスに対応して記録されている複数のアドレスの全てに対して、メールのコピーを再送信する。メールサーバは、ヘッダを書き換えることなく、登録しているメールアドレスに宛てて次々にメールを送信する。
【００９２】
ドメイン名に対応するメールサーバは、受信したメールをスプールと呼ばれるメールボックスに保存する。メールサーバは、使用者ごとにメールを管理し、宛先に対応する使用者のメール送受信プログラムの受信ボタンが押されたとき、メールを配信する。
【００９３】
メールサーバが、メール送受信プログラムにSMTPに基づいてメールを送信しないのは、メール送受信プログラムを実行している装置が動作していない、またはインターネット４に接続されていない可能性があるためである。
【００９４】
メールサーバは、メール送受信プログラムにPOP3に基づいてメールを送信する。POP3の手順は、TCPのセットアップ、メールサーバの呼び出し、使用者の認証、メールボックスの内容確認、着信数のチェック、本文の受信、削除の依頼、終了確認、およびTCPの終了の処理から構成される。メールサーバの呼び出し、使用者の認証、メールボックスの内容確認、着信数のチェック、本文の受信、削除の依頼、および終了確認の処理は、いずれも、メール送受信プログラムからの要求とメールサーバの返答で構成される。
【００９５】
POP3におけるコマンド文および返信コードは、SMTPにおけるコマンド文および返信コードと異なる。
【００９６】
POP3においては、予めメールサーバに登録しているユーザIDおよびパスワードにより使用者を認証しない限り、メールの受信の処理は実行されない。
【００９７】
図２乃至図４は、PDA１の外観を説明する図である。図２は、把持されたときのPDA１の斜視図である。図３は、クレードル２に装着されたPDA１の斜視図である。図４は、PDA１の正面図である。
【００９８】
PDA１は、片手で把持、および操作が可能な大きさに、その筐体が形成されている。PDA１の上部には、半導体メモリが内蔵されているメモリースティック（商標）１１が挿入されるスロットが設けられている。
【００９９】
PDA１は、PDA１の下面とクレードル２の上面に接するようにクレードルに装着される。PDA１の下面には、クレードル２と接続するためのUSB（Universal Serial Bus）ポート（図示せず）等が設けられている。
【０１００】
PDA１には、表示部２１、キー２２、およびジョグダイヤル２３などが設けられている。
【０１０１】
表示部２１は、液晶表示装置などの薄型の表示装置で構成され、アイコン、サムネイル、またはテキストなどの画像を表示する。表示部２１の上側には、タッチパッドが設けられている。タッチパッドを指またはペンなどで押圧することにより、PDA１に所定のデータまたは動作指示が入力される。
【０１０２】
キー２２は、入力キーなどから構成され、表示部２１に表示されたアイコンまたはサムネイルの選択などを入力する。
【０１０３】
ジョグダイヤル２３は、回転操作または本体側への押圧操作に対応して、表示部２１に表示されたアイコンまたはサムネイルの選択などを入力する。
【０１０４】
図５は、PDA１の構成を説明する図である。CPU（Central Processing Unit）３１は、発振器３２から供給されるクロック信号に同期して、Flash ROM（Read-only Memory）３３またはEDO DRAM（Extended Data Out Dynamic Random-Access Memory）３４に格納されているオペレーティングシステム、または開発されたアプリケーションプログラムなどの各種のプログラムを実行する。
【０１０５】
Flash ROM３３は、EEPROM（Electrically Erasable Programmable Read-Only Memory）の一種であるフラッシュメモリで構成され、一般的には、CPU３１が使用するプログラムや演算用のパラメータのうちの基本的に固定のデータを格納する。EDO DRAM３４は、CPU３１の実行において使用するプログラムや、その実行において適宜変化するパラメータを格納する。
【０１０６】
メモリースティックインターフェース３５は、PDA１に装着されているメモリースティック１１からデータを読み出すとともに、CPU３１から供給されたデータをメモリースティック１１に書き込む。
【０１０７】
USB（Universal Serial Bus）インターフェース３６は、発振器３７から供給されるクロック信号に同期して、接続されているUSB機器であるドライブ５１からデータまたはプログラムを入力するとともに、CPU３１から供給されたデータをドライブ５１に供給する。USBインターフェース３６は、発振器３７から供給されるクロック信号に同期して、接続されているUSB機器であるクレードル２からデータまたはプログラムを入力するとともに、CPU３１から供給されたデータをクレードル２に供給する。
【０１０８】
ドライブ５１は、装着されている磁気ディスク６１、光ディスク６２、光磁気ディスク６３、または半導体メモリ６４に記録されているデータまたはプログラムを読み出して、そのデータまたはプログラムを、USBインターフェース３６を介して、接続されているCPU３１またはEDO DRAM３４に供給する。また、ドライブ５１は、装着されている磁気ディスク６１、光ディスク６２、光磁気ディスク６３、または半導体メモリ６４にデータまたはプログラムを記録させる。
【０１０９】
Flash ROM３３，EDO DRAM３４、メモリースティックインターフェース３５、およびUSBインターフェース３６は、アドレスバスおよびデータバスを介して、CPU３１に接続されている。
【０１１０】
表示部２１は、LCDバスを介して、CPU３１からデータを受信し、受信したデータに対応する画像または文字などを表示する。タッチパッド制御部３８は、表示部２１の上側に設けられたタッチパッドが操作されたとき、操作に対応したデータ（例えば、タッチされた座標を示す）を表示部２１から受信し、受信したデータに対応する信号をシリアルバスを介してCPU３１に供給する。
【０１１１】
EL（Electroluminescence）ドライバ３９は、表示部２１の液晶表示部の裏側に設けられている電界発光素子を動作させ、表示部２１の表示の明るさを制御する。
【０１１２】
赤外線通信部４０は、UART（Universal asynchronous receiver-transmitter）を介して、CPU３１から受信したデータを赤外線を媒体として、図示せぬ他の機器に送信するとともに、他の機器から送信された赤外線を媒体とするデータを受信して、CPU３１に供給する。また、PDA１は、UARTを介して、他の機器と通信することができる。
【０１１３】
音声再生部４２は、スピーカ、および音声のデータの復号回路などから構成され、予め記憶している音声のデータ、またはインターネット４を介して受信した音声のデータなどを復号して、再生し、音声を出力する。例えば、音声再生部４２は、バッファ４１を介して、CPU３１から供給された音声のデータを再生して、データに対応する音声を出力する。
【０１１４】
キー２２は、入力キーなどで構成され、CPU３１に各種の指令を入力するとき、使用者により操作される。
【０１１５】
ジョグダイヤル２３は、回転操作または本体側への押圧操作に対応するデータをCPU３１に供給する。
【０１１６】
電源回路４３は、装着されているバッテリ５２または接続されているAC（Alternating current）アダプタ５３から供給される電源の電圧を変換して、電源をCPU３１乃至音声再生部４２のそれぞれに供給する。
【０１１７】
次に、PDA１−１が送信したメールがPDA１−２に受信されるまでの手順を図６を参照して説明する。PDA１−１は、クレードル２−１、パーソナルコンピュータ３−１、およびインターネット４を介して、DNSサーバ６−１にメールサーバ５−１のホスト名を送信する。DNSサーバ６−１は、インターネット４を介して、受信したホスト名に対応させてＡレコードに格納されているメールサーバ５−１のIPアドレスをPDA１−１に送信する。
【０１１８】
PDA１−１は、DNSサーバ６−１から受信したメールサーバ５−１のIPアドレスを基に、クレードル２−１、パーソナルコンピュータ３−１、およびインターネット４を介して、SMTP（Simple Mail Transfer Protocol）の手順に基づき、メールをメールサーバ５−１に送信する。
【０１１９】
メールサーバ５−１は、受信したメールのあて先を確認して、メールのあて先のドメイン名が自分のドメインに対応しない場合、インターネット４を介して、DNSサーバ６−２にドメイン名を送信する。DNSサーバ６−２は、インターネット４を介して、受信したドメイン名に対応させてＭＸレコードに格納されているメールサーバ５−２のホスト名をメールサーバ５−１に送信する。
【０１２０】
メールサーバ５−１は、インターネット４を介して、DNSサーバ６−２から受信したメールのあて先に対応するメールサーバ５−２のホスト名をDNSサーバ６−２に送信する。DNSサーバ６−２は、インターネット４を介して、受信したホスト名に対応させてＡレコードに格納されている、メールサーバ５−２のIPアドレスをメールサーバ５−１に送信する。
【０１２１】
メールサーバ５−１は、インターネット４を介して、受信したIPアドレスを基に、SMTPの手順に基づき、メールをメールサーバ５−２に転送する。メールサーバ５−２は、受信したメールのあて先を確認して、あて先のドメイン名が自分のドメインに対応する場合、メールをスプールと称するメールボックスに格納する。
【０１２２】
PDA１−２は、クレードル２−２、パーソナルコンピュータ３−２、およびインターネット４インターネット４を介して、DNSサーバ６−２にメールサーバ５−２のホスト名を送信する。DNSサーバ６−２は、インターネット４を介して、受信したホスト名に対応する、メールサーバ５−２のIPアドレスをPDA１−２に送信する。
【０１２３】
PDA１−２は、受信したメールサーバ５−２のIPアドレスを基に、クレードル２−２、パーソナルコンピュータ３−２、およびインターネット４を介して、POP3（Post Office Protocol Version3）の手順に基づき、メールサーバ５−２にメールを要求する。PDA１−２は、クレードル２−２、パーソナルコンピュータ３−２、およびインターネット４を介して、POP3の手順に基づき、メールサーバ５−２からメールを受信する。
【０１２４】
図７は、メールを送信するPDA１が実行するプログラムを説明する図である。オペレーティングシステム（以下、ＯＳと称する）１０１は、PDA１の基本的な動作を制御するプログラムである。
【０１２５】
ドライバ１０２−１は、表示部１１の表示を制御するプログラムである。ドライバ１０２−２は、タッチパッド制御部３８の動作を制御するプログラムである。ドライバ１０２−３は、音声再生部４２の音声の再生を制御するプログラムである。ドライバ１０２−４は、ジョグダイヤル２３の入力に対応した処理を実行するプログラムである。
【０１２６】
ライブラリ１０３は、メール送受信プロクラム１０４などのアプリケーションプログラムが利用する複数の処理ルーチンが格納されている。
【０１２７】
メール送受信プロクラム１０４は、クレードル２−１若しくは２−２、パーソナルコンピュータ３−１若しくは３−２、およびインターネット４を介して、メールを送信し、または受信するプログラムである。
【０１２８】
なお、図７に示すプログラムの構成は、従来のメールを送受信する機器のプロクラムの構成と同様である。
【０１２９】
図８は、メールを送信するか、またはメールを受信するPDA１が実行するプログラムを説明する図である。メール送受信プロクラム１０４は、メールサーバ５−２からメールを受信するとき、例えば、図９に例を示す画像を表示部１１に表示させる。メール送受信プログラム１０４は、受信したメールを表示するとき、受信したメールをインタプリタ１０６に供給する。
【０１３０】
ライブラリ１０５は、インタプリタ１０６がスクリプトを実行するとき利用されるルーチンを格納する。
【０１３１】
インタプリタ１０６は、メール送受信プロクラム１０４にプラグインされたプログラムであり、メールに含まれているスクリプトを抽出して、抽出したスクリプトを実行する。例えば、インタプリタ１０６は、スクリプトの実行に対応して、ドライバ１０２−１に、所定の画像を表示部１１に表示させ、ドライバ１０２−３に、所定の音声を音声再生部４２に再生させる。
【０１３２】
インタプリタ１０６は、表示部１１または音声再生部４２などに対応するドライバ１０２−１乃至１０２−４に、表示または音声の再生などを実行させるので、PDA１の機種の違いなどにより、表示部１１または音声再生部４２が異なるものであったとしても、インタプリタ１０６による表示または音声の再生は、確実に、かつ正確に実行される。
【０１３３】
また、インタプリタ１０６は、表示部１１または音声再生部４２などのデバイスに対応するドライバ１０２−１乃至１０２−４に、表示または音声の再生などの処理を実行させるので、スクリプトの実行内容に対応して動作させる多種のデバイスがPDA１に組み込まれていても、インタプリタ１０６によるデバイスの制御は、確実に、かつ正確に実行される。
【０１３４】
なお、メール送受信プログラム１０４は、表示しようとしたメールにスクリプトが含まれているとき、インタプリタ１０６を起動するとともに、ライブラリ１０５をロードするようにしてもよい。
【０１３５】
図１０は、インタプリタ１０６のより詳細な構造を説明する図である。インタプリタ１０６は、構文解析モジュール１２１、実行モジュール１２２、および出力モジュール１２３から構成される。
【０１３６】
構文解析モジュール１２１は、例えば、図１１に示すように、メール送受信プログラム１０４がメール１５１を表示しようとするとき、メール送受信プログラム１０４からメール１５１を受け取り、受け取ったメール１５１に含まれているスクリプトを抽出して、抽出したスクリプトを実行モジュール１２２に供給する。
【０１３７】
図１２は、PDA１が送信するか、または受信するメール１５１の構造の例を示す図である。メール１５１は、スクリプトを格納しているとき、メール本文に続いて、スクリプトを格納する。メール１５１は、格納しているスクリプトがデータを必要とする場合、スクリプトに続いて、インタプリタ１０６によるスクリプトの実行に必要なデータを格納する。
【０１３８】
構文解析モジュール１２１は、メール１５１にスクリプトと共にデータが格納されているとき、スクリプトと共にデータを抽出して、抽出したデータをスクリプトと共に実行モジュール１２２に供給する。
【０１３９】
図１３は、メール１５１がスクリプトを格納している場合のインタプリタ１０６の処理の流れを説明する図である。構文解析モジュール１２１は、メール１５１からスクリプトを抽出したとき、抽出したスクリプトを実行モジュール１２２に供給する。
【０１４０】
スクリプトの供給を受けた実行モジュール１２２は、スクリプトを実行する。
出力モジュール１２３は、スクリプトの実行の結果に対応して、画像を表示するか、音声を出力するか、または出力データ１７１を、例えば、EDO DRAM３４に記憶させる。
【０１４１】
一方、構文解析モジュール１２１が、メール１５１からスクリプトを抽出しなかったとき（メール１５１にスクリプトがふくまれていないとき）、図１４に示すように、構文解析モジュール１２１は、以後の処理をメール送受信プログラム１０４に実行させ、通常のメールの処理が実行される。このとき、メール送受信プログラム１０４は、メール１５１の本文に対応するテキストデータ１９１をドライバ１０２−１に供給する。ドライバ１０２−１は、テキストデータ１９１を基に、メール１５１の本文を表示部１１に表示させる。
【０１４２】
図１５は、オセロを実行するメール１５１の例を示す図である。図１５に示す例において、メール１５１は、本文およびスクリプトにより構成されている。図１５に示すメール１５１に含まれるスクリプトは、MIME(Multi Purpose Internet Mail Extension)方式により記述されたapplication/x-emmaである。
【０１４３】
図１５に示すメール１５１において、”TO:"Someone"<someone@sony.co.jp>"乃至”Othelloの２手目です。"が本文に対応し、"------=_NextPart_000_0011_01BFA9E7.2EE28580"乃至"----Next_Part(Wed_Apr_19_11:42:48_2000_705)----"がスクリプトに対応する。
【０１４４】
図１６は、スクリプトの実行を模式的に示す図である。スクリプトの実行は、入力部および実行部に分類される。
【０１４５】
入力部においては、構文解析モジュール１２１により、メール１５１からスクリプトが抽出される。
【０１４６】
実行部は、更に、データ入力部、処理実行部、および出力部から構成されている。データ入力部において、実行モジュール１２２は、例えば、ドライバ１０２−１に、入力用の画像を表示部１１に表示させ、ドライバ１０２−２に、タッチパッド制御部３８からの入力を制御させる。
【０１４７】
データ入力部における、入力は、実行モジュール１２２が、例えば、タブレット、キー２２、ジョグダイヤル２３、センサ、メモリースティックインターフェース３５、外付けキーボード、モデム、USBインターフェース３６、赤外線通信部４０、またはドライブ５２などに対応するドライバを制御することにより実行される。
【０１４８】
処理実行部において、実行モジュール１２２は、スクリプトの処理ロジックを実行する。
【０１４９】
出力部において、出力モジュール１２３は、処理実行部における処理に対応して、例えば、ドライバ１０２−１に、処理の結果の画像を表示部１１に表示させ、ドライバ１０２−３に、処理の結果の音声を音声再生部４２に出力させる。
【０１５０】
出力部における、出力は、出力モジュール１２３が、例えば、表示部１１、モデム、音声再生部４２、メモリースティックインターフェース３５、USBインターフェース３６、赤外線通信部４０、またはドライブ５２などに対応するドライバを制御することにより実行される。
【０１５１】
図１７は、オセロゲームを実行するスクリプトの例を示す図である。図１７に示すスクリプトがインタプリタ１０６に読み込まれたとき、実行モジュール１２２は、onload()メソッドを起動して、図１８に例を示すように、show()メソッドによりオセロ盤とそのときのコマを表示部１１に表示させる。
【０１５２】
図１９に例を示すように、使用者が新しい手を入力すると、実行モジュール１２２は、ontap()メソッドにより、新しい手が入力されたオセロ盤上の座標を取得する。実行モジュール１２は、check()メソッドにより、新しい手に対応する座標がオセロのルールに規定される要件を満たしているか否かを判定し、オセロのルールに規定される要件を満たしていないと判定された場合、confirm()メソッドにより、エラーである旨を通知し（表示部１１にエラーメッセージを表示する）、ontap()メソッドの実行を繰り返す。
【０１５３】
新しい手がオセロのルールに規定される要件を満たしていると判定された場合、実行モジュール１２２は、図２０に例を示すように、update()メソッドにより、コマの面を更新する。出力モジュール１２３は、図２１に例を示すように、sendmail()メソッドにより、メールを相手に送信する処理を実行して、exit()メソッドにより処理は終了する。
【０１５４】
次に、図２２のフローチャートを参照して、メール送受信プログラム１０４を実行するPDA１によるメール送信の処理を説明する。ステップＳ１１において、メール送受信プログラム１０４は、USBインターフェース３６に、クレードル２、パーソナルコンピュータ３、およびインターネット４を介して、メールサーバ５−１に対応するホスト名をDNSサーバ６−１に送信させ、DNSサーバ６−１からメールサーバ５−１に対応するIPアドレスを取得する。
【０１５５】
ステップＳ１２乃至ステップＳ１８の処理は、例えば、SMTPの手順に基づいて実行される。
【０１５６】
ステップＳ１２において、メール送受信プログラム１０４は、USBインターフェース３６に、クレードル２、パーソナルコンピュータ３、およびインターネット４を介して、IPアドレスを指定させてメールサーバ５−１と接続させる。ステップＳ１３において、メール送受信プログラム１０４は、USBインターフェース３６に、クレードル２、パーソナルコンピュータ３、およびインターネット４を介して、メールサーバ５−１を呼び出させる（メールサーバ５−１が実行するメールサーバプログラム（例えば、sendmail（商標）など）を呼び出す）。
【０１５７】
ステップＳ１４において、メール送受信プログラム１０４は、USBインターフェース３６に、メールの送信の準備をメールサーバ５−１にさせる（メールサーバ５−１が実行するメールサーバプログラムに、メールを送信する手続きを実行する旨を通知する）。ステップＳ１５において、メール送受信プログラム１０４は、USBインターフェース３６に、送信するメールのあて先（メールアドレス）をメールサーバ５−１に通知する。
【０１５８】
ステップＳ１６において、メール送受信プログラム１０４は、USBインターフェース３６に、メールをメールサーバ５−１に送信させる。ステップＳ１７において、メール送受信プログラム１０４は、USBインターフェース３６に、メールサーバ５−１との処理の終了確認をさせる。
【０１５９】
ステップＳ１７において、メール送受信プログラム１０４は、USBインターフェース３６に、メールサーバ５−１との接続を切断させ、処理は終了する。
【０１６０】
このように、PDA１は、メールサーバ５−１にメールを送信することができる。
【０１６１】
なお、メールサーバ５−１がメールサーバ５−２にメールを転送する処理は、メールのあて先に対応するホスト名の取得の処理を除いて、メール送信の処理と同様なので、その説明は省略する。
【０１６２】
次に、図２３のフローチャートを参照して、メール送受信プログラム１０４を実行するPDA１によるメール受信の処理を説明する。ステップＳ３１において、メール送受信プログラム１０４は、USBインターフェース３６に、クレードル２、パーソナルコンピュータ３、およびインターネット４を介して、メールサーバ５−２に対応するホスト名をDNSサーバ６−２に送信させ、DNSサーバ６−２からメールサーバ５−２に対応するIPアドレスを取得する。
【０１６３】
ステップＳ３２乃至ステップＳ４０の処理は、例えば、POP3の手順に基づいて実行される。
【０１６４】
ステップＳ３２において、メール送受信プログラム１０４は、USBインターフェース３６に、クレードル２、パーソナルコンピュータ３、およびインターネット４を介して、IPアドレスを指定させてメールサーバ５−２と接続させる。ステップＳ３３において、メール送受信プログラム１０４は、USBインターフェース３６に、クレードル２、パーソナルコンピュータ３、およびインターネット４を介して、メールサーバ５−２を呼び出させる。
【０１６５】
ステップＳ３４において、メール送受信プログラム１０４は、USBインターフェース３６に、PDA１の使用者のユーザIDおよびパスワードを、クレードル２、パーソナルコンピュータ３、およびインターネット４を介して、メールサーバ５−２に送信させ、メールサーバ５−２に使用者の認証の処理を実行させる。
【０１６６】
ステップＳ３５において、メール送受信プログラム１０４は、USBインターフェース３６に、メールボックス（PDA１の使用者宛てのメールが格納されている）の内容確認をメールサーバ５−２にさせる。
【０１６７】
ステップＳ３６において、メール送受信プログラム１０４は、USBインターフェース３６に、PDA１の使用者宛のメールの着信数をメールサーバ５−２に送信させ、メールの着信数を受信する。
【０１６８】
ステップＳ３７において、メール送受信プログラム１０４は、USBインターフェース３６に、メールサーバ５−２にPDA１の使用者宛のメールを送信させ、送信されたメールを受信させる。ステップＳ３８において、メール送受信プログラム１０４は、USBインターフェース３６に、PDA１の使用者宛のメールの削除をメールサーバ５−２に依頼させる。メールサーバ５−２は、PDA１の使用者宛のメールを削除する。
【０１６９】
ステップＳ３９において、メール送受信プログラム１０４は、USBインターフェース３６に、メールサーバ５−２との処理の終了確認をさせる。
【０１７０】
ステップＳ４０において、メール送受信プログラム１０４は、USBインターフェース３６に、メールサーバ５−２との接続を切断させ、処理は終了する。
【０１７１】
このように、PDA１は、メールサーバ５−２から、PDA１の使用者宛のメールを受信することができる。
【０１７２】
次に、メール送受信プログラム１０４が受信したメールを表示するとき実行される、メール送受信プログラム１０４およびインタプリタ１０６を実行するPDA１のスクリプトの処理を、図２４のフローチャートを参照して説明する。ステップＳ５１において、メール送受信プログラム１０４は、受信したメール１５１を読み込む。
【０１７３】
ステップＳ５２において、メール送受信プログラム１０４は、読み込んだメール１５１にスクリプトが含まれているか否かを判定し、スクリプトが含まれていると判定された場合、ステップＳ５３に進み、インタプリタ１０６を起動する。メール送受信プログラム１０４は、読み込んだメール１５１をインタプリタ１０６に供給する。
【０１７４】
なお、インタプリタ１０６は、メール送受信プログラム１０４と共に、予め起動させておくようにしてもよい。
【０１７５】
ステップＳ５４において、インタプリタ１０６の構文解析モジュール１２１は、メール１５１の記述を基に、メール１５１に含まれるスクリプトを抽出する。
ステップＳ５５において、インタプリタ１０６の実行モジュール１２２は、抽出したスクリプトを実行する。
【０１７６】
ステップＳ５６において、インタプリタ１０６の出力モジュール１２３は、スクリプトの実行の結果に対応して、表示または音声の出力の処理を実行する。ステップＳ５７において、メール送受信プログラム１０４は、インタプリタ１０６を終了させ、処理は終了する。
【０１７７】
ステップＳ５１において、スクリプトが含まれていないと判定された場合、スクリプトに対応する処理は必要ないので、ステップＳ５３乃至ステップＳ５７の処理はスキップされて、処理は終了する。
【０１７８】
このように、PDA１は、メール１５１にスクリプトが含まれているとき、インタプリタ１０６を起動して、スクリプトに対応した処理を実行する。
【０１７９】
なお、ステップＳ５２の処理は、予め起動しているインタプリタ１０６の構文解析モジュール１２１により実行されるようにしてもよい。
【０１８０】
次に、スクリプトの実行のより具体的な例であるオセロの処理を、図２５のフローチャートを参照して説明する。ステップＳ７１において、メール送受信プログラム１０４は、受信したメール１５１を読み込む。
【０１８１】
ステップＳ７２において、メール送受信プログラム１０４は、インタプリタ１０６を起動する。ステップＳ７３において、インタプリタ１０６の出力モジュール１２３は、表示部１１にオセロ盤とコマを表示させる。
【０１８２】
ステップＳ７４において、実行モジュール１２２は、新たな手が入力されたか否かを判定し、新たな手が入力されていないと判定された場合、新たな手が入力されるまで、ステップＳ７４に戻り判定の処理を繰り返す。
【０１８３】
ステップＳ７４において、新たな手が入力されたと判定された場合、ステップＳ７５に進み、実行モジュール１２２は、新たな手の座標（オセロ盤上の位置を示す）を読み取る。ステップＳ７６において、実行モジュール１２２は、新たな手がオセロのルールに規定される要件を満たしているか否かを判定し、新たな手がオセロのルールに規定される要件を満たしていると判定された場合、ステップＳ７７に進み、新たな手に対応するオセロ盤の位置にコマをおく。
【０１８４】
ステップＳ７８において、実行モジュール１２２は、所定のコマを裏返すなど、コマの面を更新する。ステップＳ７９において、出力モジュール１２３は、表示部１１にオセロ盤とコマを表示させる。
【０１８５】
ステップＳ８０において、出力モジュール１２３は、USBインターフェース３６に、新たな手を相手に通信させる。ステップＳ８１において、メール送受信プログラム１０４は、インタプリタ１０６を終了させ、処理は終了する。
【０１８６】
ステップＳ７６において、新たな手がオセロのルールに規定される要件を満たしていないと判定された場合、ステップＳ８２に進み、出力モジュール１２３は、表示部１１にエラーの表示をさせて、使用者にエラーを通知し、手続きは、ステップＳ７４に戻り、新たな手の入力から処理を繰り返す。
【０１８７】
このように、PDA１は、メール１５１に含まれるスクリプトに基づき、オセロの処理を実行する。
【０１８８】
以上のように、PDA１は、使用者がメール１５１を読もうとするとき、メール１５１の送り手が所望するアクションを実行する。PDA１は、使用者がメール１５１を読まないとき、メール１５１に含まれるスクリプトを実行しないので、スクリプトの処理の負荷を最小とすることができる。
【０１８９】
PDA１は、インタプリタ１０６を実行するだけで、スクリプトの記述に対応する種々の処理を実行することができるので、メールにデータを添付して送信する場合に比較して、添付されたデータの種類に対応する、多数のアプリケーションプログラムを格納しておく必要がない。
【０１９０】
また、インタプリタ１０６がスクリプトを実行するので、インタプリタ１０６をセキュアに実装すれば、メールに添付された実行プログラムをそのまま実行する場合に比較して、より安全に処理を実行させることができる。
【０１９１】
次に、本発明に係るメール送受信システムの第２の実施の形態について説明する。
【０１９２】
図２６は、本発明に係るメール送受信システムの第２の実施の形態を示す図である。公衆回線網２０２には、通信サービスの提供エリアを所望の広さに分割したセルにそれぞれ配置されている、固定無線局である基地局２０１−１乃至２０１−４を介して、PDA１−１若しくは１−２、またはカメラ付きデジタル携帯電話機３０１−１および３０１−２が接続されている。
【０１９３】
基地局２０１−１乃至２０１−４は、移動無線局であるPDA１−１および１−２、並びにカメラ付きデジタル携帯電話機３０１−１および３０１−２を、例えば、W-CDMA（Wideband-Code Division Multiple Access）と呼ばれる符号分割多元接続により無線接続し、移動無線局であるPDA１−１および１−２、並びにカメラ付きデジタル携帯電話機３０１−１および３０１−２と、2GHzの周波数帯域を利用して最大2Mbpsのデータ転送速度で大容量データを高速にデータ通信できる。
【０１９４】
PDA１−１および１−２、並びにカメラ付きデジタル携帯電話機３０１−１および３０１−２は、基地局２０１−１乃至２０１−４とW-CDMA方式により大容量データを高速にデータ通信できるので、音声通話に限らず、電子メールの送受信、簡易ホームページの閲覧、画像の送受信等の多種に及ぶデータ通信を実行し得る。
【０１９５】
また、基地局２０１−１乃至２０１−４は、有線回線を介して、公衆回線網２０２に接続されている。公衆回線網２０２には、インターネット４、図示せぬ加入者有線端末装置、コンピュータネットワーク、および企業内ネットワーク等が接続されている。
【０１９６】
インターネットサービスプロバイダのアクセスサーバ２０３は、公衆回線網２０２に接続されており、更に、インターネットサービスプロバイダが保有するコンテンツサーバ２０４に接続されている。
【０１９７】
コンテンツサーバ２０４は、加入者有線端末装置、PDA１−１若しくは１−２、またはカメラ付きデジタル携帯電話機３０１−１若しくは３０１−２からの要求に対応して、例えば、簡易ホームページ等のコンテンツを、コンパクトHTML（Hypertext Markup Language）方式のファイルとして提供する。
【０１９８】
インターネット４には、多数のWWW（World Wide Web）サーバ２０５−１乃至２０５−Ｎが接続されている。WWWサーバ２０５−１乃至２０５−Ｎは、TCP(Transmission Control Protocol)/IP(Internet Protocol)のプロトコルに従って、加入者有線端末装置、PDA１−１および１−２、並びにカメラ付きデジタル携帯電話機３０１−１および３０１−２からアクセスされる。
【０１９９】
因みに、PDA１−１および１−２、並びにカメラ付きデジタル携帯電話機３０１−１および３０１−２は、基地局２０１−１乃至２０１−４までを2Mbpsの簡易トランスポートプロトコルで通信し、基地局２０１−１乃至２０１−４から、インターネット４、およびWWWサーバ２０５−１乃至２０５−ＮまでをTCP/IPで通信する。
【０２００】
なお、管理制御装置２０６は、公衆回線網２０２を介して、加入者有線端末装置、PDA１−１および１−２、並びにカメラ付きデジタル携帯電話機３０１−１および３０１−２に接続され、加入者有線端末装置、PDA１−１および１−２、並びにカメラ付きデジタル携帯電話機３０１−１および３０１−２に対する認証処理または課金処理などを実行する。
【０２０１】
カメラ付きデジタル携帯電話機３０１−１および３０１−２は、公衆回線網２０２およびインターネット４を介して、上述した、PDA１と同様の処理でメールを送信するか、または受信する。カメラ付きデジタル携帯電話機３０１−１および３０１−２は、受信したメールにスクリプトが含まれているとき、インタプリタ１０６を起動して、スクリプトを実行する。
【０２０２】
以下、カメラ付きデジタル携帯電話機３０１−１および３０１−２を個々に区別する必要がないとき、単に、カメラ付きデジタル携帯電話機３０１と称する。
【０２０３】
次に本発明を適用したカメラ付デジタル携帯電話機３０１の外観構成について説明する。図２７に示すようにカメラ付デジタル携帯電話機３０１は、表示部３０２および本体３０３で構成され、中央のヒンジ部３０４により折り畳み可能に形成されている。
【０２０４】
表示部３０２は、上端左部に引出しまたは収納可能な送受信用のアンテナ３０５を有する。カメラ付デジタル携帯電話機３０１は、アンテナ３０５を介して、固定無線局である基地局２０１−１乃至２０１−４のいずれかとの間で電波を送受信する。
【０２０５】
また、表示部３０２は、上端中央部にほぼ１８０度の角度範囲で回動自在なカメラ部３０６を有する。カメラ付デジタル携帯電話機３０１は、カメラ部３０６のＣＣＤカメラ３０７によって所望の撮像対象を撮像する。
【０２０６】
カメラ部３０６が使用者によってほぼ１８０度回動されて位置決めされた場合、図２８に示すように、表示部３０２は、カメラ部３０６の背面側中央に設けられたスピーカ３０８が正面側に位置する状態となる。これにより、カメラ付デジタル携帯電話機３０１は、通常の音声通話状態に切り換わる。
【０２０７】
さらに、表示部３０２の正面に液晶ディスプレイ３０９が設けられている。液晶ディスプレイ３０９は、電波の受信状態、電池残量、電話帳として登録されている相手先名や電話番号および発信履歴等の他、電子メールの内容、簡易ホームページ、カメラ部３０６のＣＣＤカメラ３０７で撮像した画像などを表示する。
【０２０８】
一方、本体３０３には、その表面に「０」乃至「９」の数字キー、発呼キー、リダイヤルキー、終話及び電源キー、クリアキー及び電子メールキー等の操作キー３１０が設けられている。操作キー３１０の操作に対応した各種指示が、カメラ付デジタル携帯電話機３０１に入力される。
【０２０９】
また、本体３０３の操作キー３１０の下部にメモボタン３１１およびマイクロフォン３１２が設けられている。カメラ付デジタル携帯電話機３０１は、メモボタン３１１が操作されたとき、通話中の相手の音声を録音する。カメラ付デジタル携帯電話機３０１は、マイクロフォン３１２によって通話時の使用者の音声を集音する。
【０２１０】
さらに、本体３０３の操作キー３１０の上部に回動自在なジョグダイヤル３１３が、本体３０３の表面から僅かに突出した状態で設けられている。カメラ付デジタル携帯電話機３０１は、ジョグダイヤル３１３に対する回動操作に応じて、液晶ディスプレイ３０９に表示されている電話帳リスト若しくは電子メールのスクロール動作、簡易ホームページのページ捲り動作、または画像の送り動作等の種々の動作を実行する。
【０２１１】
例えば、本体３０３は、使用者によるジョグダイヤル３１３の回動操作に応じて液晶ディスプレイ３０９に表示された電話帳リストの複数の電話番号の中から所望の電話番号を選択し、ジョグダイヤル３１３が本体３０３の内部方向に押圧されたとき、選択されている電話番号を確定して、確定した電話番号に対して自動的に発呼処理を行う。
【０２１２】
なお、本体３０３は、背面側に図示しないバッテリパックが装着されており、終話／電源キーがオン状態になると、バッテリパックから各回路部に対して電力が供給されて動作可能な状態に起動する。
【０２１３】
ところで、本体３０３の左側面上部に抜差自在なメモリースティック１１を装着するためのメモリースティックスロット３１４が設けられている。カメラ付デジタル携帯電話機３０１は、メモボタン３１１が押下されると、通話中の相手の音声を装着されているメモリースティック１１に記録する。カメラ付デジタル携帯電話機３０１は、使用者の操作に応じて、電子メール、簡易ホームページ、ＣＣＤカメラ３０７で撮像した画像を、装着されているメモリースティック１１に記録する。
【０２１４】
メモリースティック１１は、本願出願人であるソニー株式会社によって開発されたフラッシュメモリカードの一種である。このメモリースティック１１は、縦21.5×横50×厚さ2.8[mm]の小型薄型形状のプラスチックケース内に電気的に書換えや消去が可能な不揮発性メモリであるEEPROM（Electrically Erasable and Programmable Read Only Memory ）の一種であるフラッシュメモリ素子を格納したものであり、１０ピン端子を介して画像や音声、音楽等の各種データの書き込み及び読み出しが可能となっている。
【０２１５】
またメモリースティック１１は、大容量化等による内蔵フラッシュメモリの仕様変更に対しても、使用する機器で互換性を確保することができる独自のシリアルプロトコルを採用し、最大書込速度1.5[MB/S]、最大読出速度2.45[MB/S]の高速性能を実現していると共に、誤消去防止スイッチを設けて高い信頼性を確保している。
【０２１６】
従って、カメラ付デジタル携帯電話機３０１は、このようなメモリースティック１１を装着可能に構成されているために、メモリースティック１１を介して、他の電子機器との間でデータの共有化を図ることができる。
【０２１７】
図２９に示すように、カメラ付デジタル携帯電話機３０１は、表示部３０２および本体３０３の各部を統括的に制御する主制御部３５１に対して、電源回路部３５２、操作入力制御部３５３、画像エンコーダ３５４、カメラインターフェース部３５５、ＬＣＤ（Liquid Crystal Display）制御部３５６、画像デコーダ３５７、多重分離部３５８、記憶再生部３６３、変復調回路部３５９、および音声コーデック３６０がメインバス３６１を介して互いに接続されると共に、画像エンコーダ３５４、画像デコーダ３５７、多重分離部３５８、変復調回路部３５９、および音声コーデック３６０が同期バス３６２を介して互いに接続されて構成されている。
【０２１８】
電源回路部３５２は、使用者の操作により終話／電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することによりカメラ付デジタル携帯電話機３０１を動作可能な状態に起動する。
【０２１９】
カメラ付デジタル携帯電話機３０１は、ＣＰＵ、ＲＯＭおよびＲＡＭ等でなる主制御部３５１の制御に基づいて、音声通話モードにおいて、マイクロフォン３１２で集音した音声信号を音声コーデック３６０によってデジタル音声データに変換する。カメラ付デジタル携帯電話機３０１は、デジタル音声データを変復調回路部３５９でスペクトラム拡散処理し、送受信回路部３６４でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナ３０５を介して送信する。
【０２２０】
また、カメラ付デジタル携帯電話機３０１は、音声通話モードにおいて、アンテナ３０５で受信した受信信号を増幅して周波数変換処理およびアナログデジタル変換処理を施し、変復調回路部３５９でスペクトラム逆拡散処理し、音声コーデック３６０によってアナログ音声信号に変換する。カメラ付デジタル携帯電話機３０１は、アナログ音声信号に対応する音声をスピーカ３０８に出力させる。
【０２２１】
さらに、カメラ付デジタル携帯電話機３０１は、データ通信モードにおいて、電子メールを送信する場合、操作キー３１０およびジョグダイヤル３１３の操作によって入力された電子メールのテキストデータを操作入力制御部３５３を介して主制御部３５１に送出する。
【０２２２】
主制御部３５１は、テキストデータを変復調回路部３５９でスペクトラム拡散処理し、送受信回路部３６４でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナ３０５を介して基地局へ送信する。
【０２２３】
これに対してカメラ付デジタル携帯電話機３０１は、データ通信モードにおいて、電子メールを受信する場合、アンテナ３０５を介して基地局ＣＳ３から受信した受信信号を変復調回路部３５９でスペクトラム逆拡散処理して、元のテキストデータを復元した後、ＬＣＤ制御部３５６を介して液晶ディスプレイ３０９に電子メールとして表示する。
【０２２４】
主制御部３５１は、データ通信モードにおいて、電子メールを送信または受信する場合、メール送受信プログラム１０４およびインタプリタ１０６を実行する。
【０２２５】
ＬＣＤ制御部３５６は、フレキシブルプリント配線板１１と同様に、パネルID設定部を有するフレキシブルプリント配線板を介して、液晶ディスプレイ３０９に接続されている。
【０２２６】
この後、カメラ付デジタル携帯電話機３０１は、使用者の操作に応じて受信した電子メールを記憶再生部３６３を介してメモリースティック１１に記録することも可能である。
【０２２７】
カメラ付デジタル携帯電話機３０１は、データ通信モードにおいて画像データを送信する場合、ＣＣＤカメラ３０７で撮像された画像データをカメラインターフェース部３５５を介して画像エンコーダ３５４に供給する。
【０２２８】
因みにカメラ付デジタル携帯電話機３０１は、画像データを送信しない場合には、ＣＣＤカメラ３０７で撮像した画像データをカメラインターフェース部３５５およびＬＣＤ制御部３５６を介して液晶ディスプレイ３０９に直接表示することも可能である。
【０２２９】
画像エンコーダ３５４は、ＣＣＤカメラ３０７から供給された画像データを、例えば、ＭＰＥＧ（Moving Picture Experts Group ）２またはＭＰＥＧ４等の所定の符号化方式によって圧縮符号化することにより符号化画像データに変換し、これを多重分離部３５８に送出する。
【０２３０】
このとき同時にカメラ付デジタル携帯電話機３０１は、ＣＣＤカメラ３０７で撮像中にマイクロフォン３１２で集音した音声を音声コーデック３６０を介してデジタルの音声データとして多重分離部３５８に送出する。
【０２３１】
多重分離部３５８は、画像エンコーダ３５４から供給された符号化画像データと音声コーデック３６０から供給された音声データとを所定の方式で多重化し、その結果得られる多重化データを変復調回路部３５９でスペクトラム拡散処理し、送受信回路部３６４でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナ３０５を介して送信する。
【０２３２】
これに対してカメラ付デジタル携帯電話機３０１は、データ通信モードにおいて、例えば、簡易ホームページ等にリンクされた動画像ファイルのデータを受信する場合、アンテナ３０５を介して基地局から受信した受信信号を変復調回路部３５９でスペクトラム逆拡散処理し、その結果得られる多重化データを多重分離部３５８に送出する。
【０２３３】
多重分離部３５８は、多重化データを符号化画像データと音声データとに分離し、同期バス３６２を介して、符号化画像データを画像デコーダ３５７に供給すると共に、音声データを音声コーデック３６０に供給する。
【０２３４】
画像デコーダ３５７は、符号化画像データをＭＰＥＧ２またはＭＰＥＧ４等の所定の符号化方式に対応した復号方式でデコードすることにより再生動画像データを生成し、これをＬＣＤ制御部３５６を介して液晶ディスプレイ３０９に供給する。これにより、カメラ付デジタル携帯電話機３０１は、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる動画データを表示する。
【０２３５】
このとき同時に音声コーデック３６０は、音声データをアナログ音声信号に変換した後、これをスピーカ３０８に供給する。これにより、カメラ付デジタル携帯電話機３０１は、例えば、簡易ホームページにリンクされた動画像ファイルに含まる音声データを再生する。
【０２３６】
この場合も電子メールの場合と同様に、カメラ付デジタル携帯電話機３０１は、受信した簡易ホームページ等にリンクされたデータを使用者の操作により記憶再生部３６３を介してメモリースティック１１に記録することが可能である。
【０２３７】
なお、本発明は、PDA１、カメラ付デジタル携帯電話機３０１に限らず、ノート型のパーソナルコンピュータ、ＰＨＳ（Personal Handyphone System）の端末装置、またはカーナビゲーションシステムなどメールを送信し、または受信する装置全般に適用することができる。
【０２３８】
次に、インタプリタ１０６のより詳細な構成について説明する。
【０２３９】
図３０は、インタプリタ１０６のより詳細な構成の一例を示す図である。
【０２４０】
図３０のメール構文解析部５０２、デコーダ５０３、構文解析部５０５、データ構成部５１７、エンコーダ５１８、およびメール生成部５１９は、図１０の構文解析モジュール１２１に対応する。
【０２４１】
図３０のスクリプトインタプリタ５０６、認証暗号化部５０７、リソースアクセスマネージャ５０８、およびストレージモジュール５１１は、図１０の実行モジュール１２２に対応する。
【０２４２】
図３０のＩ／Ｏ（Input/Output）モジュール５１０は、図１０の出力モジュール１２３に対応する。
【０２４３】
メール送受信プログラム１０４は、メール送受信プログラムプラグインインターフェース５０１を介して、開こうとするメール１５１をメール構文解析部５０２に供給するか、またはメール生成部５１９から生成されたメール１５１を取得する。
【０２４４】
メール構文解析部５０２は、メール送受信プログラムプラグインインターフェース５０１を介して、メール送受信プログラム１０４から供給されたメール１５１の構文を解析して、メール１５１からスクリプトおよびデータを抽出する。メール構文解析部５０２は、メール１５１から抽出したスクリプトおよびデータをデコーダ５０３に供給する。
【０２４５】
スクリプトとは、英数字コードなどの文字コードにより、処理手順が記述されている、１連の命令群から成るプログラムの１種である。
【０２４６】
デコーダ５０３は、例えば、Base64などの方式により符号化されているデータを復号する。Base64は、7ビットのデータのみを伝送するネットワークを介して、データまたはプログラムなどを伝送するため、データまたはプログラムなどを６４種類のASCIIコードの列に変換する2進データのエンコード方法である。
【０２４７】
なお、デコーダ５０３は、符号化されているスクリプトを復号するようにしてもよい。
【０２４８】
デコーダ５０３は、インターフェース５０４を介して、スクリプトを構文解析部５０５に供給し、復号されたデータをスクリプトインタプリタ５０６に供給する。
【０２４９】
構文解析部５０５は、スクリプトに含まれる所定の文字列を、スクリプトインタプリタ５０６が処理可能な中間コード(intermediate code)に置換する。ここで、中間コードを大別すると、一般的には、（１）字句解析の結果や生成される字句の列などの字句の列、（２）構文解析の結果として生成される解析木や構文木、ポーランド記法などの木構造、（３）３つ組、４つ組とよばれる仮想機械コードなどの機械語に近い形式に分類されるが、本明細書においては、この中間コードを解析木の意味で使用する。
【０２５０】
なお、Java言語では、上記の（３）を「バイトコード」と呼んでいる。
【０２５１】
中間コードとは、ソフトウェアプログラムにおいて、元のソースコードから最終的な実行形式に変換する過程で、便宜上、一時的に作成される中間形式のコードをいう。このようにソースからターゲットへの変換プロセスを細かく分離することにより、複数のプラットフォーム（ターゲット）に言語処理系を対応させることが容易となる。
【０２５２】
たとえばJavaにおいて、ソースコードは、一旦、バイトコードと呼ばれる中間コードに変換され、変換された中間コードがWWWサーバに保存される。WWWサーバは、クライアント側のWWWブラウザに、このバイトコードを送信し、クライアント側のJava VM（Java Virtual Machine）は、バイトコードを解釈して実行する。この場合、各プラットフォームの違い（CPUやオペレーティングシステムの違い）を、Java VMが吸収するので、バイトコード自身は特定のプラットフォームに依存しない。こうしてJavaにおいて、実行時にかかる負担（バイトコードから実行コードへの変換）を抑えながら、プラットフォームに依存しないプログラム環境が実現される。
【０２５３】
また、その他の高級言語コンパイラにおいても、ソースコードを実行プログラム（通常はCPUが解釈できるバイナリコード）に直接変換するのではなく、実際のマシンよりも抽象度が高い中間的なコードに変換し（実際のマシンアーキテクチャの制限などに煩わされずにすむので、コードの最適化作業などがやりやすくなる）、その後、最終的な実行形式のバイナリコードを生成する方式がとられることも多い。
【０２５４】
構文解析部５０５は、所定の文字列を中間コードに置換したスクリプトをスクリプトインタプリタ５０６に供給する。
【０２５５】
スクリプトインタプリタ５０６は、スクリプトを認証暗号化部５０７に供給し、認証暗号化部５０７に、スクリプトの正当性を判定させる。
【０２５６】
認証暗号化部５０７は、例えば、スクリプトにMD（Message Digest）5などのハッシュ関数を適用して、スクリプトに対応するハッシュ値を算出する。認証暗号化部５０７は、算出されたハッシュ値とスクリプトに含まれている認証用のデータとが同一であるか否かを判定する。
【０２５７】
図３１に、認証用のデータが格納されているスクリプトを含むメール１５１の例を示す。
【０２５８】
図３１に示すメール１５１において、”<SIGNATURE>”および”</SIGNATURE>”の間に配置されている”347a9d8684ab96533fb6b51906fdacf9”などのデータが、認証用のデータである。
【０２５９】
なお、メール１５１に電子署名または証明書を格納して、認証暗号化部５０７に、電子署名または証明書を基に、認証させるようにしてもよい。
【０２６０】
認証暗号化部５０７は、算出されたハッシュ値と認証用のデータとが同一であると判定された場合、スクリプトが改変されていないので、スクリプトが正当であることを示すデータをスクリプトインタプリタ５０６に供給する。
【０２６１】
認証暗号化部５０７は、算出されたハッシュ値と認証用のデータとが同一でないと判定された場合、スクリプトが改変されているので、スクリプトが正当でないことを示すデータをスクリプトインタプリタ５０６に供給する。
【０２６２】
スクリプトインタプリタ５０６は、スクリプトが正当でないことを示すデータが認証暗号化部５０７から供給されたとき、そのスクリプトを実行しない。
【０２６３】
スクリプトインタプリタ５０６は、スクリプトが正当であることを示すデータが認証暗号化部５０７から供給されたとき、デコーダ５０３から供給されたデータを基に、そのスクリプトを実行する。
【０２６４】
このように、スクリプトインタプリタ５０６は、正当なスクリプトのみを実行するので、本発明に係るメール送受信システムにおいては、改変された不正なスクリプトによる攻撃が排除され、スクリプトの実行における安全性が保証される。
【０２６５】
スクリプトインタプリタ５０６は、表示部２１に画像を表示するか、またはタッチパッドから入力されたデータを取得するとき、リソースアクセスマネージャ５０８に画像の表示またはデータの取得の処理を実行させる。
【０２６６】
スクリプトインタプリタ５０６は、Flash ROM３３またはEDO DRAM３４などにデータを記憶させるか、またはFlash ROM３３またはEDO DRAM３４に記憶されているデータを取得するとき、リソースアクセスマネージャ５０８にデータの記憶またはデータの取得の処理を実行させる。
【０２６７】
スクリプトインタプリタ５０６は、スケジュール帳プログラム５１２、アドレス帳プログラム５１３、メモ帳プログラム５１４、ＴＯＤＯ帳プログラム５１５、またはアプリケーションプログラム５１６にアクセスするとき、リソースアクセスマネージャ５０８にスケジュール帳プログラム５１２、アドレス帳プログラム５１３、メモ帳プログラム５１４、ＴＯＤＯ帳プログラム５１５、またはアプリケーションプログラム５１６にアクセスさせる。
【０２６８】
リソースアクセスマネージャ５０８は、スクリプトインタプリタ５０６から、表示部２１への画像の表示が要求されたか、またはタッチパッドから入力されたデータの取得が要求されたとき、プラットフォームリソースアクセスインターフェース５０９を介して、Ｉ／Ｏモジュール５１０に、表示部２１に画像を表示させるか、またはＩ／Ｏモジュール５１０に、タッチパッドから入力されたデータを取得させる。Ｉ／Ｏモジュール５１０が取得した、タッチパッドから入力されたデータは、プラットフォームリソースアクセスインターフェース５０９を介して、リソースアクセスマネージャ５０８に供給される。
【０２６９】
リソースアクセスマネージャ５０８は、Ｉ／Ｏモジュール５１０により取得された、タッチパッドから入力されたデータをスクリプトインタプリタ５０６に供給する。
【０２７０】
リソースアクセスマネージャ５０８は、スクリプトインタプリタ５０６から、Flash ROM３３またはEDO DRAM３４などへのデータの記憶が要求されたか、またはFlash ROM３３またはEDO DRAM３４に記憶されているデータの取得が要求されたとき、プラットフォームリソースアクセスインターフェース５０９を介して、ストレージモジュール５１１に、Flash ROM３３またはEDO DRAM３４などにデータを記憶させるか、またはストレージモジュール５１１に、Flash ROM３３またはEDO DRAM３４に記憶されているデータを取得させる。ストレージモジュール５１１が取得した、Flash ROM３３またはEDO DRAM３４に記憶されているデータは、プラットフォームリソースアクセスインターフェース５０９を介して、リソースアクセスマネージャ５０８に供給される。
【０２７１】
リソースアクセスマネージャ５０８は、ストレージモジュール５１１により取得された、Flash ROM３３またはEDO DRAM３４に記憶されているデータをスクリプトインタプリタ５０６に供給する。
【０２７２】
リソースアクセスマネージャ５０８は、スクリプトインタプリタ５０６から、スケジュール帳プログラム５１２、アドレス帳プログラム５１３、メモ帳プログラム５１４、ＴＯＤＯ帳プログラム５１５、またはアプリケーションプログラム５１６へのアクセスが要求されたとき、プラットフォームリソースアクセスインターフェース５０９を介して、スケジュール帳プログラム５１２、アドレス帳プログラム５１３、メモ帳プログラム５１４、ＴＯＤＯ帳プログラム５１５、またはアプリケーションプログラム５１６にアクセスする。
【０２７３】
スケジュール帳プログラム５１２は、スケジュール帳にスケジュールを記録するか、または、記録されているスケジュールを表示するアプリケーションプログラムである。
【０２７４】
メモ帳プログラム５１４は、メモ帳にメモを記録するか、または、記録されているメモを表示するアプリケーションプログラムである。
【０２７５】
ＴＯＤＯ帳プログラム５１５は、使用者が行うべきことを記録するか、または記録されている使用者が行うべきことを表示するアプリケーションプログラムである。
【０２７６】
アプリケーションプログラム５１６は、所定の処理を実行するアプリケーションプログラムである。
【０２７７】
データ構成部５１７は、所望のデータをメール１５１に添付して送信するとき、スクリプトインタプリタ５０６から供給された、メール１５１に添付するデータを、所定のデータ構造に変換する。
【０２７８】
例えば、スクリプトインタプリタ５０６は、実行しているスクリプトを中断し、スクリプトの実行状態を示すデータをメール１５１に添付して送信するとき、プログラムカウンタの値、またはプッシュダウンスタックに格納されているデータなどの、スクリプトの実行状態を示すデータをデータ構成部５１７に供給する。
【０２７９】
データ構成部５１７は、スクリプトインタプリタ５０６から供給された、スクリプトの実行状態を示すデータを所定のデータ構造に変換する。
【０２８０】
データ構成部５１７は、所定のデータ構造とされたデータを、インターフェース５０４を介して、エンコーダ５１８に供給する。
【０２８１】
スクリプトインタプリタ５０６は、所望のスクリプトをメール１５１に添付して送信するとき、インターフェース５０４を介して、スクリプトをエンコーダ５１８に供給する。
【０２８２】
エンコーダ５１８は、データ構成部５１７から供給された、所定の構造のデータを、例えば、Base64などの方式により符号化する。エンコーダ５１８は、符号化したデータをメール生成部５１９に供給する。エンコーダ５１８は、スクリプトインタプリタ５０６から供給されたスクリプトをそのままメール生成部５０９に供給する。
【０２８３】
なお、エンコーダ５１８は、スクリプトを符号化するようにしてもよい。
【０２８４】
メール生成部５１９は、エンコーダ５１８から供給された符号化されたデータまたはスクリプトを格納したメール１５１を生成する。メール生成部５１９は、メール送受プログラムプラグインインターフェース５０１を介して、生成したメール１５１をメール送受信プログラム１０４に供給する。
【０２８５】
メール送受信プログラム１０４は、メール生成部５１９から供給されたメール１５１を送信する。
【０２８６】
スクリプトランチャ５２０は、表示部２１のタッチパッドからの入力を基に、スクリプトデータベース５２１に記憶されている、例えば、オセロゲームスクリプト５３１、回覧メールスクリプト５３２、自動削除メールスクリプト５３３、アニメーションメールスクリプト５３４、またはアップデートメールスクリプト５３５などのスクリプトのうちの１つのスクリプトを選択して、選択したスクリプトをインターフェース５０４を介して、構文解析部５０５に供給する。
【０２８７】
例えば、図３２に示すように、表示部２１に表示されているアイコンのうち、オセロと名前が付されたアイコンがタップされたとき、スクリプトランチャ５２０は、タップされたアイコンに対応するオセロゲームスクリプト５３１をスクリプトデータベース５２１から読み出して、オセロゲームスクリプト５３１をインターフェース５０４を介して、構文解析部５０５に供給する。
【０２８８】
表示部２１に表示されているアイコンのうち、回覧メールと名前が付されたアイコンがタップされたとき、スクリプトランチャ５２０は、タップされたアイコンに対応する回覧メールスクリプト５３２をスクリプトデータベース５２１から読み出して、回覧メールスクリプト５３２をインターフェース５０４を介して、構文解析部５０５に供給する。
【０２８９】
構文解析部５０５は、スクリプトランチャ５２０から供給された、オセロゲームスクリプト５３１、回覧メールスクリプト５３２、自動削除メールスクリプト５３３、アニメーションメールスクリプト５３４、またはアップデートメールスクリプト５３５などのスクリプトに含まれる所定の文字列を、スクリプトインタプリタ５０６が処理可能な中間コードに置換する。構文解析部５０５は、文字列を中間コードに置換したスクリプトをスクリプトインタプリタ５０６に供給する。
【０２９０】
スクリプトインタプリタ５０６は、構文解析部５０５から供給された、文字列が中間コードに置換された、オセロゲームスクリプト５３１、回覧メールスクリプト５３２、自動削除メールスクリプト５３３、アニメーションメールスクリプト５３４、またはアップデートメールスクリプト５３５などのスクリプトを実行する。
【０２９１】
このように、図３０に構成を示すインタプリタ１０６は、メール１５１が開かれたとき、メール１５１に添付されたスクリプトを実行して、例えば、所定の画像を表示部２１に表示させる、表示部２１のタッチパッドの操作に対応した処理を実行する、所望のデータをFlash ROM３３またはEDO DRAM３４などに記憶させる、またはFlash ROM３３またはEDO DRAM３４に記憶されているデータを取得するなどの処理を実行することができる。
【０２９２】
従って、所定の処理を実行させるスクリプトをメール１５１に添付すれば、メール１５１の送り手は、迅速に、かつ確実に、メール１５１の読み手に、所望するアクションを実行させることができるようになる。
【０２９３】
例えば、メール１５１の受け手が小型の端末装置を使用し、返信の操作に手間が掛かるときであっても、メール１５１の送り手は、迅速に、かつ確実に、メール１５１の読み手に、返信させることができるようになる。
【０２９４】
インタプリタ１０６は、メール送受信プログラム１０４がメール１５１を開こうとするとき、メール１５１に添付されているスクリプトを実行するので、メールの読み手は、メール１５１の受信に先立って、対応するスクリプトを入手しておく必要がない。
【０２９５】
新たに生成されたスクリプトが、メール１５１に添付されて伝送されるので、メール１５１の読み手は、スクリプトを迅速に取得することができ、新たに生成されたスクリプトを迅速に実行することができる。
【０２９６】
また、図３０に構成を示すインタプリタ１０６は、記憶しているスクリプトを実行して、例えば、所定の画像を表示部２１に表示させる、表示部２１のタッチパッドの操作に対応した処理を実行する、所望のデータをFlash ROM３３またはEDO DRAM３４などに記憶させる、またはFlash ROM３３またはEDO DRAM３４に記憶されているデータを取得するなどの処理を実行することができる。
【０２９７】
さらに、図３０に構成を示すインタプリタ１０６は、記憶しているスクリプトを実行して、所望のスクリプトを格納しているメール１５１を生成し、生成したメール１５１をメール送受信プログラム１０４に送信させることができる。
【０２９８】
次に、プラットフォームの変更、およびスクリプトの伝送媒体の変更について説明する。
【０２９９】
図３３は、例えば、OS１０１をWindows CE（米国マイクロソフト社の商標）などの他のオペレーティングシステムに変更するなど、プラットフォームを変更したときの、インタプリタ１０６の構成の変更を説明する図である。
【０３００】
図３３のスクリプト処理部５５１は、プラットフォーム依存部５６１、スクリプト実行部５６２、および電子メール変換部５６３から構成されている。
【０３０１】
プラットフォーム依存部５６１は、Ｉ／Ｏモジュール５１０、ストレージモジュール５１１、およびアプリケーションプログラム５１６などから構成されている。
【０３０２】
スクリプト実行部５６２は、図３０の構文解析部５０５、スクリプトインタプリタ５０６、認証暗号化部５０７、リソースアクセスマネージャ５０８、およびデータ構成部５１７に対応する。
【０３０３】
電子メール変換部５６３は、図３０のメール送受信プログラムプラグインインターフェース５０１、メール構文解析部５０２、デコーダ５０３、インターフェース５０４、エンコーダ５１８、およびメール生成部５１９に対応する。
【０３０４】
通信部５５２は、クレードル２およびインターネット４を介して、メール１５１を受信する、図５のUSBインターフェース３６に対応する。
【０３０５】
例えば、OS１０１などのプラットフォームが変更されたとき、変更されたプラットフォームに対応するスクリプト処理部５７１は、プラットフォーム依存部５６１からプラットフォーム依存部５８１に変更される。スクリプト実行部５６２および電子メール変換部５６３は、変更されない。
【０３０６】
プラットフォーム依存部５８１は、変更されたプラットフォームに対応するＩ／Ｏモジュール５９１、ストレージモジュール５９２、およびアプリケーションプログラム５９３などから構成されている。
【０３０７】
このように、プラットフォームを変更しても、プラットフォームに依存する部分のみを変更すれば、その全てを変更することなく、インタプリタ１０６は、メール１５１に添付されているスクリプトを実行することができる。
【０３０８】
図３４は、例えば、Bluetoothなどの仕様に準拠した通信により、スクリプト自身を伝送するなど、スクリプトの伝送媒体を変更したときの、インタプリタ１０６の構成の変更を説明する図である。
【０３０９】
スクリプトの伝送媒体を変更したときのスクリプト処理部６０１は、プラットフォーム依存部５６１、スクリプト実行部５６２、および変換部６１１から構成されている。
【０３１０】
送受信プログラム６０２は、Bluetoothなどの仕様に準拠した通信を実行する通信部６０３に、スクリプトおよびデータの受信または送信を実行させるプログラムである。送受信プログラム６０２は、通信部６０３に受信させたスクリプトおよびデータを取得し、取得したスクリプトおよびデータをプラットフォーム依存部５６１の変換部６１１に供給する。
【０３１１】
また、送受信プログラム６０２は、通信部６０３に、変換部６１１から供給されたスクリプトおよびデータを送信させる。
【０３１２】
変換部６１１は、送受信プログラム６０２から供給されたスクリプトの所定の文字列を変換して、変換したスクリプトをスクリプト実行部５６２に供給する。また、変換部６１１は、スクリプト実行部５６２から供給されたスクリプトおよびデータを変換して、変換したスクリプトおよびデータを送受信プログラム６０２に供給する。
【０３１３】
スクリプト実行部５６２は、変換部６１１から供給されたスクリプトを実行する。
【０３１４】
このように、スクリプトの伝送媒体を変更しても、伝送媒体に依存する部分のみを変更すれば、全体を変更することなく、インタプリタ１０６は、スクリプトを実行することができる。
【０３１５】
次に、図３５乃至図３７のフローチャートを参照して、図３０に構成を示すインタプリタ１０６による、電子メールに添付されたスクリプトの実行の処理を説明する。
【０３１６】
ステップＳ５０１において、メール送受信プログラム１０４は、スクリプトが添付されているメール１５１を表示しようとしているか否かを判定し、スクリプトが添付されているメール１５１を表示しようとしていないと判定された場合、ステップＳ５０１に戻り、判定の処理を繰り返す。
【０３１７】
ステップＳ５０１において、スクリプトが添付されているメール１５１を表示しようとしていると判定された場合、ステップＳ５０２に進み、メール送受信プログラム１０４は、開こうとしているメール１５１を、メール送受信プログラムプラグインインターフェース５０１を介して、メール構文解析部５０２に供給する。
【０３１８】
ステップＳ５０３において、メール構文解析部５０２は、メール送受信プログラム１０４から取得したメール１５１から、スクリプトおよびスクリプトの実行に必要なデータを抽出する。スクリプトの実行に必要なデータは、例えば、スクリプトが中断されたときのスクリプトの実行状態を示す、プログラムカウンタの値若しくはスタックポインタの値に対応するデータ、オセロゲームのコマの配置を示すデータ、アニメーションを描画するためのデータ、プログラムをアップデートするためのデータ、または電子メールの回覧の状態を示すデータなどである。
【０３１９】
メール構文解析部５０２は、抽出したスクリプトおよびスクリプトの実行に必要なデータをデコーダ５０３に供給する。
【０３２０】
ステップＳ５０４において、デコーダ５０３は、メール構文解析部５０２から供給されたスクリプトの実行に必要なデータを、Base64などの方式により復号する。
【０３２１】
ステップＳ５０５において、デコーダ５０３は、インターフェース５０４を介して、スクリプトを構文解析部５０５に供給する。
【０３２２】
ステップＳ５０６において、デコーダ５０３は、インターフェース５０４を介して、スクリプトの実行に必要なデータをスクリプトインタプリタ５０６に供給する。
【０３２３】
ステップＳ５０７において、構文解析部５０５は、デコーダ５０３から供給されたスクリプトの所定の文字列を、スクリプトインタプリタ５０６が解釈可能な中間コードに置き換える。構文解析部５０５は、所定の文字列を中間コードに置き換えたスクリプトをスクリプトインタプリタ５０６に供給する。
【０３２４】
ステップＳ５０８において、スクリプトインタプリタ５０６は、スクリプトを認証暗号化部５０７に供給し、認証暗号化部５０７に、スクリプトの正当性を確認させる。認証暗号化部５０７は、例えば、スクリプトインタプリタ５０６から供給されたスクリプトに含まれている認証用データを抽出すると共に、スクリプトに、ハッシュ関数を適用して、ハッシュ値を生成する。認証暗号化部５０７は、抽出した認証用データと、生成したハッシュ値とが同一であるか否かを基に、スクリプトの正当性を判定する。
【０３２５】
認証暗号化部５０７は、スクリプトが正当であるか否かを示すデータを、スクリプトインタプリタ５０６に供給する。
【０３２６】
ステップＳ５０９において、スクリプトインタプリタ５０６は、認証暗号化部５０７から供給されたデータを基に、スクリプトが正当であるか否かを判定し、スクリプトが正当でないと判定された場合、スクリプトが改変されているので、スクリプトを実行しないで、処理は終了する。
【０３２７】
ステップＳ５０９において、スクリプトが正当であると判定された場合、ステップＳ５１０に進み、スクリプトインタプリタ５０６は、スクリプトを実行する。
【０３２８】
ステップＳ５１１において、スクリプトインタプリタ５０６は、スクリプトの実行により、入出力、情報の記憶若しくは読み出し、または外部のアプリケーションプログラムのアクセスが要求されたか否かを判定し、スクリプトの実行により、入出力、情報の記憶若しくは読み出し、または外部のアプリケーションプログラムのアクセスが要求されたと判定された場合、ステップＳ５１２に進み、スクリプトインタプリタ５０６は、リソースアクセスマネージャ５０８に、入出力、情報の記憶若しくは読み出し、または外部のアプリケーションプログラムのアクセスを実行させる。
【０３２９】
ステップＳ５１３において、リソースアクセスマネージャ５０８は、入出力が要求されたか否かを判定し、入出力が要求されたと判定された場合、ステップＳ５１４に進み、Ｉ／Ｏモジュール５１０に、入出力を実行させるか否かを使用者に入力させるダイアログボックスを、表示部２１に表示させ、使用者の操作を基に、入出力を実行するか否かを判定する。
【０３３０】
ステップＳ５１４において、入出力を実行すると判定された場合、ステップＳ５１５に進み、リソースアクセスマネージャ５０８は、Ｉ／Ｏモジュール５１０に、画像を表示させるなどの入出力の処理を実行させ、手続きは、ステップＳ５１６に進む。
【０３３１】
ステップＳ５１３において、入出力が要求されていないと判定された場合、入出力の処理は必要ないので、ステップＳ５１４およびステップＳ５１５の処理はスキップされ、手続きは、ステップＳ５１６に進む。
【０３３２】
ステップＳ５１４において、入出力を実行しないと判定された場合、入出力の処理を実行してはならないので、ステップＳ５１５の処理はスキップされ、手続きは、ステップＳ５１６に進む。
【０３３３】
ステップＳ５１６において、リソースアクセスマネージャ５０８は、情報の記憶または読み出しが要求されたか否かを判定し、情報の記憶または読み出しが要求されたと判定された場合、ステップＳ５１７に進み、Ｉ／Ｏモジュール５１０に、情報の記憶または読み出しを実行させるか否かを使用者に入力させるダイアログボックスを、表示部２１に表示させ、使用者の操作を基に、情報の記憶または読み出しを実行するか否かを判定する。
【０３３４】
ステップＳ５１７において、情報の記憶または読み出しを実行すると判定された場合、ステップＳ５１８に進み、リソースアクセスマネージャ５０８は、ストレージモジュール５１１に、Flash ROM３３にデータを記憶させるなどの情報の記憶または読み出しの処理を実行させ、手続きは、ステップＳ５１９に進む。
【０３３５】
ステップＳ５１６において、情報の記憶または読み出しが要求されていないと判定された場合、情報の記憶または読み出しの処理は必要ないので、ステップＳ５１７およびステップＳ５１８の処理はスキップされ、手続きは、ステップＳ５１９に進む。
【０３３６】
ステップＳ５１７において、情報の記憶または読み出しを実行しないと判定された場合、情報の記憶または読み出しの処理を実行してはならないので、ステップＳ５１８の処理はスキップされ、手続きは、ステップＳ５１９に進む。
【０３３７】
ステップＳ５１９において、リソースアクセスマネージャ５０８は、スケジュール帳プログラム５１２、アドレス帳プログラム５１３、メモ帳プログラム５１４、ＴＯＤＯ帳プログラム５１５、またはアプリケーションプログラム５１６などの外部のアプリケーションプログラムへのアクセスが要求されたか否かを判定し、外部のアプリケーションプログラムへのアクセスが要求されたと判定された場合、ステップＳ５２０に進み、Ｉ／Ｏモジュール５１０に、外部のアプリケーションプログラムへのアクセスを実行させるか否かを使用者に入力させるダイアログボックスを表示部２１に表示させ、使用者の操作を基に、外部のアプリケーションプログラムへのアクセスを実行するか否かを判定する。
【０３３８】
ステップＳ５２０において、外部のアプリケーションプログラムへのアクセスを実行すると判定された場合、ステップＳ５２１に進み、リソースアクセスマネージャ５０８は、外部のアプリケーションプログラムにアクセスし、手続きは、ステップＳ５２２に進む。
【０３３９】
ステップＳ５１９において、外部のアプリケーションプログラムへのアクセスが要求されていないと判定された場合、外部のアプリケーションプログラムへのアクセスの処理は必要ないので、ステップＳ５２０およびステップＳ５２１の処理はスキップされ、手続きは、ステップＳ５２２に進む。
【０３４０】
ステップＳ５２０において、外部のアプリケーションプログラムへのアクセスを実行しないと判定された場合、外部のアプリケーションプログラムへのアクセスの処理を実行してはならないので、ステップＳ５２１の処理はスキップされ、手続きは、ステップＳ５２２に進む。
【０３４１】
ステップＳ５２２において、リソースアクセスマネージャ５０８は、スクリプトインタプリタ５０６に、入出力、情報の記憶若しくは読み出し、または外部のアプリケーションプログラムのアクセスの結果を供給する。
【０３４２】
ステップＳ５２３において、スクリプトインタプリタ５０６は、使用者の操作またはスクリプトの記述などを基に、スクリプトの実行結果を電子メールで送信するか否かを判定し、スクリプトの実行結果を電子メールで送信すると判定された場合、ステップＳ５２４に進み、スクリプトインタプリタ５０６は、データ構成部５１７に、電子メールに添付するデータであって、スクリプトの実行状態を示すデータなどの、所定の形式に成形する必要のあるデータを供給する。
【０３４３】
ステップＳ５２５において、データ構成部５１７は、スクリプトインタプリタ５０６から供給されたデータを所定の形式に成形する。データ構成部５１７は、インターフェース５０４を介して、成形したデータをエンコーダ５１８に供給する。
【０３４４】
ステップＳ５２６において、スクリプトインタプリタ５０６は、インターフェース５０４を介して、エンコーダ５１８に、電子メールに添付するスクリプトまたはデータを供給する。スクリプトインタプリタ５０６がエンコーダ５１８に直接供給するデータは、データ構成部５１７において、成形の必要のないデータである。
【０３４５】
ステップＳ５２７において、エンコーダ５１８は、データ構成部５１７から供給されたデータ、またはスクリプトインタプリタ５０６から供給されたデータを、例えば、Base64などの方式により符号化する。エンコーダ５１８は、符号化したデータおよびスクリプトをメール生成部５１９に供給する。
【０３４６】
ステップＳ５２８において、メール生成部５１９は、エンコーダ５１８から供給されたスクリプトまたはデータを基に、スクリプトまたはデータを添付したメール１５１を生成する。メール生成部５１９は、メール送受信プログラムプラグインインターフェース５０１を介して、生成したメール１５１をメール送受信プログラム１０４に供給する。
【０３４７】
ステップＳ５２９において、メール送受信プログラム１０４は、メール生成部５１９から供給されたメール１５１を送信し、処理は終了する。
【０３４８】
ステップＳ５１１において、入出力、情報の記憶若しくは読み出し、または外部のアプリケーションプログラムのアクセスが要求されていないと判定された場合、入出力、情報の記憶若しくは読み出し、または外部のアプリケーションプログラムのアクセスの処理は不要なので、ステップＳ５１２乃至ステップＳ５２２の処理はスキップされ、手続きは、ステップＳ５２３に進み、スクリプトの実行結果を電子メールで送信するか否かの判定を実行する。
【０３４９】
ステップＳ５２３において、スクリプトの実行結果を電子メールで送信しないと判定された場合、電子メールを送信する処理は不要なので、ステップＳ５２４乃至ステップＳ５２９の処理はスキップされ、処理は終了する。
【０３５０】
このように、図３０に構成を示すインタプリタ１０６は、スクリプトが添付されたメール１５１を表示しようとするとき、メール１５１に添付されたスクリプトを抽出して、実行することができる。
【０３５１】
図３０に構成を示すインタプリタ１０６は、メール１５１に添付されたスクリプトの実行により、入出力、情報の記憶若しくは読み出し、または外部のアプリケーションプログラムのアクセスが要求されたとき、要求された、入出力、情報の記憶若しくは読み出し、または外部のアプリケーションプログラムのアクセスを実行することができる。
【０３５２】
また、図３０に構成を示すインタプリタ１０６は、スクリプトの実行結果の電子メールでの送信が要求されたとき、スクリプトの実行結果に対応して、スクリプトまたはデータを添付したメール１５１を送信することができる。
【０３５３】
次に、図３８乃至図４０のフローチャートを参照して、図３０に構成を示すインタプリタ１０６による、スクリプトデータベース５２１に記憶されているスクリプトの実行の処理を説明する。
【０３５４】
ステップＳ６０１において、スクリプトランチャ５２０は、タッチパッドからの入力を基に、スクリプトデータベース５２１に記憶されている、例えば、オセロゲームスクリプト５３１、回覧メールスクリプト５３２、自動削除メールスクリプト５３３、アニメーションメールスクリプト５３４、またはアップデートメールスクリプト５３５などのスクリプトから１つのスクリプトを選択して、選択したスクリプトをインターフェース５０４を介して、構文解析部５０５に供給する。
【０３５５】
ステップＳ６０２乃至ステップＳ６２４の処理のそれぞれは、ステップＳ５０７乃至ステップＳ５２９の処理のそれぞれと同一なので、その説明は省略する。
【０３５６】
このように、図３０に構成を示すインタプリタ１０６は、選択された、記憶されているスクリプトを実行することができる。
【０３５７】
図３０に構成を示すインタプリタ１０６は、選択された、記憶されているスクリプトの実行により、入出力、情報の記憶若しくは読み出し、または外部のアプリケーションプログラムのアクセスが要求されたとき、要求された、入出力、情報の記憶若しくは読み出し、または外部のアプリケーションプログラムのアクセスを実行することができる。
【０３５８】
また、図３０に構成を示すインタプリタ１０６は、選択された、記憶されているスクリプトの実行により、スクリプトまたはデータを添付したメール１５１を送信することができる。
【０３５９】
次に、自動的に削除されるメール１５１の送信の処理、およびメール１５１の自動削除の処理について説明する。
【０３６０】
図３２に例を示す自動削除メールと名前が付されたアイコンがタップされたとき、PDA１のスクリプトランチャ５２０は、スクリプトデータベース５２１から自動削除メールスクリプト５３３を読み出す。PDA１のスクリプトランチャ５２０は、インターフェース５０４を介して、読み出した自動削除メールスクリプト５３３を構文解析部５０５に供給する。
【０３６１】
PDA１の構文解析部５０５は、自動削除メールスクリプト５３３の所定の文字列を中間コードに変換して、所定の文字列が中間コードとされたスクリプトをスクリプトインタプリタ５０６に供給する。
【０３６２】
PDA１のスクリプトインタプリタ５０６は、構文解析部５０５から供給されたスクリプトの実行の処理により、例えば、図４１に示す、PDA１の使用者により入力された電子メールの本文を取得する。スクリプトインタプリタ５０６は、インターフェース５０４およびエンコーダ５１８を介して、取得した本文をメール生成部５１９に供給する。
【０３６３】
PDA１のスクリプトインタプリタ５０６は、他のPDA１にメール１５１を削除させるスクリプトを生成する。
【０３６４】
例えば、スクリプトインタプリタ５０６は、自動削除メールスクリプト５３３と同一のスクリプトを生成する。スクリプトインタプリタ５０６は、自動削除メールスクリプト５３３に含まれる１連の命令群の一部の命令群からなるスクリプトを生成する。
【０３６５】
または、スクリプトインタプリタ５０６は、表示部２１からの入力に基づいて、自動削除メールスクリプト５３３に含まれる命令を変更することによりスクリプトを生成する。
【０３６６】
スクリプトインタプリタ５０６は、このように生成したスクリプトを、インターフェース５０４を介して、エンコーダ５１８に供給する。エンコーダ５１８は、スクリプトをそのままメール生成部５１９に供給する。
【０３６７】
なお、スクリプトインタプリタ５０６は、他のPDA１に送信する電子メールに添付するスクリプトをスクリプトデータベース５２１から取得し、取得したスクリプトをエンコーダ５１８に供給するようにしてもよい。
【０３６８】
また、PDA１のメール生成部５１９は、スクリプトインタプリタ５０６により指定された、他のPDA１に送信する電子メールに添付するスクリプトをスクリプトデータベース５２１から取得し、取得したスクリプトをメール１５１に格納するようにしてもよい。
【０３６９】
PDA１のメール生成部５１９は、エンコーダ５１８から供給されたスクリプトを基に、本文およびスクリプトを格納したメール１５１を生成する。PDA１のメール生成部５１９は、生成したメール１５１をメール送受信プログラム１０４に供給する。
【０３７０】
PDA１のメール送受信プログラム１０４は、インターネット４を介して、スクリプトおよびデータを格納したメール１５１を他のPDA１に送信する。
【０３７１】
次に、メール１５１を受信したPDA１による、メール１５１を自動的に削除する処理を図４１乃至図４３を参照して説明する。
【０３７２】
自動的にメール１５１を削除させるスクリプトを格納したメール１５１を受信したPDA１のメール送受信プログラム１０４は、図４１に示すように、メール１５１を開き、本文を表示部２１に表示する。
【０３７３】
メール１５１が開かれたとき、PDA１のメール送受信プログラム１０４は、メール送受信プログラムプラグインインターフェース５０１を介して、メール１５１をメール構文解析部５０２に供給する。
【０３７４】
PDA１のメール構文解析部５０２は、メール１５１から、スクリプトを抽出し、抽出したスクリプトをデコーダ５０３に供給する。デコーダ５０３は、インターフェース５０４を介して、スクリプトをそのまま構文解析部５０５に供給する。
【０３７５】
PDA１の構文解析部５０５は、デコーダ５０３から供給されたスクリプトの所定の文字列を中間コードに変換して、所定の文字列が中間コードとされたスクリプトをスクリプトインタプリタ５０６に供給する。
【０３７６】
PDA１のスクリプトインタプリタ５０６は、構文解析部５０５から供給されたスクリプトを実行し、リソースアクセスマネージャ５０８にダイアログボックスの表示を要求する。リソースアクセスマネージャ５０８は、スクリプトインタプリタ５０６からの要求に対応して、プラットフォームリソースアクセスインターフェース５０９を介して、Ｉ／Ｏモジュール５１０に、ダイアログボックスの表示を要求する。
【０３７７】
PDA１のＩ／Ｏモジュール５１０は、図４２に示すように、表示部２１に、メール１５１を削除する旨のダイアログボックスを表示させる。削除する旨のダイアログボックスには、”ＯＫ”と名前が付されたボタンのみが設けられている。
【０３７８】
PDA１の表示部２１に、ダイアログボックスが表示されているとき、PDA１の使用者により、表示部２１のタッチパッドがタップされた場合、Ｉ／Ｏモジュール５１０は、表示部２１のタッチパッドからタップされた座標を示すデータを取得する。PDA１のＩ／Ｏモジュール５１０は、タップされた座標を示すデータを、プラットフォームリソースアクセスインターフェース５０９を介して、リソースアクセスマネージャ５０８に供給する。リソースアクセスマネージャ５０８は、Ｉ／Ｏモジュール５１０から供給された、タップされた座標を示すデータを、スクリプトインタプリタ５０６に供給する。
【０３７９】
PDA１のスクリプトインタプリタ５０６は、リソースアクセスマネージャ５０８から、タップされた座標を示すデータが供給されたとき、供給されたデータを基に、ダイアログボックスの”ＯＫ”と名前が付されているボタンがタップされたか否かを判定し、ダイアログボックスの”ＯＫ”と名前が付されているボタンがタップされたと判定された場合、開いているメール１５１を特定するメールIDと共に、メールを削除する旨のコマンドをメール送受信プログラム１０４に供給する。
【０３８０】
ダイアログボックスの”ＯＫ”と名前が付されているボタンがタップされていないと判定された場合、スクリプトインタプリタ５０６は、判定の処理を繰り返す。
【０３８１】
メール送受信プログラム１０４は、スクリプトインタプリタ５０６から供給されたメールIDを基に、開いているメール１５１を削除する。メール送受信プログラム１０４は、メール１５１を削除した旨のデータをスクリプトインタプリタ５０６に供給する。
【０３８２】
メール１５１を削除する旨のダイアログボックスが表示部２１に表示され、ダイアログボックスには”ＯＫ”と名前が付されているボタンのみが設けられているので、メールの送り手の意志が、メールの読み手に確実に伝達されると共に、確実に、メール１５１は削除される。
【０３８３】
スクリプトインタプリタ５０６は、リソースアクセスマネージャ５０８にダイアログボックスの表示を要求する。リソースアクセスマネージャ５０８は、スクリプトインタプリタ５０６からの要求に対応して、プラットフォームリソースアクセスインターフェース５０９を介して、Ｉ／Ｏモジュール５１０に、ダイアログボックスの表示を要求する。
【０３８４】
PDA１のＩ／Ｏモジュール５１０は、図４３に示すように、表示部２１に、メール１５１を削除した旨のダイアログボックスを表示させる。
【０３８５】
PDA１の表示部２１に、ダイアログボックスが表示されているとき、PDA１の使用者により、表示部２１のタッチパッドがタップされた場合、Ｉ／Ｏモジュール５１０は、表示部２１のタッチパッドからタップされた座標を示すデータを取得する。PDA１のＩ／Ｏモジュール５１０は、タップされた座標を示すデータを、プラットフォームリソースアクセスインターフェース５０９を介して、リソースアクセスマネージャ５０８に供給する。リソースアクセスマネージャ５０８は、Ｉ／Ｏモジュール５１０から供給された、タップされた座標を示すデータを、スクリプトインタプリタ５０６に供給する。
【０３８６】
PDA１のスクリプトインタプリタ５０６は、リソースアクセスマネージャ５０８から、タップされた座標を示すデータが供給されたとき、供給されたデータを基に、ダイアログボックスの”ＯＫ”と名前が付されているボタンがタップされたか否かを判定し、ダイアログボックスの”ＯＫ”と名前が付されているボタンがタップされたと判定された場合、リソースアクセスマネージャ５０８にダイアログボックスの消去を要求する。
【０３８７】
このように、メール１５１を削除させるスクリプトを格納したメール１５１を受信したPDA１は、メール１５１を自動的に削除する。
【０３８８】
図４４のフローチャートを参照して、自動削除メールスクリプト５３３を実行するPDA１による、自動的に削除される電子メールの送信の処理を説明する。
【０３８９】
ステップＳ７０１において、スクリプトインタプリタ５０６は、リソースアクセスマネージャ５０８またはＩ／Ｏモジュール５１０を介して、本文を取得する。スクリプトインタプリタ５０６は、例えば、表示部２１のタッチパッドから入力された電子メールの本文を取得するか、またはFlash ROM３３などに予め記憶している本文を取得する。
【０３９０】
ステップＳ７０２において、スクリプトインタプリタ５０６は、メール１５１（スクリプトを格納しているメール１５１自身）を削除するスクリプトを生成する。例えば、スクリプトインタプリタ５０６は、実行している自動削除メールスクリプト５３３と同一のスクリプトを生成する。または、スクリプトインタプリタ５０６は、自動削除メールスクリプト５３３に含まれる１連の命令群の一部の命令群からなるスクリプトを生成する。
【０３９１】
スクリプトインタプリタ５０６は、生成したスクリプトをインターフェース５０４およびエンコーダ５１８を介して、メール生成部５１９に供給する。
【０３９２】
ステップＳ７０３において、メール生成部５１９は、本文と共に、生成されたスクリプトを格納したメール１５１を生成する。メール生成部５１９は、メール送受信プログラムプラグインインタフェース５０１を介して、生成したメール１５１をメール送受信プログラム１０４に供給する。
【０３９３】
ステップＳ７０４において、メール送受信プログラム１０４は、スクリプトが格納されているメール１５１を相手に送信して、処理は終了する。
【０３９４】
次に、図４５のフローチャートを参照して、メール１５１を削除させるスクリプトを格納したメール１５１を受信したPDA１による、メール１５１の削除の処理を説明する。
【０３９５】
ステップＳ７２１において、メール１５１を受信したメール送受信プログラム１０４は、本文を表示部２１に表示する。本文を表示したとき、メール送受信プログラム１０４は、メール送受信プログラムプラグインインタフェース５０１を介して、メール１５１をメール構文解析部５０２に供給する。
【０３９６】
ステップＳ７２２において、メール構文解析部５０２は、メール送受信プログラム１０４から供給されたメール１５１から、スクリプトを抽出する。メール構文解析部５０２は、デコーダ５０３およびインターフェース５０４を介して、抽出したスクリプトを構文解析部５０５に供給する。構文解析部５０５は、スクリプトの所定の文字列を中間コードに変換し、所定の文字列が中間コードとされたスクリプトをスクリプトインタプリタ５０６に供給する。
【０３９７】
ステップＳ７２３において、スクリプトインタプリタ５０６は、所定の文字列が中間コードに変換されたスクリプトを実行する。
【０３９８】
以下のステップＳ７２４およびステップＳ７３０の処理は、スクリプトの実行に基づく処理である。
【０３９９】
ステップＳ７２４において、スクリプトインタプリタ５０６は、メール送受信プログラム１０４が電子メールの本文を表示してから、所定の時間が経過したか否かを判定し、所定の時間が経過していないと判定された場合、ステップＳ７２４に戻り、判定の処理を繰り返す。
【０４００】
ステップＳ７２４において、所定の時間が経過したと判定された場合、ステップＳ７２５に進み、スクリプトインタプリタ５０６は、表示部２１に、電子メールを削除する旨のダイアログボックスを表示させる。
【０４０１】
ステップＳ７２６において、スクリプトインタプリタ５０６は、表示部２１に表示されているダイアログボックスの”ＯＫ”と名前が付されたボタンがタップされたか否かを判定し、ダイアログボックスの”ＯＫ”と名前が付されたボタンがタップされていないと判定された場合、ステップＳ７２６に戻り、判定の処理を繰り返す。
【０４０２】
ステップＳ７２６において、ダイアログボックスの”ＯＫ”と名前が付されたボタンがタップされたと判定された場合、ステップＳ７２７に進み、スクリプトインタプリタ５０６は、メールのIDを指定して、メール送受信プログラム１０４にメール１５１を消去させる。
【０４０３】
ステップＳ７２８において、スクリプトインタプリタ５０６は、表示部２１に、電子メールを削除した旨のダイアログボックスを表示させる。
【０４０４】
ステップＳ７２９において、スクリプトインタプリタ５０６は、表示部２１に表示されているダイアログボックスの”ＯＫ”と名前が付されたボタンがタップされたか否かを判定し、ダイアログボックスの”ＯＫ”と名前が付されたボタンがタップされていないと判定された場合、ステップＳ７２９に戻り、判定の処理を繰り返す。
【０４０５】
ステップＳ７２９において、ダイアログボックスの”ＯＫ”と名前が付されたボタンがタップされたと判定された場合、ステップＳ７３０に進み、スクリプトインタプリタ５０６は、ダイアログボックスを消去させ、処理は終了する。
【０４０６】
このように、メール１５１を削除させるスクリプトを格納したメール１５１を受信したPDA１は、メール１５１を自動的に削除することができる。
【０４０７】
図４６のフローチャートを参照して、メール１５１の削除の他の処理を説明する。
【０４０８】
ステップＳ７４１乃至ステップＳ７４３の処理のそれぞれは、ステップＳ７２１乃至ステップＳ７２３の処理のそれぞれと同様なので、その説明は省略する。
【０４０９】
ステップＳ７４４において、スクリプトインタプリタ５０６は、メール送受信プログラム１０４が電子メールの本文を閉じようとしているか否かを判定し、メール送受信プログラム１０４が電子メールの本文を閉じようとしていないと判定された場合、ステップＳ７４４に戻り、判定の処理を繰り返す。
【０４１０】
ステップＳ７４４において、メール送受信プログラム１０４が電子メールの本文を閉じようとしていると判定された場合、ステップＳ７４５に進み、スクリプトインタプリタ５０６は、表示部２１に、電子メールを削除する旨のダイアログボックスを表示させる。
【０４１１】
ステップＳ７４６乃至ステップＳ７５０の処理のそれぞれは、ステップＳ７２６乃至ステップＳ７３０の処理のそれぞれと同様なので、その説明は省略する。
【０４１２】
このように、図４６のフローチャートに示す処理により、メール１５１を削除させるスクリプトを格納したメール１５１を受信したPDA１は、メール１５１を自動的に削除することができる。
【０４１３】
メール１５１が開かれたとき、削除の処理が実行されるので、受け手のみがメールの内容を知ると共に、誤操作などにより、メールの内容を他の人に知られてしまう可能性を完全に無くすことができる。
【０４１４】
次に、受信側の所定のプログラム（以下、ターゲットプログラムと称する）をアップデートさせるメール１５１の送信の処理、およびメール１５１を受信し、ターゲットプログラムをアップデートする処理について説明する。
【０４１５】
まず、ターゲットプログラムをアップデートさせるメール１５１の送信の処理について説明する。
【０４１６】
図３２に例を示すアップデートメールと名前が付されたアイコンがタップされたとき、PDA１のスクリプトランチャ５２０は、スクリプトデータベース５２１からアップデートメールスクリプト５３５を読み出す。PDA１のスクリプトランチャ５２０は、インターフェース５０４を介して、読み出したアップデートメールスクリプト５３５を構文解析部５０５に供給する。
【０４１７】
PDA１の構文解析部５０５は、アップデートメールスクリプト５３５の所定の文字列を中間コードに変換して、所定の文字列が中間コードとされたスクリプトをスクリプトインタプリタ５０６に供給する。
【０４１８】
PDA１のスクリプトインタプリタ５０６は、構文解析部５０５から供給された、所定の文字列が中間コードとされたスクリプトの実行の処理により、ターゲットプログラムをアップデートさせるためのデータを取得する。アップデートされるターゲットプログラムは、メール１５１の受信側の、例えば、メール送受信プログラム１０４、スクリプトインタプリタ５０６、スケジュール帳プログラム５１２、アドレス帳プログラム５１３、メモ帳プログラム５１４、ＴＯＤＯ帳プログラム５１５、またはアプリケーションプログラム５１６などとすることができる。
【０４１９】
スクリプトインタプリタ５０６は、取得した、ターゲットプログラムをアップデートさせるためのデータを、インターフェース５０４を介して、エンコーダ５１８に供給する。
【０４２０】
エンコーダ５１８は、ターゲットプログラムをアップデートさせるためのデータを、Base64などの方式により符号化し、符号化したデータをメール生成部５１９に供給する。
【０４２１】
PDA１のスクリプトインタプリタ５０６は、他のPDA１にターゲットプログラムをアップデートさせるスクリプトを生成する。
【０４２２】
例えば、スクリプトインタプリタ５０６は、アップデートメールスクリプト５３５と同一のスクリプトを生成する。スクリプトインタプリタ５０６は、アップデートメールスクリプト５３５に含まれる１連の命令群の一部の命令群からなるスクリプトを生成する。
【０４２３】
または、スクリプトインタプリタ５０６は、表示部２１からの入力に基づいて、アップデートメールスクリプト５３５に含まれる命令を変更することによりスクリプトを生成する。
【０４２４】
スクリプトインタプリタ５０６は、このように生成したスクリプトを、インターフェース５０４を介して、エンコーダ５１８に供給する。
【０４２５】
なお、スクリプトインタプリタ５０６は、他のPDA１に送信する電子メールに添付するスクリプトをスクリプトデータベース５２１から取得し、取得したスクリプトをエンコーダ５１８に供給するようにしてもよい。
【０４２６】
また、PDA１のメール生成部５１９は、スクリプトインタプリタ５０６により指定された、他のPDA１に送信する電子メールに添付するスクリプトをスクリプトデータベース５２１から取得し、取得したスクリプトをメール１５１に格納するようにしてもよい。
【０４２７】
エンコーダ５１８は、スクリプトインタプリタ５０６から供給されたスクリプトをそのままメール生成部５１９に供給する。
【０４２８】
PDA１のメール生成部５１９は、エンコーダ５１８から供給されたスクリプトおよびデータを基に、スクリプトおよびデータを格納したメール１５１を生成する。PDA１のメール生成部５１９は、生成したメール１５１をメール送受信プログラム１０４に供給する。
【０４２９】
PDA１のメール送受信プログラム１０４は、インターネット４を介して、スクリプトおよびデータを格納したメール１５１を他のPDA１に送信する。
【０４３０】
次に、メール１５１を受信したPDA１による、ターゲットプログラムをアップデートする処理を図４７乃至図５０を参照して説明する。
【０４３１】
ターゲットプログラムをアップデートさせるスクリプトを格納したメール１５１が受信されたとき、PDA１のメール送受信プログラム１０４は、図４７に例を示すダイアログボックスを表示部２１に表示する。
【０４３２】
ダイアログボックスの”ＹＥＳ”と名前が付されたボタンがタップされたとき、メール送受信プログラム１０４は、メール１５１を開き、例えば、図４８に示す本文を表示部２１に表示させる。
【０４３３】
受信されたメール１５１が開かれたとき、PDA１のメール送受信プログラム１０４は、メール送受信プログラムプラグインインターフェース５０１を介して、メール１５１をメール構文解析部５０２に供給する。
【０４３４】
PDA１のメール構文解析部５０２は、メール１５１から、スクリプトおよびデータを抽出し、抽出したスクリプトおよびデータをデコーダ５０３に供給する。
【０４３５】
デコーダ５０３は、Base64などの方式により符号化されているデータを復号し、復号したデータをスクリプトインタプリタ５０６に供給する。デコーダ５０３は、インターフェース５０４を介して、スクリプトをそのまま構文解析部５０５に供給する。
【０４３６】
PDA１の構文解析部５０５は、デコーダ５０３から供給されたスクリプトの所定の文字列を中間コードに変換して、所定の文字列が中間コードとされたスクリプトをスクリプトインタプリタ５０６に供給する。
【０４３７】
PDA１のスクリプトインタプリタ５０６は、デコーダ５０３から供給された、復号されたデータを基に、構文解析部５０５から供給された、所定の文字列が中間コードとされたスクリプトを実行する。
【０４３８】
スクリプトインタプリタ５０６は、リソースアクセスマネージャ５０８にダイアログボックスの表示を要求する。リソースアクセスマネージャ５０８は、スクリプトインタプリタ５０６からの要求に対応して、プラットフォームリソースアクセスインターフェース５０９を介して、Ｉ／Ｏモジュール５１０に、ダイアログボックスの表示を要求する。
【０４３９】
PDA１のＩ／Ｏモジュール５１０は、図４９に示すように、表示部２１に、ターゲットプログラムをアップデートする旨のダイアログボックスを表示させる。
【０４４０】
PDA１の表示部２１に、ダイアログボックスが表示されているとき、PDA１の使用者により、表示部２１のタッチパッドがタップされた場合、Ｉ／Ｏモジュール５１０は、表示部２１のタッチパッドからタップされた座標を示すデータを取得する。PDA１のＩ／Ｏモジュール５１０は、タップされた座標を示すデータを、プラットフォームリソースアクセスインターフェース５０９を介して、リソースアクセスマネージャ５０８に供給する。リソースアクセスマネージャ５０８は、Ｉ／Ｏモジュール５１０から供給された、タップされた座標を示すデータを、スクリプトインタプリタ５０６に供給する。
【０４４１】
PDA１のスクリプトインタプリタ５０６は、リソースアクセスマネージャ５０８から、タップされた座標を示すデータが供給されたとき、供給されたデータを基に、ダイアログボックスの”ＹＥＳ”と名前が付されているボタンがタップされたか否かを判定し、ダイアログボックスの”ＹＥＳ”と名前が付されているボタンがタップされたと判定された場合、抽出されたデータを基に、ターゲットプログラムをアップデートする。
【０４４２】
例えば、PDA１のスクリプトインタプリタ５０６は、メール１５１から抽出されたデータを基に、メール送受信プログラム１０４をアップデートする。
【０４４３】
ダイアログボックスの”ＮＯ”と名前が付されているボタンがタップされたと判定された場合、スクリプトインタプリタ５０６は、ターゲットプログラムをアップデートしない。
【０４４４】
スクリプトインタプリタ５０６は、ターゲットプログラムのアップデートの処理が終了したとき、リソースアクセスマネージャ５０８にダイアログボックスの表示を要求する。リソースアクセスマネージャ５０８は、スクリプトインタプリタ５０６からの要求に対応して、プラットフォームリソースアクセスインターフェース５０９を介して、Ｉ／Ｏモジュール５１０に、ダイアログボックスの表示を要求する。
【０４４５】
PDA１のＩ／Ｏモジュール５１０は、図５０に示すように、表示部２１に、ターゲットプログラムをアップデートした旨のダイアログボックスを表示させる。
【０４４６】
PDA１の表示部２１に、ダイアログボックスが表示されているとき、PDA１の使用者により、表示部２１のタッチパッドがタップされた場合、Ｉ／Ｏモジュール５１０は、表示部２１のタッチパッドからタップされた座標を示すデータを取得する。PDA１のＩ／Ｏモジュール５１０は、タップされた座標を示すデータを、プラットフォームリソースアクセスインターフェース５０９を介して、リソースアクセスマネージャ５０８に供給する。リソースアクセスマネージャ５０８は、Ｉ／Ｏモジュール５１０から供給された、タップされた座標を示すデータを、スクリプトインタプリタ５０６に供給する。
【０４４７】
PDA１のスクリプトインタプリタ５０６は、リソースアクセスマネージャ５０８から、タップされた座標を示すデータが供給されたとき、供給されたデータを基に、ダイアログボックスの”ＯＫ”と名前が付されているボタンがタップされたか否かを判定し、ダイアログボックスの”ＯＫ”と名前が付されているボタンがタップされたと判定された場合、リソースアクセスマネージャ５０８にダイアログボックスの消去を要求する。
【０４４８】
このように、ターゲットプログラムをアップデートするスクリプトおよびデータを格納したメール１５１を受信したPDA１は、ターゲットプログラムをアップデートすることができる。
【０４４９】
図５１のフローチャートを参照して、アップデートメールスクリプト５３５を実行するPDA１による、ターゲットプログラムをアップデートさせる電子メールの送信の処理を説明する。
【０４５０】
ステップＳ８０１において、スクリプトインタプリタ５０６は、リソースアクセスマネージャ５０８またはＩ／Ｏモジュール５１０を介して、本文を取得する。スクリプトインタプリタ５０６は、例えば、表示部２１のタッチパッドから入力された電子メールの本文を取得するか、またはFlash ROM３３などに予め記憶している本文を取得する。
【０４５１】
ステップＳ８０２において、スクリプトインタプリタ５０６は、ターゲットプログラムのアップデートのためのデータを取得する。スクリプトインタプリタ５０６は、取得したデータを、インターフェース５０４およびエンコーダ５１８を介して、メール生成部５１９に供給する。
【０４５２】
ステップＳ８０３において、スクリプトインタプリタ５０６は、ターゲットプログラムをアップデートするスクリプトを生成する。例えば、スクリプトインタプリタ５０６は、実行しているアップデートメールスクリプト５３５と同一のスクリプトを生成する。スクリプトインタプリタ５０６は、アップデートメールスクリプト５３５に含まれる１連の命令群の一部の命令群からなるスクリプトを生成する。
【０４５３】
スクリプトインタプリタ５０６は、生成したスクリプトをインターフェース５０４およびエンコーダ５１８を介して、メール生成部５１９に供給する。
【０４５４】
ステップＳ８０４において、メール生成部５１９は、取得されたデータ、および生成されたスクリプトを格納したメール１５１を生成する。メール生成部５１９は、メール送受信プログラムプラグインインタフェース５０１を介して、生成したメール１５１をメール送受信プログラム１０４に供給する。
【０４５５】
ステップＳ８０５において、メール送受信プログラム１０４は、スクリプトおよびデータが格納されているメール１５１を相手に送信して、処理は終了する。
【０４５６】
このように、PDA１は、受信した相手にターゲットプログラムをアップデートさせるメール１５１を送信することができる。
【０４５７】
次に、図５２のフローチャートを参照して、メール１５１を受信したPDA１による、ターゲットプログラムのアップデートの処理を説明する。
【０４５８】
ステップＳ８２１において、メール１５１を受信したメール送受信プログラム１０４は、本文を表示部２１に表示する。本文を表示したとき、メール送受信プログラム１０４は、メール送受信プログラムプラグインインタフェース５０１を介して、メール１５１をメール構文解析部５０２に供給する。
【０４５９】
ステップＳ８２２において、メール構文解析部５０２は、メール送受信プログラム１０４から供給されたメール１５１から、データおよびスクリプトを抽出する。
【０４６０】
メール構文解析部５０２は、デコーダ５０３およびインターフェース５０４を介して、抽出したスクリプトを構文解析部５０５に供給する。メール構文解析部５０２は、抽出したデータをデコーダ５０３に供給する。
【０４６１】
デコーダ５０３は、抽出された、Base64などの方式により符号化されているデータを復号し、復号したデータをスクリプトインタプリタ５０６に供給する。
【０４６２】
構文解析部５０５は、スクリプトの所定の文字列を中間コードに変換し、所定の文字列が中間コードとされたスクリプトをスクリプトインタプリタ５０６に供給する。
【０４６３】
ステップＳ８２３において、スクリプトインタプリタ５０６は、デコーダ５０３から供給されたデータを基に、所定の文字列が中間コードに変換されたスクリプトを実行する。
【０４６４】
以下のステップＳ８２５およびステップＳ８２９の処理は、スクリプトの実行に基づく処理である。
【０４６５】
ステップＳ８２４において、スクリプトインタプリタ５０６は、ターゲットプログラムをアップデートする旨のダイアログボックスを表示部２１に表示させる。
【０４６６】
ステップＳ８２５において、スクリプトインタプリタ５０６は、表示部２１に表示されているダイアログボックスの”ＹＥＳ”と名前が付されたボタンがタップされたか否かを判定し、ダイアログボックスの”ＹＥＳ”と名前が付されたボタンがタップされたと判定された場合、ステップＳ８２６に進み、スクリプトインタプリタ５０６は、データを基に、ターゲットプログラムをアップデートする。
【０４６７】
ステップＳ８２７において、スクリプトインタプリタ５０６は、表示部２１に、ターゲットプログラムをアップデートした旨のダイアログボックスを表示させる。
【０４６８】
ステップＳ８２８において、スクリプトインタプリタ５０６は、表示部２１に表示されているダイアログボックスの”ＯＫ”と名前が付されたボタンがタップされたか否かを判定し、ダイアログボックスの”ＯＫ”と名前が付されたボタンがタップされていないと判定された場合、ステップＳ８２８に戻り、判定の処理を繰り返す。
【０４６９】
ステップＳ８２８において、ダイアログボックスの”ＯＫ”と名前が付されたボタンがタップされたと判定された場合、ステップＳ８２９に進み、スクリプトインタプリタ５０６は、ダイアログボックスを消去させ、処理は終了する。
【０４７０】
ステップＳ８２５において、ダイアログボックスの”ＮＯ”と名前が付されたボタンがタップされたと判定された場合、ステップＳ８２９に進み、スクリプトインタプリタ５０６は、ターゲットプログラムをアップデートしないで、ダイアログボックスを消去させ、処理は終了する。
【０４７１】
このように、PDA１は、受信したメール１５１を基に、ターゲットプログラムをアップデートすることができる。
【０４７２】
PDA１の使用者は、ターゲットプログラムをアップデートするファイルをダウンロードするなどの操作を必要とせず、受信したメール１５１を開くだけで、迅速に、ターゲットプログラムをアップデートすることができる。本発明においては、受信したメール１５１を開くだけで、ターゲットプログラムをアップデートすることができるので、誤ったファイルを取得したり、アップデートを忘れたりすることが防止される。
【０４７３】
次に、コンテンツを相手に再生させるメール１５１を送信し、メール１５１を受信して、コンテンツを再生する処理について説明する。メール１５１を受信したPDA１が再生するコンテンツには、音楽を含む音声、静止画像、またはアニメーションを含む動画像などが含まれる。
【０４７４】
以下において、アニメーションの表示および音楽の再生を、コンテンツの再生の一例として説明する。
【０４７５】
まず、アニメーションを表示させるメール１５１の送信の処理について説明する。
【０４７６】
図３２に例を示すアニメーションメールと名前が付されたアイコンがタップされたとき、PDA１のスクリプトランチャ５２０は、スクリプトデータベース５２１からアニメーションメールスクリプト５３４を読み出す。PDA１のスクリプトランチャ５２０は、インターフェース５０４を介して、読み出したアニメーションメールスクリプト５３４を構文解析部５０５に供給する。
【０４７７】
PDA１の構文解析部５０５は、アニメーションメールスクリプト５３４の所定の文字列を中間コードに変換して、所定の文字列が中間コードとされたスクリプトをスクリプトインタプリタ５０６に供給する。
【０４７８】
PDA１のスクリプトインタプリタ５０６は、構文解析部５０５から供給された、所定の文字列が中間コードとされたスクリプトの実行の処理により、本文およびアニメーションを表示させるためのデータを取得する。スクリプトインタプリタ５０６は、取得した、本文およびアニメーションを表示させるためのデータを、インターフェース５０４を介して、エンコーダ５１８に供給する。
【０４７９】
エンコーダ５１８は、アニメーションを表示させるためのデータを、Base64などの方式により符号化し、符号化したデータをメール生成部５１９に供給する。
エンコーダ５１８は、本文をそのままメール生成部５１９に供給する。
【０４８０】
PDA１のスクリプトインタプリタ５０６は、他のPDA１にアニメーションを表示させるスクリプトを生成する。
【０４８１】
例えば、スクリプトインタプリタ５０６は、アニメーションメールスクリプト５３４と同一のスクリプトを生成する。スクリプトインタプリタ５０６は、アニメーションメールスクリプト５３４に含まれる１連の命令群の一部の命令群からなるスクリプトを生成する。
【０４８２】
または、スクリプトインタプリタ５０６は、表示部２１からの入力に基づいて、アニメーションメールスクリプト５３４に含まれる命令を変更することによりスクリプトを生成する。
【０４８３】
スクリプトインタプリタ５０６は、このように生成したスクリプトを、インターフェース５０４を介して、エンコーダ５１８に供給する。
【０４８４】
なお、スクリプトインタプリタ５０６は、他のPDA１に送信する電子メールに添付するスクリプトをスクリプトデータベース５２１から取得し、取得したスクリプトをエンコーダ５１８に供給するようにしてもよい。
【０４８５】
また、PDA１のメール生成部５１９は、スクリプトインタプリタ５０６により指定された、他のPDA１に送信する電子メールに添付するスクリプトをスクリプトデータベース５２１から取得し、取得したスクリプトをメール１５１に格納するようにしてもよい。
【０４８６】
エンコーダ５１８は、スクリプトインタプリタ５０６から供給されたスクリプトをそのままメール生成部５１９に供給する。
【０４８７】
PDA１のメール生成部５１９は、エンコーダ５１８から供給されたスクリプトおよびデータを基に、スクリプトおよびデータを格納したメール１５１を生成する。PDA１のメール生成部５１９は、生成したメール１５１をメール送受信プログラム１０４に供給する。
【０４８８】
PDA１のメール送受信プログラム１０４は、インターネット４を介して、スクリプトおよびデータを格納したメール１５１を他のPDA１に送信する。
【０４８９】
図５３および図５４は、メール１５１を受信したPDA１による、アニメーションを表示する処理を説明する図である。
【０４９０】
アニメーションを表示させるスクリプトを格納したメール１５１が受信されたとき、PDA１のメール送受信プログラム１０４は、図５３に例を示すダイアログボックスを表示部２１に表示する。
【０４９１】
ダイアログボックスの”ＹＥＳ”と名前が付されたボタンがタップされたとき、メール送受信プログラム１０４は、メール１５１を開き、例えば、図５４に示す本文を表示部２１に表示させる。
【０４９２】
受信されたメール１５１が開かれたとき、PDA１のメール送受信プログラム１０４は、メール送受信プログラムプラグインインターフェース５０１を介して、メール１５１をメール構文解析部５０２に供給する。
【０４９３】
PDA１のメール構文解析部５０２は、メール１５１から、スクリプトおよびデータを抽出し、抽出したスクリプトおよびデータをデコーダ５０３に供給する。
【０４９４】
デコーダ５０３は、Base64などの方式により符号化されているデータを復号し、インターフェース５０４を介して、復号されたデータをスクリプトインタプリタ５０６に供給する。
【０４９５】
デコーダ５０３は、インターフェース５０４を介して、スクリプトをそのまま構文解析部５０５に供給する。
【０４９６】
PDA１の構文解析部５０５は、デコーダ５０３から供給されたスクリプトの所定の文字列を中間コードに変換して、所定の文字列が中間コードとされたスクリプトをスクリプトインタプリタ５０６に供給する。
【０４９７】
PDA１のスクリプトインタプリタ５０６は、復号されたデータを基に、構文解析部５０５から供給された、所定の文字列が中間コードとされたスクリプトを実行し、リソースアクセスマネージャ５０８にアニメーションの表示を要求する。リソースアクセスマネージャ５０８は、スクリプトインタプリタ５０６からの要求に対応して、プラットフォームリソースアクセスインターフェース５０９を介して、Ｉ／Ｏモジュール５１０に、アニメーションの表示を要求する。
【０４９８】
PDA１のＩ／Ｏモジュール５１０は、例えば、図５４に示すように、表示部２１に、本文と共に、アニメーションを表示させる。
【０４９９】
このように、PDA１は、受信したメール１５１を基に、アニメーションを表示することができる。
【０５００】
図５５のフローチャートを参照して、アニメーションメールスクリプト５３４を実行するPDA１による、アニメーションを表示させる電子メールの送信の処理を説明する。
【０５０１】
ステップＳ９０１において、スクリプトインタプリタ５０６は、リソースアクセスマネージャ５０８またはＩ／Ｏモジュール５１０を介して、本文を取得する。スクリプトインタプリタ５０６は、例えば、表示部２１のタッチパッドから入力された電子メールの本文を取得するか、またはFlash ROM３３などに予め記憶している本文を取得する。
【０５０２】
ステップＳ９０２において、スクリプトインタプリタ５０６は、アニメーションを表示させるためのデータを取得する。スクリプトインタプリタ５０６は、取得したデータを、インターフェース５０４およびエンコーダ５１８を介して、メール生成部５１９に供給する。
【０５０３】
ステップＳ９０３において、スクリプトインタプリタ５０６は、アニメーションを表示させるスクリプトを生成する。例えば、スクリプトインタプリタ５０６は、実行しているアニメーションメールスクリプト５３４と同一のスクリプトを生成する。または、スクリプトインタプリタ５０６は、アニメーションメールスクリプト５３４に含まれる１連の命令群の一部の命令群からなるスクリプトを生成する。
【０５０４】
スクリプトインタプリタ５０６は、生成したスクリプトをインターフェース５０４およびエンコーダ５１８を介して、メール生成部５１９に供給する。
【０５０５】
ステップＳ９０４において、メール生成部５１９は、取得されたデータ、および生成されたスクリプトを格納したメール１５１を生成する。メール生成部５１９は、メール送受信プログラムプラグインインタフェース５０１を介して、生成したメール１５１をメール送受信プログラム１０４に供給する。
【０５０６】
ステップＳ９０５において、メール送受信プログラム１０４は、スクリプトおよびデータが格納されているメール１５１を相手に送信して、処理は終了する。
【０５０７】
次に、図５６のフローチャートを参照して、メール１５１を受信したPDA１による、アニメーションの表示の処理を説明する。
【０５０８】
ステップＳ９２１において、メール送受信プログラム１０４は、メール１５１を表示しようとしているか否かを判定し、メール１５１を表示しようとしていないと判定された場合、ステップＳ９２１に戻り、判定の処理を繰り返す。
【０５０９】
ステップＳ９２１において、メール１５１を表示しようとしていると判定された場合、ステップＳ９２２に進み、メール構文解析部５０２は、メール送受信プログラム１０４から供給されたメール１５１から、データおよびスクリプトを抽出する。
【０５１０】
メール構文解析部５０２は、抽出したデータをデコーダ５０３に供給する。デコーダ５０３は、抽出された、Base64などの方式により符号化されているデータを復号する。デコーダ５０３は、復号されたデータをスクリプトインタプリタ５０６に供給する。
【０５１１】
メール構文解析部５０２は、デコーダ５０３およびインターフェース５０４を介して、抽出したスクリプトを構文解析部５０５に供給する。構文解析部５０５は、スクリプトの所定の文字列を中間コードに変換し、所定の文字列が中間コードとされたスクリプトをスクリプトインタプリタ５０６に供給する。
【０５１２】
ステップＳ９２３において、スクリプトインタプリタ５０６は、デコーダ５０３から供給されたデータを基に、所定の文字列が中間コードに変換されたスクリプトを実行する。
【０５１３】
ステップＳ９２４において、スクリプトインタプリタ５０６は、アニメーションを表示させるためのデータを基に、表示部２１にアニメーションを表示させ、処理は終了する。
【０５１４】
このように、PDA１は、メール１５１を基に、アニメーションを表示することができる。本発明に係るPDA１は、アニメーションを表示させるためのプログラムを取得したり、またはメールの添付ファイルをいちいち開いたりする必要がなく、受信したメール１５１を開いたとき、アニメーションが表示される。
【０５１５】
次に、音楽を再生させるメール１５１の送信の処理、およびメール１５１に基づく、音楽の再生の処理について説明する。
【０５１６】
図３２に例を示すアニメーションメールと名前が付されたアイコンがタップされたとき、PDA１のスクリプトランチャ５２０は、スクリプトデータベース５２１からアニメーションメールスクリプト５３４を読み出す。PDA１のスクリプトランチャ５２０は、インターフェース５０４を介して、読み出したアニメーションメールスクリプト５３４を構文解析部５０５に供給する。
【０５１７】
PDA１の構文解析部５０５は、アニメーションメールスクリプト５３４の所定の文字列を中間コードに変換して、所定の文字列が中間コードとされたスクリプトをスクリプトインタプリタ５０６に供給する。
【０５１８】
PDA１のスクリプトインタプリタ５０６は、構文解析部５０５から供給された中間コードとされたスクリプトの実行の処理により、本文と共に、音楽を再生させるためのデータを取得する。スクリプトインタプリタ５０６は、取得した、音楽を再生させるためのデータを、インターフェース５０４を介して、エンコーダ５１８に供給する。
【０５１９】
エンコーダ５１８は、音楽を再生させるためのデータを、Base64などの方式により符号化し、符号化したデータをメール生成部５１９に供給する。
【０５２０】
PDA１のスクリプトインタプリタ５０６は、他のPDA１に音楽を再生させるスクリプトを生成する。
【０５２１】
例えば、スクリプトインタプリタ５０６は、アニメーションメールスクリプト５３４と同一のスクリプトを生成する。スクリプトインタプリタ５０６は、アニメーションメールスクリプト５３４に含まれる１連の命令群の一部の命令群からなるスクリプトを生成する。
【０５２２】
または、スクリプトインタプリタ５０６は、表示部２１からの入力に基づいて、アニメーションメールスクリプト５３４に含まれる命令を変更することによりスクリプトを生成する。
【０５２３】
スクリプトインタプリタ５０６は、このように生成したスクリプトを、インターフェース５０４を介して、エンコーダ５１８に供給する。
【０５２４】
なお、スクリプトインタプリタ５０６は、他のPDA１に送信する電子メールに添付するスクリプトをスクリプトデータベース５２１から取得し、取得したスクリプトをエンコーダ５１８に供給するようにしてもよい。
【０５２５】
また、PDA１のメール生成部５１９は、スクリプトインタプリタ５０６により指定された、他のPDA１に送信する電子メールに添付するスクリプトをスクリプトデータベース５２１から取得し、取得したスクリプトをメール１５１に格納するようにしてもよい。
【０５２６】
エンコーダ５１８は、スクリプトインタプリタ５０６から供給されたスクリプトをそのままメール生成部５１９に供給する。
【０５２７】
PDA１のメール生成部５１９は、エンコーダ５１８から供給されたスクリプトおよびデータを基に、スクリプトおよびデータを格納したメール１５１を生成する。PDA１のメール生成部５１９は、生成したメール１５１をメール送受信プログラム１０４に供給する。
【０５２８】
PDA１のメール送受信プログラム１０４は、インターネット４を介して、スクリプトおよびデータを格納したメール１５１を他のPDA１に送信する。
【０５２９】
次に、メール１５１を受信したPDA１による、音楽を再生する処理を図５７を参照して説明する。
【０５３０】
メール送受信プログラム１０４は、メール１５１を開き、例えば、図５７に示すように、本文を表示部２１に表示させる。
【０５３１】
メール１５１が開かれたとき、PDA１のメール送受信プログラム１０４は、メール送受信プログラムプラグインインターフェース５０１を介して、メール１５１をメール構文解析部５０２に供給する。
【０５３２】
PDA１のメール構文解析部５０２は、メール１５１から、スクリプトおよびデータを抽出し、抽出したスクリプトおよびデータをデコーダ５０３に供給する。
【０５３３】
デコーダ５０３は、Base64などの方式により符号化されているデータを復号し、インターフェース５０４を介して、復号したデータをスクリプトインタプリタ５０６に供給する。
【０５３４】
デコーダ５０３は、インターフェース５０４を介して、スクリプトをそのまま構文解析部５０５に供給する。
【０５３５】
PDA１の構文解析部５０５は、デコーダ５０３から供給されたスクリプトの所定の文字列を中間コードに変換して、所定の文字列が中間コードとされたスクリプトをスクリプトインタプリタ５０６に供給する。
【０５３６】
PDA１のスクリプトインタプリタ５０６は、復号されたデータを基に、構文解析部５０５から供給された、所定の文字列が中間コードとされたスクリプトを実行し、リソースアクセスマネージャ５０８に音楽の再生を要求する。リソースアクセスマネージャ５０８は、スクリプトインタプリタ５０６からの要求に対応して、プラットフォームリソースアクセスインターフェース５０９を介して、Ｉ／Ｏモジュール５１０に、音楽の再生を要求する。
【０５３７】
PDA１のＩ／Ｏモジュール５１０は、図５７に示すように、スピーカなどからなる、図示せぬ音声再生部に、音楽を再生させる。
【０５３８】
このように、PDA１は、メール１５１を基に、音声を再生することができる。
【０５３９】
図５８のフローチャートを参照して、アニメーションメールスクリプト５３４を実行するPDA１による、音楽を再生させる電子メールの送信の処理を説明する。
【０５４０】
ステップＳ９４１において、スクリプトインタプリタ５０６は、リソースアクセスマネージャ５０８またはＩ／Ｏモジュール５１０を介して、本文を取得する。スクリプトインタプリタ５０６は、例えば、表示部２１のタッチパッドから入力された電子メールの本文を取得するか、またはFlash ROM３３などに予め記憶している本文を取得する。
【０５４１】
ステップＳ９４２において、スクリプトインタプリタ５０６は、音楽を再生させるためのデータを取得する。スクリプトインタプリタ５０６は、取得したデータを、インターフェース５０４およびエンコーダ５１８を介して、メール生成部５１９に供給する。
【０５４２】
ステップＳ９４３において、スクリプトインタプリタ５０６は、音楽を再生させるスクリプトを生成する。例えば、スクリプトインタプリタ５０６は、実行しているアニメーションメールスクリプト５３４と同一のスクリプトを生成する。スクリプトインタプリタ５０６は、アニメーションメールスクリプト５３４に含まれる１連の命令群の一部の命令群からなるスクリプトを生成する。
【０５４３】
スクリプトインタプリタ５０６は、生成したスクリプトをインターフェース５０４およびエンコーダ５１８を介して、メール生成部５１９に供給する。
【０５４４】
ステップＳ９４４において、メール生成部５１９は、取得されたデータ、および生成されたスクリプトを格納したメール１５１を生成する。メール生成部５１９は、メール送受信プログラムプラグインインタフェース５０１を介して、生成したメール１５１をメール送受信プログラム１０４に供給する。
【０５４５】
ステップＳ９４５において、メール送受信プログラム１０４は、スクリプトおよびデータが格納されているメール１５１を相手に送信して、処理は終了する。
【０５４６】
次に、図５９のフローチャートを参照して、メール１５１を受信したPDA１による、音楽の再生の処理を説明する。
【０５４７】
ステップＳ９６１において、メール送受信プログラム１０４は、メール１５１を表示しようとしているか否かを判定し、メール１５１を表示しようとしていないと判定された場合、ステップＳ９６１に戻り、判定の処理を繰り返す。
【０５４８】
ステップＳ９６１において、メール１５１を表示しようとしていると判定された場合、ステップＳ９６２に進み、メール構文解析部５０２は、メール送受信プログラム１０４から供給されたメール１５１から、データおよびスクリプトを抽出する。
【０５４９】
メール構文解析部５０２は、抽出したデータをデコーダ５０３に供給する。デコーダ５０３は、抽出された、Base64などの方式により符号化されているデータを復号する。デコーダ５０３は、復号されたデータをスクリプトインタプリタ５０６に供給する。
【０５５０】
メール構文解析部５０２は、デコーダ５０３およびインターフェース５０４を介して、抽出したスクリプトを構文解析部５０５に供給する。構文解析部５０５は、スクリプトの所定の文字列を中間コードに変換し、所定の文字列が中間コードに変換されたスクリプトをスクリプトインタプリタ５０６に供給する。
【０５５１】
ステップＳ９６３において、スクリプトインタプリタ５０６は、デコーダ５０３から供給されたデータを基に、所定の文字列が中間コードに変換されたスクリプトを実行する。
【０５５２】
ステップＳ９６４において、スクリプトインタプリタ５０６は、復号された、音楽を再生させるためのデータを基に、音楽を再生させ、処理は終了する。
【０５５３】
このように、PDA１は、メール１５１を開いたとき、音楽を再生することができる。本発明に係るPDA１は、音楽を再生させるためのプログラムを取得したり、またはメールの添付ファイルをいちいち開いたりする必要がなく、受信したメール１５１を開いたとき、音楽が再生される。
【０５５４】
以上のように、PDA１は、アニメーション、または音楽などのコンテンツを相手に再生させるメール１５１を送信し、メール１５１を受信したPDA１は、コンテンツを再生することができる。
【０５５５】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０５５６】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを記録する記録媒体は、図５に示すように、磁気ディスク６１（フロッピディスクを含む）、光ディスク６２（CD-ROM(Compact Disc-Read Only Memory)、ＤＶＤ(Digital Versatile Disc)を含む）、光磁気ディスク６３（ＭＤ(Mini-Disc)を含む）、若しくは半導体メモリ６４などよりなるパッケージメディア、または、プログラムが一時的若しくは永続的に格納されるFlash ROM３３や、ハードディスクなどにより構成される。記録媒体へのプログラムの記録は、必要に応じてルータ、モデムなどのインターフェースを介して、公衆回線網２０２、ローカルエリアネットワーク、インターネット４、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０５５７】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０５５８】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０５５９】
【発明の効果】
本発明によれば、メールを開いたとき、簡単に、コンテンツを再生できるようになる。
【図面の簡単な説明】
【図１】本発明に係るメール送受信システムの一実施の形態を示す図である。
【図２】  PDA１の外観を示す図である。
【図３】クレードル２に装着されているPDA１の外観を示す図である。
【図４】  PDA１の外観を示す図である。
【図５】  PDA１の構成を説明する図である。
【図６】  PDA１が送信したメールがPDA１に受信されるまでの手順を説明する図である。
【図７】メールを送信するPDA１が実行するプログラムを説明する図である。
【図８】メールを送信するか、またはメールを受信するPDA１が実行するプログラムを説明する図である。
【図９】  PDA１の表示の例を示す図である。
【図１０】インタプリタ１０６のより詳細な構造を説明する図である。
【図１１】インタプリタ１０６の動作を説明する図である。
【図１２】メール１５１の構造の例を示す図である。
【図１３】インタプリタ１０６の動作を説明する図である。
【図１４】インタプリタ１０６の動作を説明する図である。
【図１５】メール１５１の例を示す図である。
【図１６】スクリプトの実行を説明する図である。
【図１７】スクリプトの例を示す図である。
【図１８】  PDA１の表示の例を示す図である。
【図１９】  PDA１の表示の例を示す図である。
【図２０】  PDA１の表示の例を示す図である。
【図２１】  PDA１の表示の例を示す図である。
【図２２】メール送信の処理を説明するフローチャートである。
【図２３】メール受信の処理を説明するフローチャートである。
【図２４】スクリプトの処理を説明するフローチャートである。
【図２５】オセロの処理を説明するフローチャートである。
【図２６】本発明に係るメール送受信システムの第２の実施の形態を示す図である。
【図２７】カメラ付デジタル携帯電話機３０１の外観を示す図である。
【図２８】カメラ付デジタル携帯電話機３０１の表示部３０２の外観を示す図である。
【図２９】カメラ付デジタル携帯電話機３０１の構成を示すブロック図である。
【図３０】インタプリタ１０６のより詳細な構成の一例を示す図である。
【図３１】認証用のデータが格納されているスクリプトを含むメール１５１の例を示す図である。
【図３２】表示部２１が表示するアイコンの例を説明する図である。
【図３３】プラットフォームを変更したときの、インタプリタ１０６の構成の変更を説明する図である。
【図３４】スクリプトの伝送媒体を変更したときの、インタプリタ１０６の構成の変更を説明する図である。
【図３５】図３０に構成を示すインタプリタ１０６による、電子メールに添付されたスクリプトの実行の処理を説明するフローチャートである。
【図３６】図３０に構成を示すインタプリタ１０６による、電子メールに添付されたスクリプトの実行の処理を説明するフローチャートである。
【図３７】図３０に構成を示すインタプリタ１０６による、電子メールに添付されたスクリプトの実行の処理を説明するフローチャートである。
【図３８】図３０に構成を示すインタプリタ１０６による、スクリプトデータベース５２１に記憶されているスクリプトの実行の処理を説明するフローチャートである。
【図３９】図３０に構成を示すインタプリタ１０６による、スクリプトデータベース５２１に記憶されているスクリプトの実行の処理を説明するフローチャートである。
【図４０】図３０に構成を示すインタプリタ１０６による、スクリプトデータベース５２１に記憶されているスクリプトの実行の処理を説明するフローチャートである。
【図４１】メール１５１の本文の表示を説明する図である。
【図４２】ダイアログボックスの表示を説明する図である。
【図４３】ダイアログボックスの表示を説明する図である。
【図４４】自動的に削除される電子メールの送信の処理を説明するフローチャートである。
【図４５】電子メールの削除の処理を説明するフローチャートである。
【図４６】電子メールの削除の他の処理を説明するフローチャートである。
【図４７】メール１５１を受信したときの表示を説明する図である。
【図４８】メール１５１の本文の表示を説明する図である。
【図４９】ダイアログボックスの表示を説明する図である。
【図５０】ダイアログボックスの表示を説明する図である。
【図５１】ターゲットプログラムをアップデートさせる電子メールの送信の処理を説明するフローチャートである。
【図５２】ターゲットプログラムのアップデートの処理を説明するフローチャートである。
【図５３】メール１５１を受信したときの表示を説明する図である。
【図５４】アニメーションの表示を説明する図である。
【図５５】アニメーションを表示させる電子メールの送信の処理を説明するフローチャートである。
【図５６】アニメーションの表示の処理を説明するフローチャートである。
【図５７】音楽の再生を説明する図である。
【図５８】音楽を再生させる電子メールの送信の処理を説明するフローチャートである。
【図５９】音楽の再生の処理を説明するフローチャートである。
【符号の説明】
１−１および１−２  PDA，  ２−１および２−２  クレードル，  ３−１および３−２  パーソナルコンピュータ，  ４  インターネット４−１および５−２  メールサーバ，  ６−１および６−２  DNSサーバ，  １１  メモリースティック，  ２１  表示部，  ２２  キー，  ２３  ジョグダイヤル，  ３１  ＣＰＵ，  ３３  Flash ROM，  ３４  EDO DRAM，  ３５  メモリースティックインターフェース，  ３６  USBインターフェース，  ６１  磁気ディスク，  ６２  光ディスク，  ６３  光磁気ディスク，  ６４  半導体メモリ，  １０１  ＯＳ，  １０２−１乃至１０２−４  ドライバ，  １０４  メール送受信プログラム，  １０６  インタプリタ，  １５１  メール，  ２０１−１乃至２０１−４  基地局，  ２０２  公衆回線網，  ２０３  アクセスサーバ，  ２０４  コンテンツサーバ，  ２０５−１乃至２０５−Ｎ  WWWサーバ，  ３０１−１および３０１−２  カメラ付デジタル携帯電話機，  ３０９  液晶ディスプレイ，  ３５１  主制御部，  ３６４  送受信回路部，  ５０１  メール送受信プログラムプラグインインターフェース，  ５０２  メール構文解析部，  ５０３  デコーダ，  ５０４  インターフェース，  ５０５  構文解析部，  ５０６  スクリプトインタプリタ，  ５０７  認証暗号化部，  ５０８  リソースアクセスマネージャ，  ５０９  プラットフォームリソースアクセスインターフェース，  ５１０  Ｉ／Ｏモジュール，  ５１１  ストレージモジュール，  ５１７  データ構成部，  ５１８  エンコーダ，  ５１９  メール生成部，  ５２０  スクリプトランチャ，  ５２１  スクリプトデータベース，  ５３１  オセロゲームスクリプト，  ５３２  回覧メールスクリプト，  ５３３  自動削除メールスクリプト，  ５３４  アニメーションメールスクリプト，  ５３５  アップデートメールスクリプト，  ５７１  スクリプト処理部，  ５８１  プラットフォーム依存部，  ５９１  Ｉ／Ｏモジュール，  ５９２  ストレージモジュール，  ５９３アプリケーションプログラム，  ６０１  スクリプト処理部，  ６０２  送受信プログラム，  ６０３  通信部，  ６１１  変換部
【図１】
0004656359.tif 000002
【図２】
0004656359.tif 000003
【図３】
0004656359.tif 000004
【図４】
0004656359.tif 000005
【図５】
0004656359.tif 000006
【図６】
0004656359.tif 000007
【図７】
0004656359.tif 000008
【図８】
0004656359.tif 000009
【図９】
0004656359.tif 000010
【図１０】
0004656359.tif 000011
【図１１】
0004656359.tif 000012
【図１２】
0004656359.tif 000013
【図１３】
0004656359.tif 000014
【図１４】
0004656359.tif 000015
【図１５】
0004656359.tif 000016
【図１６】
0004656359.tif 000017
【図１７】
0004656359.tif 000018
【図１８】
0004656359.tif 000019
【図１９】
0004656359.tif 000020
【図２０】
0004656359.tif 000021
【図２１】
0004656359.tif 000022
【図２２】
0004656359.tif 000023
【図２３】
0004656359.tif 000024
【図２４】
0004656359.tif 000025
【図２５】
0004656359.tif 000026
【図２６】
0004656359.tif 000027
【図２７】
0004656359.tif 000028
【図２８】
0004656359.tif 000029
【図２９】
0004656359.tif 000030
【図３０】
0004656359.tif 000031
【図３１】
0004656359.tif 000032
【図３２】
0004656359.tif 000033
【図３３】
0004656359.tif 000034
【図３４】
0004656359.tif 000035
【図３５】
0004656359.tif 000036
【図３６】
0004656359.tif 000037
【図３７】
0004656359.tif 000038
【図３８】
0004656359.tif 000039
【図３９】
0004656359.tif 000040
【図４０】
0004656359.tif 000041
【図４１】
0004656359.tif 000042
【図４２】
0004656359.tif 000043
【図４３】
0004656359.tif 000044
【図４４】
0004656359.tif 000045
【図４５】
0004656359.tif 000046
【図４６】
0004656359.tif 000047
【図４７】
0004656359.tif 000048
【図４８】
0004656359.tif 000049
【図４９】
0004656359.tif 000050
【図５０】
0004656359.tif 000051
【図５１】
0004656359.tif 000052
【図５２】
0004656359.tif 000053
【図５３】
0004656359.tif 000054
【図５４】
0004656359.tif 000055
【図５５】
0004656359.tif 000056
【図５６】
0004656359.tif 000057
【図５７】
0004656359.tif 000058
【図５８】
0004656359.tif 000059
【図５９】
0004656359.tif 000060