Mailパッケージ

 

SMTPおよびPOP3プロトコルによるインターネットメールを処理するクライアント機能のクラスを集めたパッケージです。

 

クラス

 

名前

説明

Version

PC

Mobile

AI

MailHeader

メールのヘッダ部を保持します

4.1.0

-

-

MailMessage

メールメッセージを保持します

4.1.0

-

-

MultiPartMessage

マルチパートを管理します

4.1.0

-

-

MultiPartMessagePart

マルチパートの各パートを保持します

4.1.0

-

-

Pop3

POP3を使って通信を行います

4.1.0

-

-

Smtp

SMTPを使って通信を行います

4.1.0

-

-

 

 

Mailパッケージは、一般に利用されているメーラーソフトとは異なり、メールの送受信に必要なプロトコルやフォーマット変換を実行するクラス群です。従って、メールの読み書きに使うユーザインタフェース、ユーザアカウントの登録、アドレス帳、メールボックスなどメーラとしての機能は用意されていません。これらの機能が必要な場合には、他のクラスを利用してCRSにより記述する必要があります。例えば、受信メール一覧を表示するためにはFlexViewクラスを使い、本文の表示にはEditBoxクラスを使うことができます。

 

メールは、SMTPプロトコルによりMailサーバに送り、POP3プロトコルにより受信しますが、それぞれSmtpクラスとPop3クラスにより実装されます。送受信するメッセージは、直接SMTPクラスとPOP3クラスのメソッドを呼び出して処理することも可能ですが、MailMessageクラスを利用すると文字コードの変換やヘッダの作成などが容易になります。

 

MailMessageクラスは、メールのメッセージを処理するクラスですが、さらにヘッダ部分を専門に扱うMailHeaderクラス、添付ファイルなどを持つマルチパートメッセージを扱うMultiPartMessageクラスとその要素を扱うMultiPartMessagePartクラスを補助的に利用することができます。

 

また、日本語をメールで送受信する場合、一般的にはJISコード(ISO-2022-JP)が使われますが、Biz/Browserが対応するShift-JISからJISコードへの変換はTextConverterクラスを利用することができます。他にも、マルチパートメッセージでよく使われているBase64形式のメッセージを処理するためにはBase64Encoder,Base64Decoderクラスを利用することができます。

 

典型的なMailパッケージの用途として、次のような使い方があります。

 

 

Biz/Browser間の連携

 

複数のクライアントコンピュータで利用されるCRSアプリケーションで、クライアント間で情報の伝達が必要な場合、Mailパッケージを利用すると特定のクライアント(つまりメールアドレス)を指定してして、メールとして情報を送信することができます。この場合、Webサーバを経由する場合と異なり、Webサーバ側には特別なプログラムを用意する必要はなく、受信側の用意が整ったときに受信できる特徴があります。また、メール本文には、XMLなどでアプリケーションで伝達したい情報を自由に記述することができます。

 

 

サーバ主導の情報伝達

 

サーバ側から、ある条件に従ってBiz/Browserの動作を実行したい場合、Mailパッケージを利用することができます。次の例の場合サーバから見出しに"message"と書かれたメールが届くと、本文をメッセージボックスで表示します。

 

// {
    POP3 pop3obj {
        Function OnRecive(e) {
            Connect("server");
            User("user");
            Pass("pass");
            var rc = List();
            for (var m in rc.info) {
                var msg = new MailMessage;
                msg.Parse(Retr(rc.info[m].msg).result);
                var sbj = msg.header.GetField("Subject");
                if (sbj == "message") {
                    MessageBox(msg.Read());
                    Dele(rc.info[m].msg);
                }
            }
            Quit();
        }
        Polling("server", "user", "pass", 30);
    }
}

 

この例では、本文の文字コード変換を行っていませんが、実際には必要になる事が多いでしょう。また、確実に想定した相手から届いたことを確認するためには、Securityパッケージの各機能と組み合わせて本文を暗号化するなどの対策が必要となる場合もあります。

 

データ加工ツールとしての利用

 

MailMessageクラスとMultiPatMessageクラスを利用すると、アプリケーションで利用するさまざまな形式のデータを1個のファイルとして扱うことができるようになります。例えば、伝票のようなヘッダ部と明細部を持つようなデータの場合、ヘッダ部はXMLで記述し、明細部はCSVで記述してマルチパートメッセージの添付ファイルとしてまとめてファイルに保存したり、あるいは、サーバからのHTTPResponseで受け取ることも考えられます。

 

var session = getHttpSession();
var req = session.CreateRequest("/app");
req.AddParam("code", "1324");
var res = session.Post(req);
var msg = new MailMessage;
msg.Load(res);
var mm = new MultiPartMessage;
mm.Load(msg);
var impl = new XmlDOMImplementation;
var xdoc = impl.Load(mm.GetPart(0));
var cdoc = new CSVDocument;
cdoc.Load(mm.GetPart(1));

 

この例では、WEBサーバから受け取ったレスポンスをマルチパートメッセージとしてデコードし、1個目のパートをXMLとしてxdoc変数に取得、2個目のパートをCSVとしてcdox変数に取得しています。

 



「オンラインマニュアル」一覧へ戻る
「Bizの宝箱」TOPへ戻る