com.kddi.io
インタフェース IMAP4MailConnection <Phase2>

すべてのスーパーインタフェース:
javax.microedition.io.Connection

public interface IMAP4MailConnection
extends javax.microedition.io.Connection

Javaアプリケーションからメールを送信するメーラー制御(Mailto)機能を実現するための Connection インタフェースです。

以下にメーラー制御(Mailto)機能について説明します。


1. メーラー制御(Mailto)機能概要

Javaアプリケーションからメールを送信する機能を実現します。

メール送信先、件名、本文などJavaアプリケーションで設定した項目をメーラーに渡し、メールの送信許諾を求める画面を表示します。ユーザーからメール送信を許諾されるとメーラーを起動し、メールを送信します。

メール送信メソッドが呼び出されてからはJava VMはブロックされます。ユーザーがメール送信を許諾しメールが送信され、メーラーが終了した後はJavaアプリケーションに戻ります。

メール送信先、件名、本文をメーラーに渡す際にはIMAP4MailConnectionインタフェースを実装したオブジェクトを用います。MIDPのスタティックメソッドConnector.open()に、"mailto: "スキームの電子メールアドレスを指定して、IMAP4MailConnectionオブジェクトを取得します。

2. IMAP4MailConnectionインタフェース

2.1 機能一覧

IMAP4MailConnectionオブジェクトに項目を渡す際に使用するメソッドとメール送信の際に使用するメソッドを下記に示します。これらのメソッドを使用することで、メール送信先、件名、メール本文をメーラーに渡し、メールを送信することができます。また、本文の長さ、メール送信先/件名/メール本文に設定した内容を取得できるメソッドもあります。

表1. 送信先の設定
機能 メソッド
メール送信先(To)を設定する
複数設定が可能
addTo(java.lang.String address)
個人情報の中から電子メールアドレスのみ取得し、メール送信先(To)に設定する複数設定が可能 addTo(PersonalInfo person)
カーボンコピー(CC)送信先を設定する複数設定が可能 addCc(java.lang.String address)
個人情報の中から電子メールアドレスのみ取得し、カーボンコピー(CC)送信先に設定する複数設定が可能 addCc(PersonalInfo person)
ブラインドカーボンコピー(BCC)送信先を設定する複数設定が可能 addBcc(java.lang.String address)
個人情報の中から電子メールアドレスのみ取得し、BCCに設定する
複数設定が可能
addBcc(PersonalInfo person)

表2. 件名・本文の設定
機能 メソッド
件名を設定する setSubject()
本文を設定する setContent()

表3. 本文の長さ
機能 メソッド
本文の長さ(バイト数)を取得する getLength()

表4. To/CC/BCC/件名/メール本文に設定した内容の取得
機能 メソッド
メール送信先(To)リストを取得する getTo()
カーボンコピー(CC)送信先リストを取得する getCc()
ブラインドカーボンコピー(BCC)送信先リストを取得する getBcc()
件名を取得する getSubject()
メール本文を取得する getContent()

表5. メール送信
機能 メソッド
メールを送信する send()

2.2 通信項目の最大長

メーラー制御(Mailto)機能で扱う項目の最大長について下記に示します。

表6. 通信項目の最大長
項目 最大長(バイト)
メール送信先(To)/カーボンコピー(CC)送信先/ブラインドカーボンコピー(BCC)送信先 64
件名(subject) 100
本文 10000

To、CC、BCCに設定した電子メールアドレスは、メーラーに次のような形で渡されます。

 To:anyone@example.com,someone@example.com
 Cc:myself@example.com
 Bcc:anyone@somewhere.com,someone@somewhere.com,nobody@somewhere.com

メールアドレスの文字列総和は、To、CC、BCCに設定したメールアドレスの文字列すべてと、「To:」「Cc:」「Bcc:」「,(カンマ)」を含めて640バイト以内にする必要があります。640バイトを超えるとIllegalArgumentException例外がスローされます。

3. メーラー制御(Mailto)処理

これまで紹介したメソッドを使用して、Javaアプリケーションからメールを送信する流れは次のようになります。

まず"mailto: "スキームのメールアドレスに送信先のメールアドレスを加えて、Connector.open()スタティックメソッドに指定し、IMAP4MailConnectionインタフェースを実装したオブジェクトを取得します。

  // Connection を開く。
  IMAP4MailConnection conn = ( IMAP4MailConnection ) 
                             Connector.open( "mailto://someone@somewhere.example.com" );
                                             // "//" は省略できます。

次にIMAP4MailConnectionオブジェクトに、メール送信先のメールアドレスや件名、本文を設定します。

addTo()、addCc()、addBcc()は、以下のように複数回呼び出すことで、複数のメールアドレスを設定することが可能です。

  // 送信先を追加。
  conn.addTo( "anyone@example.com" ); 
  conn.addTo( "someone@example.com" );
  // カーボンコピー送信先を追加。
  conn.addCc( "myself@example.com" );
  // 件名を設定。
  conn.setSubject( "Hello" );
  // 本文を設定。
  conn.setContent( "Hello, everybody!" );

各項目設定後にsend()メソッドで送信します。send()が呼び出されるとJava VMはブロックされます。

次にsend()は、ユーザーにメール送信の許可を求めます。ユーザーからメール送信が許可されるとメールを送信します。メール送信が完了し、メーラーが終了すると、元のJavaアプリケーションに戻ります。

IMAP4MailConnectionオブジェクトは使い終わったらclose()メソッドで閉じます。

  // 送信。
  conn.send();
  //ここでJava VMがブロックされる。
  // メールクライアント動作中は send() から戻らない。
  conn.close();
  // Connection を閉じる。

send()メソッドが呼び出されメーラーが終了するまでの間、Java VMはブロックされます。send()を呼び出すときは、タイマや別スレッドは使わないようにするなど使用法に注意してください。

