javax.mail
クラス Message

java.lang.Object
  上位を拡張 javax.mail.Message
すべての実装されたインタフェース:
Part
直系の既知のサブクラス:
MimeMessage

public abstract class Message
extends Object
implements Part

このクラスは電子メールメッセージをモデル化します。 これは抽象クラスです。サブクラスは実際の実装を提供します。

Message は Part インタフェースを実装します。 Message は一連の属性と "内容" を含みます。 フォルダ内の Message は、フォルダ内の状態を表す一連のフラグも含んでいます。

Message は Part インタフェースに定義される属性に加え、新規の属性を定義します。 これらの属性はメッセージのメタデータ、つまり、メッセージのアドレッシング及び説明的情報を指定します。

Message オブジェクトは、Folder から、 又は適切なサブクラスの新規 Message オブジェクトを構築する事により取得されます。 受信済みの Message は、通常 "INBOX" というフォルダから取り出されます。

フォルダから取得される Message オブジェクトは、実際のメッセージへの軽量な参照に過ぎません。 Message は、各項目がメッセージから要求される時に(オンデマンドに)入力されます。 一部のフォルダ実装は、特定のユーザ指定項目が入力済みの Message オブジェクトを返す事ができます。 メッセージを送信するには、Message の適切なサブクラス (MimeMessage 等) がインスタンス化され、 属性と内容が入力され、Transport.send メソッドを使用してメッセージが送信されます。

関連項目:
Part

入れ子のクラスの概要
static class Message.RecipientType
          この内部クラスは、Message クラスにより許可される受信者の型を定義します。
 
フィールドの概要
protected  boolean expunged
          このメッセージが消去された場合は true になります。
protected  Folder folder
          このメッセージがフォルダから取得される場合は、メッセージの含まれるフォルダです。
protected  int msgnum
          フォルダ内のこのメッセージの番号です。
protected  Session session
          この Message の Session オブジェクトです。
 
インタフェース javax.mail.Part から継承されたフィールド
ATTACHMENT, INLINE
 
コンストラクタの概要
protected Message()
          引数なしのコンストラクタです。
protected Message(Folder folder, int msgnum)
          Folder 及びメッセージ番号を受け取るコンストラクタです。
protected Message(Session session)
          Session を受け取るコンストラクタです。
 
メソッドの概要
abstract  void addFrom(Address[] addresses)
          これらのアドレスを既存の "From" 属性に追加します。
 void addRecipient(Message.RecipientType type, Address address)
          この受信者アドレスを、指定された型の既存のアドレスに追加します。
abstract  void addRecipients(Message.RecipientType type, Address[] addresses)
          これらの受信者アドレスを、指定された型の既存のアドレスに追加します。
 Address[] getAllRecipients()
          メッセージの全ての受信者アドレスを取得します。
abstract  Flags getFlags()
          このメッセージのフラグを含む Flags オブジェクトを返します。
 Folder getFolder()
          このメッセージが取得されたフォルダを取得します。
abstract  Address[] getFrom()
          "From" 属性を返します。
 int getMessageNumber()
          この Message の Message 番号を取得します。
abstract  Date getReceivedDate()
          このメッセージが受信された日付を取得します。
abstract  Address[] getRecipients(Message.RecipientType type)
          指定された型の全ての受信者アドレスを取得します。
 Address[] getReplyTo()
          返信の送信先のアドレスを取得します。
abstract  Date getSentDate()
          このメッセージが送信された日付を取得します。
abstract  String getSubject()
          このメッセージの件名を取得します。
 boolean isExpunged()
          このメッセージが消去されているかどうかをチェックします。
 boolean isSet(Flags.Flag flag)
          flag 引数に指定されたフラグがこのメッセージ内に設定されているかどうかをチェックします。
 boolean match(SearchTerm term)
          指定された Search 基準をこのメッセージに適用します。
abstract  Message reply(boolean replyToAll)
          このメッセージの返信に適した新しい Message を取得します。
