パッケージ jakarta.mail

クラス 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
関連事項:
  • フィールドの詳細

    • msgnum

      protected int msgnum
      フォルダー内のこのメッセージの数。メッセージがフォルダーから取得されなかった場合はゼロ。
    • expunged

      protected boolean expunged
      このメッセージが消去されている場合は true。
    • folder

      protected Folder folder
      このメッセージがフォルダーから取得された場合、包含フォルダー
    • session

      protected Session session
      このメッセージの Session オブジェクト
  • コンストラクターの詳細

    • 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 - 失敗
      関連事項:
    • getAllRecipients

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

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

      戻り値:
      Address オブジェクトの配列
      例外:
      MessagingException - 失敗
      関連事項:
    • 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 - 失敗
      関連事項:
    • 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 - 失敗
      関連事項:
    • isSet

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

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

      パラメーター:
      flag - 旗
      戻り値:
      このメッセージに指定されたフラグの値
      例外:
      MessagingException - 失敗
      関連事項:
    • setFlags

      public abstract void setFlags(Flags flag, boolean set) throws MessagingException
      このメッセージの指定されたフラグを指定された値に設定します。特定の Flags オブジェクトで指定されていないこのメッセージのフラグは影響を受けないことに注意してください。

      これにより、MessageChangedEvent がこのメッセージの格納フォルダーに登録されている MessageChangedListener に配信されます。

      パラメーター:
      flag - 設定するフラグを含む Flags オブジェクト
      set - 設定する値
      例外:
      IllegalWriteException - 基本となる実装が既存の値の変更をサポートしていない場合。
      IllegalStateExceptionSE - このメッセージが READ_ONLY フォルダーから取得された場合。
      MessagingException - その他の障害の場合
      関連事項:
    • setFlag

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

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

      パラメーター:
      flag - 設定するフラグを含む Flags.Flag オブジェクト
      set - 設定する値
      例外:
      IllegalWriteException - 基本となる実装が既存の値の変更をサポートしていない場合。
      IllegalStateExceptionSE - このメッセージが READ_ONLY フォルダーから取得された場合。
      MessagingException - その他の障害の場合
      関連事項:
    • 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
      関連事項:
    • 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 - 失敗
      関連事項: