パッケージ 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
    • フィールドの詳細

      • 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 - その他の障害の場合
      • 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 - その他の障害の場合
      • 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)
      • 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