abstract  void saveChanges()
          メッセージがフォルダに含まれる場合、そのフォルダが閉じる際に、 このメッセージに対する全ての変更をメッセージストアに保存します。
protected  void setExpunged(boolean expunged)
          この Message の消去済みフラグを設定します。
 void setFlag(Flags.Flag flag, boolean set)
          このメッセージ上の指定されたフラグを、指定された値に設定します。
abstract  void setFlags(Flags flag, boolean set)
          このメッセージ上の指定されたフラグを、指定された値に設定します。
abstract  void setFrom()
          この Message 中の "From" 属性を設定します。
abstract  void setFrom(Address address)
          この Message 中の "From" 属性を設定します。
protected  void setMessageNumber(int msgnum)
          この Message の Message 番号を設定します。
 void setRecipient(Message.RecipientType type, Address address)
          受信者アドレスを設定します。
abstract  void setRecipients(Message.RecipientType type, Address[] addresses)
          受信者アドレスを設定します。
 void setReplyTo(Address[] addresses)
          返信の送信先のアドレスを設定します (通常、アドレスは 1 つだけ指定します)。
abstract  void setSentDate(Date date)
          このメッセージの送信日付を設定します。
abstract  void setSubject(String subject)
          このメッセージの件名を設定します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース javax.mail.Part から継承されたメソッド
addHeader, getAllHeaders, getContent, getContentType, getDataHandler, getDescription, getDisposition, getFileName, getHeader, getInputStream, getLineCount, getMatchingHeaders, getNonMatchingHeaders, getSize, isMimeType, removeHeader, setContent, setContent, setDataHandler, setDescription, setDisposition, setFileName, setHeader, setText, writeTo
 

フィールドの詳細

msgnum

protected int msgnum
フォルダ内のこのメッセージの番号です。 メッセージがフォルダから取り出されなかった場合は 0 になります。


expunged

protected boolean expunged
このメッセージが消去された場合は true になります。


folder

protected Folder folder
このメッセージがフォルダから取得される場合は、メッセージの含まれるフォルダです。


session

protected Session session
この Message の Session オブジェクトです。

コンストラクタの詳細

Message

protected Message()
引数なしのコンストラクタです。


Message

protected Message(Folder folder,
                  int msgnum)
Folder 及びメッセージ番号を受け取るコンストラクタです。 Folder 実装により使用されます。

パラメータ:
folder - この Message を含むフォルダ
msgnum - このフォルダ内のこのメッセージのシーケンス番号

Message

protected Message(Session session)
Session を受け取るコンストラクタです。 クライアントが作成した Message オブジェクトにより使用されます。

パラメータ:
session - Session オブジェクト
メソッドの詳細

getFrom

public abstract Address[] getFrom()
                           throws MessagingException
"From" 属性を返します。 "From" 属性は、このメッセージを送信する人の ID を含みます。

一部の実装において、これはメッセージを実際に送信したエンティティと異なる事があります。

この属性がこのメッセージ中に存在しない場合、このメソッドは null を返します。 この属性は存在するがアドレスは含まない場合、空の配列を返します。

戻り値:
Address オブジェクトの配列
例外:
MessagingException

setFrom

public abstract void setFrom()
                      throws MessagingException
この Message 中の "From" 属性を設定します。 この属性の値はプロパティ "mail.user" から取得されます。 このプロパティが存在しない場合、システムプロパティ "user.name" が使用されます。

例外:
MessagingException
IllegalWriteException - 実装が既存値の変更をサポートしない場合
IllegalStateException - このメッセージが READ_ONLY フォルダから取得された場合

setFrom

public abstract void setFrom(Address address)
                      throws MessagingException
この Message 中の "From" 属性を設定します。

パラメータ:
address - 送信者
例外:
MessagingException
IllegalWriteException - 実装が既存値の変更をサポートしない場合
IllegalStateException - このメッセージが READ_ONLY フォルダから取得された場合

addFrom

public abstract void addFrom(Address[] addresses)
                      throws MessagingException
これらのアドレスを既存の "From" 属性に追加します。

パラメータ:
addresses - 送信者
例外:
IllegalWriteException - 実装が既存値の変更をサポートしない場合
IllegalStateException - このメッセージが READ_ONLY フォルダから取得された場合
MessagingException

getRecipients

public abstract Address[] getRecipients(Message.RecipientType type)
                                 throws MessagingException
指定された型の全ての受信者アドレスを取得します。

指定された型のヘッダがこのメッセージ中に存在しない場合、 このメソッドは null を返します。 ヘッダは存在するがアドレスを含まない場合は、空の配列を返します。

パラメータ:
type - 受信者の型
戻り値:
Address オブジェクトの配列
例外:
MessagingException
関連項目:
Message.RecipientType.TO, Message.RecipientType.CC, Message.RecipientType.BCC

getAllRecipients

public Address[] getAllRecipients()
                           throws MessagingException
メッセージの全ての受信者アドレスを取得します。 デフォルトの実装は、getRecipients メソッドを使用して、 TO、CC、及び BCC の各受信者を抽出します。

受信者ヘッダがこのメッセージ中に存在しない場合、このメソッドは null を返します。 受信者ヘッダは存在するがアドレスを含まない場合は、空の配列を返します。

戻り値:
Address オブジェクトの配列
例外:
MessagingException
関連項目:
Message.RecipientType.TO, Message.RecipientType.CC, Message.RecipientType.BCC, getRecipients(javax.mail.Message.RecipientType)

setRecipients

public abstract void setRecipients(Message.RecipientType type,
                                   Address[] addresses)
                            throws MessagingException
受信者アドレスを設定します。 指定された型の全てのアドレスは、アドレスパラメータにより置き換えられます。

パラメータ:
type - 受信者の型
addresses - アドレス
例外:
MessagingException
IllegalWriteException - 実装が既存値の変更をサポートしない場合
IllegalStateException - このメッセージが READ_ONLY フォルダから取得された場合

setRecipient

public final void setRecipient(Message.RecipientType type,
                               Address address)
                        throws MessagingException
受信者アドレスを設定します。 指定された型の全てのアドレスは、アドレスパラメータにより置き換えられます。

デフォルトの実装は setRecipients メソッドを使用します。

パラメータ:
type - 受信者の型
address - アドレス
例外:
MessagingException
IllegalWriteException - 実装が既存値の変更をサポートしない場合

addRecipients

public abstract void addRecipients(Message.RecipientType type,
                                   Address[] addresses)
                            throws MessagingException
これらの受信者アドレスを、指定された型の既存のアドレスに追加します。

パラメータ:
type - 受信者の型
addresses - アドレス
例外:
MessagingException
IllegalWriteException - 実装が既存値の変更をサポートしない場合
IllegalStateException - このメッセージが READ_ONLY フォルダから取得された場合

addRecipient

public final void addRecipient(Message.RecipientType type,
                               Address address)
                        throws MessagingException
この受信者アドレスを、指定された型の既存のアドレスに追加します。

デフォルトの実装は addRecipients メソッドを使用します。

パラメータ:
type - 受信者の型
address - アドレス
例外:
MessagingException
IllegalWriteException - 実装が既存値の変更をサポートしない場合

getReplyTo

public Address[] getReplyTo()
                     throws MessagingException
返信の送信先のアドレスを取得します。通常これはメッセージの送信側ですが、 一部のメッセージは異なるアドレスに返信される場合があります。

デフォルトの実装は単に getFrom メソッドを呼び出します。

対応するヘッダが存在しない場合、このメソッドは null を返します。 ヘッダは存在するがアドレスを含まない場合は、空の配列を返します。

戻り値:
返信の送信先のアドレス
例外:
MessagingException
関連項目:
getFrom()

setReplyTo

public void setReplyTo(Address[] addresses)
                throws MessagingException
返信の送信先のアドレスを設定します (通常、アドレスは 1 つだけ指定します)。 全てのメッセージ型で、メッセージの送信者以外の指定が可能であるわけではありません。