send()では次のような場合にIOException例外がスローされます。

送信先メールサーバのトラブルなどの理由でメールが配信されなかった場合、send()の時点ではエラーになりません。


メソッドの概要
 void addBcc(PersonalInfo person)
          Bcc: を追加します。
 void addBcc(java.lang.String address)
          Bcc: を追加します。
 void addCc(PersonalInfo person)
          Cc: を追加します。
 void addCc(java.lang.String address)
          Cc: を追加します。
 void addTo(PersonalInfo person)
          To: を追加します。
 void addTo(java.lang.String address)
          To: を追加します。
 java.lang.String[] getBcc()
          ブラインドカーボンコピー送信先リストを返します。
 java.lang.String[] getCc()
          カーボンコピー送信先リストを返します。
 java.lang.String getContent()
          本文を返します。
 long getLength()
          本文の長さを返します。
 java.lang.String getSubject()
          件名を返します。
 java.lang.String[] getTo()
          送信先リストを返します。
 void send()
          メールを送信します。
 void setContent(java.lang.String content)
          本文を設定します。
 void setSubject(java.lang.String subject)
          件名を設定します。
 
インタフェース javax.microedition.io.Connection から継承したメソッド
close
 

メソッドの詳細

addTo

public void addTo(java.lang.String address)
           throws java.io.IOException,
                  java.lang.IllegalArgumentException
To: を追加します。

追加できるアドレスの長さは 64 バイト以内です。

パラメータ:
address - 送信先
例外:
java.io.IOException - I/O エラーのときに発生する
java.lang.IllegalArgumentException - 不正な address が指定されたときに発生する

addTo

public void addTo(PersonalInfo person)
           throws java.io.IOException,
                  java.lang.IllegalArgumentException
To: を追加します。
パラメータ:
person - 送信先
例外:
java.io.IOException - I/O エラーのときに発生する
java.lang.IllegalArgumentException - 不正な address が指定されたときに発生する

getTo

public java.lang.String[] getTo()
                         throws java.io.IOException
送信先リストを返します。
戻り値:
To: フィールドに含まれているアドレスの配列
例外:
java.io.IOException - I/O エラーのときに発生する

addCc

public void addCc(java.lang.String address)
           throws java.io.IOException,
                  java.lang.IllegalArgumentException
Cc: を追加します。

追加できるアドレスの長さは 64 バイト以内です。

パラメータ:
address - カーボンコピーの送信先
例外:
java.io.IOException - I/O エラーのときに発生する
java.lang.IllegalArgumentException - 不正な address が指定されたときに発生する

addCc

public void addCc(PersonalInfo person)
           throws java.io.IOException,
                  java.lang.IllegalArgumentException
Cc: を追加します。
パラメータ:
person - カーボンコピーの送信先
例外:
java.io.IOException - I/O エラーのときに発生する
java.lang.IllegalArgumentException - 不正な address が指定されたときに発生する

getCc

public java.lang.String[] getCc()
                         throws java.io.IOException
カーボンコピー送信先リストを返します。
戻り値:
Cc: フィールドに含まれているアドレスの配列
例外:
java.io.IOException - I/O エラーのときに発生する

addBcc

public void addBcc(java.lang.String address)
            throws java.io.IOException,
                   java.lang.IllegalArgumentException
Bcc: を追加します。

追加できるアドレスの長さは 64 バイト以内です。

パラメータ:
address - ブラインドカーボンコピーの送信先
例外:
java.io.IOException - I/O エラーのときに発生する
java.lang.IllegalArgumentException - 不正な address が指定されたときに発生する

addBcc

public void addBcc(PersonalInfo person)
            throws java.io.IOException,
                   java.lang.IllegalArgumentException
Bcc: を追加します。
パラメータ:
person - ブラインドカーボンコピーの送信先
例外:
java.io.IOException - I/O エラーのときに発生する
java.lang.IllegalArgumentException - 不正な address が指定されたときに発生する

getBcc

public java.lang.String[] getBcc()
                          throws java.io.IOException
ブラインドカーボンコピー送信先リストを返します。
戻り値:
Bcc: フィールドに含まれているアドレスの配列
例外:
java.io.IOException - I/O エラーのときに発生する

setContent

public void setContent(java.lang.String content)
                throws java.io.IOException,
                       java.lang.IllegalArgumentException
本文を設定します。

設定できる本文の長さは 10000 バイト以内です。

パラメータ:
content - 本文
例外:
java.io.IOException - I/O エラーのときに発生する
java.lang.IllegalArgumentException - 不正な content が指定されたときに発生する

getContent

public java.lang.String getContent()
                            throws java.io.IOException
本文を返します。
戻り値:
本文
例外:
java.io.IOException - I/O エラーのときに発生する

setSubject

public void setSubject(java.lang.String subject)
                throws java.io.IOException,
                       java.lang.IllegalArgumentException
件名を設定します。

設定できる件名の長さは 100 バイト以内です。

パラメータ:
subject - 件名
例外:
java.io.IOException - I/O エラーのときに発生する
java.lang.IllegalArgumentException - 不正な subject が指定されたときに発生する

getSubject

public java.lang.String getSubject()
                            throws java.io.IOException
件名を返します。
戻り値:
件名
例外:
java.io.IOException - I/O エラーのときに発生する

send

public void send()
          throws java.io.IOException
メールを送信します。
例外:
java.io.IOException - I/O エラーのときに発生する

getLength

public long getLength()
               throws java.io.IOException
本文の長さを返します。
戻り値:
本文の長さ(バイト数)
例外:
java.io.IOException - I/O エラーのときに発生する


Copyright 2003 Aplix Corporation. All rights reserved. Aplix Confidential and Restricted.