com.nttdocomo.system
クラス MailAgent

Object
  拡張com.nttdocomo.system.MailAgent

public final class MailAgent
extends Object

携帯電話のネイティブのメール機能にアクセスする手段を提供します。

メールの取得および送信(または保存)機能を提供します。

メール機能では、 メールの取得や送信を行うクラスと、 メールそのものを表すクラスが区別されています。 このクラスはメールの取得や送信を行いますが、 メールそのものは Mail および MailDraftDecomailDraft クラスのオブジェクトとして表されます。

getLastIncoming() メソッドにより、 最新のメールが未読メールの場合、そのメールを取得することができます。 取得されたメール(Mail オブジェクト)には、 サブジェクト (XString)、 日付 (XStringとして取得可能)、 宛先アドレス (XString)、 差出人アドレス (XString) およびその電話帳 ID が設定されています。

テキストメールを新規に作成し、送信(または保存)するためには、 send(String, String[], String) メソッドまたは send(String, XString, String) メソッドを直接呼び出すか、 MailDraft オブジェクトに対して宛先等を設定して send(MailDraft) メソッドを呼び出します。 また、デコメールの場合は、 DecomailDraft オブジェクトに対して宛先等を設定して send(DecomailDraft) メソッドを呼び出します。

これらのメソッドを呼び出すと、 アプリケーションがサスペンドしてネイティブのメール作成画面が起動します。 その時、引数に指定した内容はメール作成画面に反映されています。 ユーザは、メール作成画面を通じて、そのメールをそのまま、 あるいは変更してから、 送信(または保存)を行うことができます。 送信の成否にかかわらず、 送信に使用した MailDraftDecomailDraft オブジェクトの状態は変化しません。 なお、 テキストメールの send 時に設定するサブジェクト、宛先アドレス、メール本文と、 デコメールの場合に DecomailDraft クラスで設定するサブジェクト、宛先アドレス、メール本文の文字列の扱いについては、以下の通りです。
ネイティブのメーラで扱えない文字が含まれている場合:

サブジェクト、宛先アドレス、メール本文の全てにおいて 「i モードメール(デコメール)の仕様に準拠していない」という理由で例外が発生します。 ただし、メール本文については、テキストメールとデコメールで以下のように振る舞いが異なります。

なお、上記例外を除いては、改行文字を含む制御文字 (0x00 〜 0x1F、0x7F) は 「ネイティブのメーラで扱えない文字」に含まれます。

ネイティブのメーラで扱える最大バイト数を超える文字列が指定された場合:

サブジェクト、宛先アドレス、メール本文の全てにおいて 「i モードメール(デコメール)の仕様に準拠していない」という理由で 例外が発生します。 なお、各最大バイト数は以下になります。

null や空文字列("")が指定された場合:

なお、テキストメールの本文は、send メソッドが呼び出された直後に本文中の改行文字が全て正規化され、 正規化後のデータに対してiモードメールの仕様に準拠しているかどうかのチェックが行われます。

[DoJa-5.0 (903i) 以降]
機種によっては、デコメールの送信も行うことができます。

ミニマムスペック:
ミニマムスペックでは、5つまでの宛先アドレスに送信することができます。

導入されたバージョン:
DoJa-3.0 (505i)
関連項目:
Mail, MailDraft

メソッドの概要
static Mail getLastIncoming()
          最新の未読メールを取得します。
static int getRemainingBytes(DecomailDraft mail) [iアプリオプションAPI]
          デコメール本文に設定できる HTML パートとテキストパートの残りバイト数を返します。
static int getRemainingBytes(MailDraft mail) [iアプリオプションAPI]
          メール本文に設定できる残りバイト数を返します。
static boolean send(DecomailDraft mail) [iアプリオプションAPI]
          ユーザ操作によりデコメールを送信します。
static boolean send(MailDraft mail)
          ユーザ操作によりメールを送信します。
static boolean send(String subject, String[] addresses, String body)
          ユーザ操作によりメールを送信します。
static boolean send(String subject, XString address, String body)
          ユーザ操作によりメールを送信します。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

getLastIncoming

public static Mail getLastIncoming()
最新の未読メールを取得します。 メッセージiアプリ向けのメールや、 SMS・CBS メッセージ([DoJa-5.1 (905i) 以降])も含めて、 すべての受信メール中の最新のメールが未読の場合、 そのメールを取得することができます。

取得されたメール(Mailオブジェクト)には、 サブジェクト(XString)、 日付(XStringとして取得可能)、 宛先アドレス(XString)、 差出人アドレス(XString)およびその電話帳IDが設定されています。

このメソッドを利用して最新の未読メールを取得しても、 端末のメールピクトやそのメールの未読情報は変化しません。

パーミッションとして携帯電話情報の参照が許可されている トラステッドiアプリのみこのメソッドを呼び出すことができます。

戻り値:
最新の未読メールを返します。 最新のメールが未読ではない場合、nullを返します。
例外:
SecurityException - パーミッションとして携帯電話情報の参照が許可されているが、 iアプリ個別のユーザ設定により許可されない場合に発生します。
SecurityException - メールロックにより拒否される場合に発生します。
SecurityException - ネイティブ独自のセキュリティ設定により、 メールを取得できない場合に発生します。
IllegalStateException - [DoJa-4.0 (901i) 以降] UIM読み込み中の場合に発生します。

send

public static boolean send(String subject,
                           String[] addresses,
                           String body)
                    throws MailException,
                           InterruptedOperationException,
                           StoreException
ユーザ操作によりメールを送信します。 各引数に指定できる文字列については、 このクラスの説明を参照して下さい。

送信処理においてサーバが正常応答を返した場合、true を返します。 送信処理中にサーバがエラーを返した場合、MailExceptionをスローします。 送信せずに保存した場合も含めて、それ以外の場合には false を返します。 宛先が複数の場合、いずれかの宛先へのメールの送信に失敗した場合、 その失敗の原因に応じて例外を発生またはfalseを返します。 すべての宛先への送信が成功した場合、true を返します。

パーミッションとしてネイティブメーラの利用が許可されている トラステッドiアプリのみこのメソッドを呼び出すことができます。 このメソッドを呼び出すとサスペンドします。

[DoJa-3.5 (900i) 以降]
マルチタスク機能によってメーラが起動されていて未保存のデータがある状態の時にこのメソッドが呼ばれた場合、 現在実行中のJavaアプリケーションはサスペンドされ、 ユーザ確認のダイアログが表示されます。 ユーザがメーラの起動を許可した場合は、 ユーザ操作によりメールを送信します。 ユーザが起動を許可しなかった場合は、 このメソッドから戻ってJavaアプリケーションの実行を継続します。

パラメータ:
subject - サブジェクト(通常文字列)を指定します。
addresses - 宛先アドレス(通常文字列)を配列で指定します。
body - 本文(通常文字列)を指定します。
戻り値:
送信が完了した場合、true を返します。 それ以外の場合、false を返します。
例外:
IllegalStateException - 待ち受け実行時の非活性化状態で呼び出された場合に発生します。
NullPointerException - 引数 addresses が null でない場合に、 配列中に null の要素があった場合に発生します。
IllegalArgumentException - 実装がサポートしている数以上のメールアドレスを指定した場合に 発生します。
IllegalArgumentException - 引数 subject、addresses、bodyの内容のいずれかが、 iモードメールの仕様に準拠していない場合に発生します。
SecurityException - ロック機能などのネイティブ独自のセキュリティ設定に