ここで提供されるデフォルトの実装は、MethodNotSupportedException をスローするだけです。

パラメータ:
addresses - 返信の送信先のアドレス
例外:
MessagingException
IllegalWriteException - 実装が既存値の変更をサポートしない場合
IllegalStateException - このメッセージが READ_ONLY フォルダから取得された場合
MethodNotSupportedException - 実装がこの属性の設定をサポートしない場合

getSubject

public abstract String getSubject()
                           throws MessagingException
このメッセージの件名を取得します。

戻り値:
件名
例外:
MessagingException

setSubject

public abstract void setSubject(String subject)
                         throws MessagingException
このメッセージの件名を設定します。

パラメータ:
subject - 件名
例外:
MessagingException
IllegalWriteException - 実装が既存値の変更をサポートしない場合
IllegalStateException - このメッセージが READ_ONLY フォルダから取得された場合

getSentDate

public abstract Date getSentDate()
                          throws MessagingException
このメッセージが送信された日付を取得します。

戻り値:
このメッセージが送信された日付
例外:
MessagingException

setSentDate

public abstract void setSentDate(Date date)
                          throws MessagingException
このメッセージの送信日付を設定します。

パラメータ:
date - このメッセージの送信日付
例外:
MessagingException
IllegalWriteException - 実装が既存値の変更をサポートしない場合
IllegalStateException - このメッセージが READ_ONLY フォルダから取得された場合

getReceivedDate

public abstract Date getReceivedDate()
                              throws MessagingException
このメッセージが受信された日付を取得します。

戻り値:
このメッセージが受信された日付
例外:
MessagingException

getFlags

public abstract Flags getFlags()
                        throws MessagingException
このメッセージのフラグを含む Flags オブジェクトを返します。

返されたこの Flags オブジェクト中のフラグを変更しても、メッセージには反映されません。 メッセージのフラグを変更する為には、setFlags() を使って下さい。

戻り値:
このメッセージのフラグを含む Flags オブジェクト
例外:
MessagingException
関連項目:
Flags, setFlags(javax.mail.Flags, boolean)

isSet

public boolean isSet(Flags.Flag flag)
              throws MessagingException
flag 引数に指定されたフラグがこのメッセージ内に設定されているかどうかをチェックします。

デフォルトの実装は getFlags を使用します。

パラメータ:
flag - フラグ
戻り値:
このメッセージの指定されたフラグの値
例外:
MessagingException
関連項目:
Flags.Flag, Flags.Flag.ANSWERED, Flags.Flag.DELETED, Flags.Flag.DRAFT, Flags.Flag.FLAGGED, Flags.Flag.RECENT, Flags.Flag.SEEN

setFlags

public abstract void setFlags(Flags flag,
                              boolean set)
                       throws MessagingException
このメッセージ上の指定されたフラグを、指定された値に設定します。 指定された Flags オブジェクト中に指定されていない、 このメッセージ中のすべてのフラグは影響を受けません。

これにより、この Message を含むフォルダ上に登録されている 全ての MessageChangedListener に MessageChangedEvent が配信されます。

パラメータ:
flag - 設定されるフラグを含む Flags オブジェクト
set - 設定される値
例外:
MessagingException
IllegalWriteException - 実装が既存値の変更をサポートしない場合
IllegalStateException - このメッセージが READ_ONLY フォルダから取得された場合
関連項目:
MessageChangedEvent

setFlag

public final void setFlag(Flags.Flag flag,
                          boolean set)
                   throws MessagingException
このメッセージ上の指定されたフラグを、指定された値に設定します。 これにより、この Message を含むフォルダ上に登録されている 全ての MessageChangedListener に MessageChangedEvent が配信される事になります。

デフォルトの実装は setFlags メソッドを使用します。

パラメータ:
flag - 設定されるフラグを含む Flags オブジェクト
set - 設定される値
例外:
MessagingException
IllegalWriteException - 実装が既存値の変更をサポートしない場合
IllegalStateException - このメッセージが READ_ONLY フォルダから取得された場合
関連項目:
MessageChangedEvent

