クラス Message
- java.lang.ObjectSE
-
- jakarta.mail.Message
- 実装されたすべてのインターフェース:
Part
- 既知の直属サブクラス
MimeMessage
public abstract class Message extends ObjectSE implements Part
このクラスはメールメッセージをモデル化します。これは抽象クラスです。サブクラスは実際の実装を提供します。メッセージは Part インターフェースを実装します。メッセージには、一連の属性と「コンテンツ」が含まれています。フォルダー内のメッセージには、フォルダー内の状態を示すフラグのセットもあります。
メッセージは、
Part
インターフェースで定義された属性に加えて、いくつかの新しい属性を定義します。これらの属性は、メッセージのメタデータ、つまり、メッセージのアドレス指定と説明情報を指定します。メッセージオブジェクトは、フォルダーから、または適切なサブクラスの新しいメッセージオブジェクトを作成することによって取得されます。受信したメッセージは通常 "INBOX" という名前のフォルダーから取得されます。
フォルダーから取得した Message オブジェクトは、実際のメッセージへの軽量な参照です。メッセージは、各アイテムがメッセージからリクエストされたときに(オンデマンドで)「遅延」で埋められます。特定のフォルダー実装は、特定のユーザー指定の項目が事前に入力された Message オブジェクトを返す場合があることに注意してください。メッセージを送信するには、メッセージの適切なサブクラス(MimeMessage など)がインスタンス化され、属性とコンテンツが入力され、
Transport.send
メソッドを使用してメッセージが送信されます。- 作成者:
- John Mani, Bill Shannon, Max Spivak
- 関連事項:
Part
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 クラス 説明 static class
Message.RecipientType
この内部クラスは、メッセージクラスで許可される受信者の型を定義します。
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 protected boolean
expunged
このメッセージが消去されている場合は true。protected Folder
folder
このメッセージがフォルダーから取得された場合、包含フォルダーprotected int
msgnum
フォルダー内のこのメッセージの数。メッセージがフォルダーから取得されなかった場合はゼロ。protected Session
session
このメッセージの Session オブジェクトインターフェース jakarta.mail.Part から継承されたフィールド
ATTACHMENT, INLINE
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 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()
このメッセージのメッセージ番号を取得します。abstract DateSE
getReceivedDate()
このメッセージが受信された日付を取得します。abstract Address[]
getRecipients(Message.RecipientType type)
指定された型のすべての受信者アドレスを取得します。Address[]
getReplyTo()
返信先のアドレスを取得します。abstract DateSE
getSentDate()
このメッセージが送信された日付を取得します。Session
getSession()
このメッセージが作成されたときに使用されたセッションを返します。abstract StringSE
getSubject()
このメッセージの件名を取得します。boolean
isExpunged()
このメッセージが消去されたかどうかを確認します。boolean
isSet(Flags.Flag flag)
このメッセージに、flag
引数で指定されたフラグが設定されているかどうかを確認します。boolean
match(SearchTerm term)
指定した検索条件をこのメッセージに適用します。abstract Message
reply(boolean replyToAll)
このメッセージへの返信に適した新しいメッセージを取得します。abstract void
saveChanges()
メッセージがフォルダーに含まれている場合は、含まれているフォルダーが閉じているときに、このメッセージに加えられた変更をメッセージストアに保存します。protected void
setExpunged(boolean expunged)
このメッセージの消去済みフラグを設定します。void
setFlag(Flags.Flag flag, boolean set)
このメッセージの指定されたフラグを指定された値に設定します。abstract void
setFlags(Flags flag, boolean set)
このメッセージの指定されたフラグを指定された値に設定します。abstract void
setFrom()
このメッセージに "From" 属性を設定します。abstract void
setFrom(Address address)
このメッセージに "From" 属性を設定します。protected void
setMessageNumber(int msgnum)
このメッセージのメッセージ番号を設定します。void
setRecipient(Message.RecipientType type, Address address)
受信者アドレスを設定します。abstract void
setRecipients(Message.RecipientType type, Address[] addresses)
受信者アドレスを設定します。void
setReplyTo(Address[] addresses)
返信先のアドレスを設定します。abstract void
setSentDate(DateSE date)
このメッセージの送信日を設定します。abstract void
setSubject(StringSE subject)
このメッセージの件名を設定します。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース jakarta.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
コンストラクターの詳細
Message
protected Message()
引数のないコンストラクターのバージョン。
Message
protected Message(Folder folder, int msgnum)
フォルダーとメッセージ番号を受け取るコンストラクター。フォルダーの実装で使用されます。- パラメーター:
folder
- 含まれるフォルダーmsgnum
- このフォルダー内のこのメッセージのシーケンス番号
Message
protected Message(Session session)
セッションを取るコンストラクター。クライアントが作成した Message オブジェクトに使用されます。- パラメーター:
session
- Session オブジェクト
メソッドの詳細
getSession
public Session getSession()
このメッセージが作成されたときに使用されたセッションを返します。- 戻り値:
- メッセージのセッション
- 導入:
- JavaMail 1.5
getFrom
public abstract Address[] getFrom() throws MessagingException
"From" 属性を返します。"From" 属性には、このメッセージの送信を希望した人の ID が含まれています。特定の実装では、これは実際にメッセージを送信したエンティティとは異なる場合があります。
この属性がこのメッセージに存在しない場合、このメソッドは
null
を返します。この属性は存在するがアドレスが含まれていない場合は、空の配列を返します。- 戻り値:
- Address オブジェクトの配列
- 例外:
MessagingException
- 失敗
setFrom
public abstract void setFrom() throws MessagingException
このメッセージで "From" 属性を設定します。この属性の値は、プロパティ "mail.user" から取得されます。このプロパティがない場合は、システムプロパティ "user.name" が使用されます。- 例外:
IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合
setFrom
public abstract void setFrom(Address address) throws MessagingException
このメッセージに "From" 属性を設定します。- パラメーター:
address
- 送り主- 例外:
IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合
addFrom
public abstract void addFrom(Address[] addresses) throws MessagingException
これらのアドレスを既存の "From" 属性に追加します- パラメーター:
addresses
- 送信者- 例外:
IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合IllegalStateExceptionSE
- このメッセージが 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(jakarta.mail.Message.RecipientType)
setRecipients
public abstract void setRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException
受信者アドレスを設定します。指定された型のすべてのアドレスは、addresses パラメーターで置き換えられます。- パラメーター:
type
- 受信者の型addresses
- アドレス- 例外:
IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合
setRecipient
public void setRecipient(Message.RecipientType type, Address address) throws MessagingException
受信者アドレスを設定します。指定された型のすべてのアドレスは、アドレスパラメーターによって置き換えられます。デフォルトの実装では、
setRecipients
メソッドを使用します。- パラメーター:
type
- 受信者の型address
- 住所・アドレス- 例外:
IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合MessagingException
- その他の障害の場合
addRecipients
public abstract void addRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException
これらの受信者アドレスを、指定された型の既存のアドレスに追加します。- パラメーター:
type
- 受信者の型addresses
- アドレス- 例外:
IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合
addRecipient
public void addRecipient(Message.RecipientType type, Address address) throws MessagingException
この受信者アドレスを、指定された型の既存のアドレスに追加します。デフォルトの実装では、
addRecipients
メソッドを使用します。- パラメーター:
type
- 受信者の型address
- 住所・アドレス- 例外:
IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合MessagingException
- その他の障害の場合
getReplyTo
public Address[] getReplyTo() throws MessagingException
返信先のアドレスを取得します。これは通常メッセージの送信者ですが、一部のメッセージは返信を別のアドレスに送信する場合があります。デフォルトの実装では、単に
getFrom
メソッドを呼び出します。対応するヘッダーが存在しない場合、このメソッドは
null
を返します。ヘッダーはあるがアドレスが含まれていない場合は、空の配列を返します。- 戻り値:
- 返信先のアドレス
- 例外:
MessagingException
- 失敗- 関連事項:
getFrom()
setReplyTo
public void setReplyTo(Address[] addresses) throws MessagingException
返信先のアドレスを設定します。(通常、単一のアドレスのみが指定されます)すべてのメッセージ型で、これをメッセージの送信者とは別に指定できるわけではありません。ここで提供されるデフォルトの実装は、MethodNotSupportedException をスローするだけです。
- パラメーター:
addresses
- 返信先のアドレス- 例外:
IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MethodNotSupportedException
- 基本となる実装がこの属性の設定をサポートしていない場合MessagingException
- その他の障害の場合
getSubject
public abstract StringSE getSubject() throws MessagingException
このメッセージの件名を取得します。- 戻り値:
- 件名
- 例外:
MessagingException
- 失敗
setSubject
public abstract void setSubject(StringSE subject) throws MessagingException
このメッセージの件名を設定します。- パラメーター:
subject
- 件名- 例外:
IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合
getSentDate
public abstract DateSE getSentDate() throws MessagingException
このメッセージが送信された日付を取得します。- 戻り値:
- このメッセージが送信された日付
- 例外:
MessagingException
- 失敗
setSentDate
public abstract void setSentDate(DateSE date) throws MessagingException
このメッセージの送信日を設定します。- パラメーター:
date
- このメッセージの送信日- 例外:
IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合
getReceivedDate
public abstract DateSE getReceivedDate() throws MessagingException
このメッセージが受信された日付を取得します。- 戻り値:
- このメッセージが受信された日付
- 例外:
MessagingException
- 失敗
getFlags
public abstract Flags getFlags() throws MessagingException
このメッセージのフラグを含むFlags
オブジェクトを返します。この返された Flags オブジェクトのフラグを変更しても、このメッセージのフラグには影響しません。これを行うには、
setFlags()
を使用します。- 戻り値:
- このメッセージのフラグを含む Flags オブジェクト
- 例外:
MessagingException
- 失敗- 関連事項:
Flags
,setFlags(jakarta.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
オブジェクトで指定されていないこのメッセージのフラグは影響を受けないことに注意してください。これにより、
MessageChangedEvent
がこのメッセージの格納フォルダーに登録されている MessageChangedListener に配信されます。- パラメーター:
flag
- 設定するフラグを含む Flags オブジェクトset
- 設定する値- 例外:
IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合。IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合- 関連事項:
MessageChangedEvent
setFlag
public void setFlag(Flags.Flag flag, boolean set) throws MessagingException
このメッセージの指定されたフラグを指定された値に設定します。これにより、MessageChangedEvent
がこのメッセージの格納フォルダーに登録されている MessageChangedListener に配信されます。デフォルトの実装では、
setFlags
メソッドを使用します。- パラメーター:
flag
- 設定するフラグを含む Flags.Flag オブジェクトset
- 設定する値- 例外:
IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合。IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合- 関連事項:
MessageChangedEvent
getMessageNumber
public int getMessageNumber()
このメッセージのメッセージ番号を取得します。Message オブジェクトのメッセージ番号は、このメッセージのフォルダー内での相対的な位置です。フォルダー内の他のメッセージが削除されて消去されると、特定のメッセージのメッセージ番号がセッション中に変更される可能性があることに注意してください。有効なメッセージ番号は 1 から始まります。どのフォルダーにも属さないメッセージ(新しく作成されたメッセージや派生メッセージなど)は、メッセージ番号として 0 を持っています。
- 戻り値:
- メッセージ番号
setMessageNumber
protected void setMessageNumber(int msgnum)
このメッセージのメッセージ番号を設定します。このメソッドは、実装クラスによってのみ呼び出されます。- パラメーター:
msgnum
- メッセージ番号
getFolder
public Folder getFolder()
このメッセージの取得元のフォルダーを取得します。これが新しいメッセージまたはネストされたメッセージの場合、このメソッドは null を返します。- 戻り値:
- 含まれるフォルダー
isExpunged
public boolean isExpunged()
このメッセージが消去されたかどうかを確認します。getMessageNumber()
を除く他のすべてのメソッドは、消去されたメッセージオブジェクトでは無効です。含まれているフォルダーに対する明示的な
expunge()
リクエストが原因で消去されたメッセージは、すぐにフォルダーから削除されます。別のソースによって外部で消去されたメッセージは、「消去済み」とマークされ、isExpunged() メソッドに対して true を返しますが、フォルダーで明示的なexpunge()
が実行されるまで、フォルダーから削除されません。消去処理の詳細については、
expunge()
の説明を参照してください。- 戻り値:
- メッセージが消去された場合は true
- 関連事項:
Folder.expunge()
setExpunged
protected void setExpunged(boolean expunged)
このメッセージの消去済みフラグを設定します。このメソッドは、実装クラスでのみ使用されます。- パラメーター:
expunged
- 抹消された旗
reply
public abstract Message reply(boolean replyToAll) throws MessagingException
このメッセージへの返信に適した新しいメッセージを取得します。新しいメッセージには、属性とヘッダーが適切に設定されます。この新しいメッセージオブジェクトは空であることに注意してください。つまり、「コンテンツ」はありません。これらは、クライアントが適切に入力する必要があります。replyToAll
が設定されている場合、新しいメッセージはこのメッセージのすべての受信者に送信されます。それ以外の場合、返信はこのメッセージの送信者のみに送信されます(getReplyTo
メソッドの値を使用)。「サブジェクト」フィールドには、"Re:" で始まる元の件名が入力されます(すでに "Re:" で始まっている場合を除く)。
返信メッセージは、このメッセージと同じセッションを使用します。
- パラメーター:
replyToAll
- このメッセージのすべての受信者に返信を送信する必要があります- 戻り値:
- 返信メッセージ
- 例外:
MessagingException
- 失敗
saveChanges
public abstract void saveChanges() throws MessagingException
メッセージがフォルダーに含まれている場合、そのフォルダーが閉じられるときに、このメッセージに加えられた変更をメッセージストアに保存します。(一部の実装では、変更がすぐに保存される場合があります) 変更されたメッセージの内容と一致するように、ヘッダーフィールドを更新します。メッセージのヘッダーまたは内容の一部が変更された場合は、それらの変更が永続的であることを確認するために、saveChanges を呼び出す必要があります。saveChanges が呼び出されない場合、メッセージストアとフォルダーの実装に応じて、そのような変更が保存される場合とされない場合があります。READ_ONLY で開かれたフォルダーから取得されたメッセージは変更してはならず、そのようなメッセージに対して saveChanges を呼び出してはなりません。
- 例外:
IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合。MessagingException
- その他の障害の場合
match
public boolean match(SearchTerm term) throws MessagingException
指定した検索条件をこのメッセージに適用します。- パラメーター:
term
- 検索基準- 戻り値:
- メッセージがこの検索条件に一致する場合は true、そうでない場合は false。
- 例外:
MessagingException
- 失敗- 関連事項:
SearchTerm