| 
 | ||||||||
| フレームあり フレームなし | ||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||
Javaアプリケーションからメールを送信するメーラー制御(Mailto)機能を実現するための Connection インタフェースです。
以下にメーラー制御(Mailto)機能について説明します。
Javaアプリケーションからメールを送信する機能を実現します。
メール送信先、件名、本文などJavaアプリケーションで設定した項目をメーラーに渡し、メールの送信許諾を求める画面を表示します。ユーザーからメール送信を許諾されるとメーラーを起動し、メールを送信します。
メール送信メソッドが呼び出されてからはJava VMはブロックされます。ユーザーがメール送信を許諾しメールが送信され、メーラーが終了した後はJavaアプリケーションに戻ります。
メール送信先、件名、本文をメーラーに渡す際にはIMAP4MailConnectionインタフェースを実装したオブジェクトを用います。MIDPのスタティックメソッドConnector.open()に、"mailto: "スキームの電子メールアドレスを指定して、IMAP4MailConnectionオブジェクトを取得します。
IMAP4MailConnectionオブジェクトに項目を渡す際に使用するメソッドとメール送信の際に使用するメソッドを下記に示します。これらのメソッドを使用することで、メール送信先、件名、メール本文をメーラーに渡し、メールを送信することができます。また、本文の長さ、メール送信先/件名/メール本文に設定した内容を取得できるメソッドもあります。
| 機能 | メソッド | 
|---|---|
| メール送信先(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) | 
| 機能 | メソッド | 
|---|---|
| 件名を設定する | setSubject() | 
| 本文を設定する | setContent() | 
| 機能 | メソッド | 
|---|---|
| 本文の長さ(バイト数)を取得する | getLength() | 
| 機能 | メソッド | 
|---|---|
| メール送信先(To)リストを取得する | getTo() | 
| カーボンコピー(CC)送信先リストを取得する | getCc() | 
| ブラインドカーボンコピー(BCC)送信先リストを取得する | getBcc() | 
| 件名を取得する | getSubject() | 
| メール本文を取得する | getContent() | 
| 機能 | メソッド | 
|---|---|
| メールを送信する | send() | 
メーラー制御(Mailto)機能で扱う項目の最大長について下記に示します。
| 項目 | 最大長(バイト) | 
|---|---|
| メール送信先(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例外がスローされます。
これまで紹介したメソッドを使用して、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 | 
| メソッドの詳細 | 
public void addTo(java.lang.String address)
           throws java.io.IOException,
                  java.lang.IllegalArgumentException
追加できるアドレスの長さは 64 バイト以内です。
address - 送信先java.io.IOException - I/O エラーのときに発生するjava.lang.IllegalArgumentException - 不正な address が指定されたときに発生する
public void addTo(PersonalInfo person)
           throws java.io.IOException,
                  java.lang.IllegalArgumentException
person - 送信先java.io.IOException - I/O エラーのときに発生するjava.lang.IllegalArgumentException - 不正な address が指定されたときに発生する
public java.lang.String[] getTo()
                         throws java.io.IOException
java.io.IOException - I/O エラーのときに発生する
public void addCc(java.lang.String address)
           throws java.io.IOException,
                  java.lang.IllegalArgumentException
追加できるアドレスの長さは 64 バイト以内です。
address - カーボンコピーの送信先java.io.IOException - I/O エラーのときに発生するjava.lang.IllegalArgumentException - 不正な address が指定されたときに発生する
public void addCc(PersonalInfo person)
           throws java.io.IOException,
                  java.lang.IllegalArgumentException
person - カーボンコピーの送信先java.io.IOException - I/O エラーのときに発生するjava.lang.IllegalArgumentException - 不正な address が指定されたときに発生する
public java.lang.String[] getCc()
                         throws java.io.IOException
java.io.IOException - I/O エラーのときに発生する
public void addBcc(java.lang.String address)
            throws java.io.IOException,
                   java.lang.IllegalArgumentException
追加できるアドレスの長さは 64 バイト以内です。
address - ブラインドカーボンコピーの送信先java.io.IOException - I/O エラーのときに発生するjava.lang.IllegalArgumentException - 不正な address が指定されたときに発生する
public void addBcc(PersonalInfo person)
            throws java.io.IOException,
                   java.lang.IllegalArgumentException
person - ブラインドカーボンコピーの送信先java.io.IOException - I/O エラーのときに発生するjava.lang.IllegalArgumentException - 不正な address が指定されたときに発生する
public java.lang.String[] getBcc()
                          throws java.io.IOException
java.io.IOException - I/O エラーのときに発生する
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 が指定されたときに発生する
public java.lang.String getContent()
                            throws java.io.IOException
java.io.IOException - I/O エラーのときに発生する
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 が指定されたときに発生する
public java.lang.String getSubject()
                            throws java.io.IOException
java.io.IOException - I/O エラーのときに発生する
public void send()
          throws java.io.IOException
java.io.IOException - I/O エラーのときに発生する
public long getLength()
               throws java.io.IOException
java.io.IOException - I/O エラーのときに発生する| 
 | ||||||||
| フレームあり フレームなし | ||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||