getMessageNumber

public final int getMessageNumber()
この Message の Message 番号を取得します。 Message オブジェクトのメッセージ番号は、Folder 中のこの Message の相対位置です。 特定の Message のメッセージ番号は、Folder 中の他のメッセージが削除及び消去された場合、 セッション中に変更される可能性があります。

有効なメッセージ番号は 1 から始まります。 どのフォルダにも属さないメッセージ (新規の作成又は派生されたメッセージ) のメッセージ番号は 0 です。

戻り値:
メッセージ番号

setMessageNumber

protected void setMessageNumber(int msgnum)
この Message の Message 番号を設定します。 このメソッドは実装クラスによってのみ呼び出されます。


getFolder

public final Folder getFolder()
このメッセージが取得されたフォルダを取得します。 これが新規メッセージ又はネストされたメッセージの場合、 このメソッドは null を返します。

戻り値:
このメッセージを含んでいるフォルダ

isExpunged

public boolean isExpunged()
このメッセージが消去されているかどうかをチェックします。 消去された Message オブジェクト上では、 getMessageNumber() を除く全てのメソッドが無効です。

包含 Folder 上での明示的な expunge() 要求により消去されるメッセージは、 直ちに Folder から削除されます。 別のソースから外部的に消去されるメッセージには "消去済み" のマークが付けられ、 isExpunged() メソッドに対して true が返されます。 但し、Folder 上で明示的な expunge() が実行されるまで Folder から削除されません。

消去処理の詳細については expunge() の説明を参照して下さい。

関連項目:
Folder.expunge()

setExpunged

protected void setExpunged(boolean expunged)
この Message の消去済みフラグを設定します。 このメソッドは実装クラスによってのみ使用されます。

パラメータ:
expunged - 消去済みフラグ

reply

public abstract Message reply(boolean replyToAll)
                       throws MessagingException
このメッセージの返信に適した新しい Message を取得します。 新しい Message の属性とヘッダは適切に設定されます。 この新しいメッセージオブジェクトは空、即ち "内容" を持ちません。 これらは、クライアントが適切に入力する必要があります。

replyToAll が true の場合、 新しい Message はこのメッセージの全ての受信者に送られます。 それ以外の場合、返信はこのメッセージの送信者だけに 送られます (getReplyTo メソッドの値を使用)。

"Subject" フィールドには、元の件名の前に "Re:" が付けられて 入力されます (既に先頭が "Re:" でない場合)。

返信メッセージはこのメッセージと同じセッションを使用します。

パラメータ:
replyToAll - 返信はこのメッセージの全ての受信者に送信する場合 true
戻り値:
返信 Message
例外:
MessagingException

saveChanges

public abstract void saveChanges()
                          throws MessagingException
メッセージがフォルダに含まれる場合、そのフォルダが閉じる際に、 このメッセージに対する全ての変更をメッセージストアに保存します。 一部の実装では変更を直ちに保存する場合があります。 変更されたメッセージ内容に矛盾しない様に全てのヘッダフィールドを更新します。 メッセージのヘッダ又は内容の任意の部分が変更された場合は、 saveChanges を呼び出して、それらの変更を保存する必要があります。 saveChanges を呼び出さないと、メッセージストア及びフォルダ実装によって、 変更が保存されたりされなかったりします。

READ_ONLY で開かれているフォルダから取得されたメッセージを変更してはいけません。 又、そうしたメッセージ上で saveChanges を呼び出してはいけません。

例外:
MessagingException
IllegalWriteException - 実装が既存値の変更をサポートしない場合
IllegalStateException - このメッセージが READ_ONLY フォルダから取得された場合

match

public final boolean match(SearchTerm term)
                    throws MessagingException
指定された Search 基準をこのメッセージに適用します。

パラメータ:
term - Search 基準
戻り値:
Message がこの検索基準に一致する場合は true、そうでない場合は false
例外:
MessagingException
関連項目:
SearchTerm