パッケージ jakarta.mail.internet

クラス MimeBodyPart

  • 実装されたすべてのインターフェース:
    MimePartPart
    既知の直属サブクラス
    PreencodedMimeBodyPart

    public class MimeBodyPart
    extends BodyPart
    implements MimePart
    このクラスは、MIME ボディパーツを表します。BodyPart 抽象クラスと MimePart インターフェースを実装します。MimeBodyParts は MimeMultipart オブジェクトに含まれています。

    MimeBodyPart は、InternetHeaders クラスを使用して、そのボディパーツのヘッダーを解析および格納します。


    RFC 822 および MIME ヘッダーに関する注意

    RFC 822 ヘッダーフィールドに は、US-ASCII 文字のみを含める必要があります。MIME では、ASCII 以外の文字をエンコードすることにより、それらの文字を特定のヘッダーの特定の部分に含めることができます。RFC 2047 は、これを行うためのルールを指定しています。このパッケージで提供される MimeUtility クラスを使用して、これを実現できます。setHeaderaddHeaderaddHeaderLine メソッドの呼び出し元は、指定されたヘッダーの MIME 要件を適用する責任があります。さらに、これらのヘッダーフィールドは、トランスポートの行長制限(SMTP の場合は 1000 バイト)を超える場合は、送信する前に折りたたむ(折り返す)必要があります。受信したヘッダーが折りたたまれている可能性があります。アプリケーションは、必要に応じてヘッダーを折りたたんだり展開したりする責任があります。

    作成者:
    John Mani, Bill Shannon, Kanwar Oberoi
    関連事項:
    Part, MimePart, MimeUtility
    • フィールドサマリー

      フィールド  
      修飾子と型 フィールド 説明
      protected ObjectSEcachedContent
      コンテンツがメッセージオブジェクトのマルチパートである場合は、含まれているオブジェクトへの変更が失われないように、ストリームの解析によって初めて作成されたときにコンテンツを保存します。
      protected byte[]content
      この Part のコンテンツのバイトを保持するバイト配列。
      protected InputStreamSEcontentStream
      このボディパーツのデータが SharedInputStream インターフェースを実装する InputStream によって提供された場合、contentStream はこのボディパーツのコンテンツを表す別のストリームです。
      protected DataHandlerdh
      この Part のコンテンツを表す DataHandler オブジェクト。
      protected InternetHeadersheaders
      このボディパーツのすべてのヘッダーを格納する InternetHeaders オブジェクト。
    • コンストラクターのサマリー

      コンストラクター  
      コンストラクター 説明
      MimeBodyPart()
      空の MimeBodyPart オブジェクトが作成されます。
      MimeBodyPart​(InternetHeaders headers, byte[] content)
      指定されたヘッダーとコンテンツバイトを使用して MimeBodyPart を構築します。
      MimeBodyPart​(InputStreamSE is)
      指定された入力ストリームからデータを読み取って解析することにより、MimeBodyPart を構築します。
    • メソッドのサマリー

      すべてのメソッド   インスタンスメソッド   具象メソッド  
      修飾子と型 メソッド 説明
      voidaddHeader​(StringSE name, StringSE value)
      この値をこの header_name の既存の値に追加します。
      voidaddHeaderLine​(StringSE line)
      このボディパーツにヘッダー行を追加します
      voidattachFile​(FileSE file)
      指定されたファイルを使用して、このパーツのデータを提供します。
      voidattachFile​(FileSE file, StringSE contentType, StringSE encoding)
      指定された Content-Type および Content-Transfer-Encoding で指定されたファイルを使用して、このパーツのデータを提供します。
      voidattachFile​(StringSE file)
      指定されたファイルを使用して、このパーツのデータを提供します。
      voidattachFile​(StringSE file, StringSE contentType, StringSE encoding)
      指定された Content-Type および Content-Transfer-Encoding で指定されたファイルを使用して、このパーツのデータを提供します。
      EnumerationSE<StringSE>getAllHeaderLines()
      すべてのヘッダー行を文字列の列挙として取得します。
      EnumerationSE<Header>getAllHeaders()
      この Message のすべてのヘッダーを、Header オブジェクトの列挙として返します。
      ObjectSEgetContent()
      コンテンツを Java オブジェクトとして返します。
      StringSEgetContentID()
      "Content-ID" ヘッダーフィールドの値を返します。
      StringSE[]getContentLanguage()
      この MimePart の Content-Language ヘッダーで指定された言語を取得します。
      StringSEgetContentMD5()
      "Content-MD5" ヘッダーフィールドの値を返します。
      protected InputStreamSEgetContentStream()
      コンテンツの生のバイトを生成します。
      StringSEgetContentType()
      RFC 822 "Content-Type" ヘッダーフィールドの値を返します。
      DataHandlergetDataHandler()
      このボディパーツのコンテンツの DataHandler を返します。
      StringSEgetDescription()
      このボディパーツの "Content-Description" ヘッダーフィールドを返します。
      StringSEgetDisposition()
      "Content-Disposition" ヘッダーフィールドから後処理を返します。
      StringSEgetEncoding()
      "Content-Transfer-Encoding" ヘッダーフィールドからコンテンツ転送エンコーディングを返します。
      StringSEgetFileName()
      このボディパーツに関連付けられているファイル名を取得します。
      StringSE[]getHeader​(StringSE name)
      この header_name のすべてのヘッダーを取得します。
      StringSEgetHeader​(StringSE name, StringSE delimiter)
      このヘッダー名のすべてのヘッダーを取得します。ヘッダーは区切り文字で区切られ、単一の文字列として返されます。
      InputStreamSEgetInputStream()
      このボディパーツの「コンテンツ」のデコードされた入力ストリームを返します。
      intgetLineCount()
      この Part のコンテンツの行数を返します。
      EnumerationSE<StringSE>getMatchingHeaderLines​(StringSE[] names)
      一致するヘッダー行を文字列の列挙として取得します。
      EnumerationSE<Header>getMatchingHeaders​(StringSE[] names)
      この Message から一致するヘッダーを Header オブジェクトの列挙として返します。
      EnumerationSE<StringSE>getNonMatchingHeaderLines​(StringSE[] names)
      一致しないヘッダー行を文字列の列挙として取得します。
      EnumerationSE<Header>getNonMatchingHeaders​(StringSE[] names)
      このメッセージから一致しないヘッダーをヘッダーオブジェクトの列挙として返します。
      InputStreamSEgetRawInputStream()
      Content-Transfer-Encoding をそのままにして、InputStream を生データに戻します。
      intgetSize()
      この本文部分のコンテンツのサイズをバイト単位で返します。
      booleanisMimeType​(StringSE mimeType)
      これは指定された MIME 型の一部ですか? このメソッドは、primaryType と subType のみを比較します。
      voidremoveHeader​(StringSE name)
      この名前のすべてのヘッダーを削除します。
      voidsaveFile​(FileSE file)
      このパーツの内容を指定したファイルに保存します。
      voidsaveFile​(StringSE file)
      このパーツの内容を指定したファイルに保存します。
      voidsetContent​(Multipart mp)
      このメソッドは、ボディパーツのコンテンツを Multipart オブジェクトに設定します。
      voidsetContent​(ObjectSE o, StringSE type)
      このボディパーツのコンテンツを設定するための便利なメソッド。
      voidsetContentID​(StringSE cid)
      このボディパーツの "Content-ID" ヘッダーフィールドを設定します。
      voidsetContentLanguage​(StringSE[] languages)
      この MimePart の Content-Language ヘッダーを設定します。
      voidsetContentMD5​(StringSE md5)
      このボディパーツの "Content-MD5" ヘッダーフィールドを設定します。
      voidsetDataHandler​(DataHandler dh)
      このメソッドは、このボディパーツのコンテンツを設定するメカニズムを提供します。
      voidsetDescription​(StringSE description)
      このボディパーツの "Content-Description" ヘッダーフィールドを設定します。
      voidsetDescription​(StringSE description, StringSE charset)
      このボディパーツの "Content-Description" ヘッダーフィールドを設定します。
      voidsetDisposition​(StringSE disposition)
      このボディパーツの "Content-Disposition" ヘッダーフィールドで後処理を設定します。
      voidsetFileName​(StringSE filename)
      可能であれば、このボディパーツに関連付けられたファイル名を設定します。
      voidsetHeader​(StringSE name, StringSE value)
      この header_name の値を設定します。
      voidsetText​(StringSE text)
      指定された文字列をこのパーツのコンテンツとして設定する便利なメソッド。MIME 型は "text/plain" です。
      voidsetText​(StringSE text, StringSE charset)
      指定された文字列をこのパーツのコンテンツとして設定する便利なメソッド。MIME 型は "text/plain" で、指定された文字セットを使用します。
      voidsetText​(StringSE text, StringSE charset, StringSE subtype)
      指定された String をこのパートのコンテンツとして設定する簡易メソッド。プライマリ MIME 型は「テキスト」で、指定された MIME サブ型を使用します。
      protected voidupdateHeaders()
      この本文部分の内容を調べて、適切な MIME ヘッダーを更新してください。
      voidwriteTo​(OutputStreamSE os)
      本文部分を RFC 822 形式のストリームとして出力します。
    • フィールドの詳細

      • dh

        protected DataHandler dh
        この Part のコンテンツを表す DataHandler オブジェクト。
      • content

        protected byte[] content
        この Part のコンテンツのバイトを保持するバイト配列。
      • contentStream

        protected InputStreamSE contentStream
        このボディパーツのデータが SharedInputStream インターフェースを実装する InputStream によって提供された場合、contentStream はこのボディパーツのコンテンツを表す別のストリームです。この場合、content は null になります。
        導入:
        JavaMail 1.2
      • headers

        protected InternetHeaders headers
        このボディパーツのすべてのヘッダーを格納する InternetHeaders オブジェクト。
      • cachedContent

        protected ObjectSE cachedContent
        コンテンツがメッセージオブジェクトのマルチパートである場合は、含まれているオブジェクトへの変更が失われないように、ストリームの解析によって初めて作成されたときにコンテンツを保存します。このフィールドが null でない場合、getContent() メソッドによって返されます。getContent() メソッドは、Multipart または MimeMessage オブジェクトを返す場合にこのフィールドを設定します。このフィールドは、setDataHandler(jakarta.activation.DataHandler) メソッドによってクリアされます。
        導入:
        JavaMail 1.5
    • コンストラクターの詳細

      • MimeBodyPart

        public MimeBodyPart()
        空の MimeBodyPart オブジェクトが作成されます。このボディパートは、マルチパートメッセージを作成するクライアントによって入力される場合があります。
      • MimeBodyPart

        public MimeBodyPart​(InputStreamSE is)
                     throws MessagingException
        指定された入力ストリームからデータを読み取って解析することにより、MimeBodyPart を構築します。パーサーは、指定された入力ストリームの終わりまでデータを消費します。入力ストリームは、有効な MIME ボディパーツの先頭で開始し、そのボディパーツの末尾で終了する必要があります。

        ボディパーツを区切る「境界」文字列を入力ストリームに含めてはならないことに注意してください。 MimeMultipart パーサーは、マルチパートストリームから各ボディパーツのバイトを抽出し、区切り文字列なしでこのコンストラクターにフィードすることを目的としています。

        パラメーター:
        is - 身体部分の入力ストリーム
        例外:
        MessagingException - 失敗
      • MimeBodyPart

        public MimeBodyPart​(InternetHeaders headers,
                            byte[] content)
                     throws MessagingException
        指定されたヘッダーとコンテンツバイトを使用して MimeBodyPart を構築します。

        プロバイダーによって使用されます。

        パラメーター:
        headers - このパートのヘッダー
        content - このパーツの本体を表すバイト。
        例外:
        MessagingException - 失敗
    • メソッドの詳細

      • getSize

        public int getSize()
                    throws MessagingException
        この本文部分のコンテンツのサイズをバイト単位で返します。サイズを判別できない場合は -1 を返します。

        この数値はコンテンツサイズの正確な測定値ではない場合があり、コンテンツの転送エンコードを考慮に入れる場合と考慮しない場合があることに注意してください。

        この実装は、content 配列のサイズ(null でない場合)を返します。contentStream が null でなく、available メソッドが正の数を返す場合、その数をサイズとして返します。それ以外の場合は、-1 を返します。

        次で指定:
        インターフェース PartgetSize 
        戻り値:
        バイト単位のサイズ。不明の場合は -1
        例外:
        MessagingException - 失敗
      • getLineCount

        public int getLineCount()
                         throws MessagingException
        この Part のコンテンツの行数を返します。この数を決定できない場合は -1 を返します。

        この数値は、コンテンツの長さの正確な測定値ではない場合があり、コンテンツの転送エンコーディングを考慮に入れる場合と考慮しない場合があることに注意してください。

        この実装は -1 を返します。

        次で指定:
        インターフェース PartgetLineCount 
        戻り値:
        行数。不明の場合は -1
        例外:
        MessagingException - 失敗
      • getContentType

        public StringSE getContentType()
                              throws MessagingException
        RFC822 の "Content-Type" ヘッダーフィールドの値を返します。これは、このボディパーツのコンテンツのコンテンツ型を表します。この値は null であってはなりません。このフィールドが使用できない場合は、"text/plain" を返す必要があります。

        この実装では、getHeader(name) を使用して必要なヘッダーフィールドを取得します。

        次で指定:
        インターフェース PartgetContentType 
        戻り値:
        このボディパーツのコンテンツ型
        例外:
        MessagingException - 失敗
        関連事項:
        DataHandler
      • isMimeType

        public boolean isMimeType​(StringSE mimeType)
                           throws MessagingException
        これは指定された MIME 型の一部ですか? このメソッドは、primaryType と subType のみを比較します。コンテンツ型のパラメーターは無視されます。

        例: このメソッドは、コンテンツ型 "text/plain" のパーツを "text/plain; charset=foobar" と比較するときに true を返します。

        mimeType の subType が特殊文字 "*" の場合、サブ型は比較中に無視されます。

        次で指定:
        インターフェース PartisMimeType 
        パラメーター:
        mimeType - テストする MIME 型
        戻り値:
        このパーツが指定された型である場合は true
        例外:
        MessagingException - 失敗
      • getDisposition

        public StringSE getDisposition()
                              throws MessagingException
        "Content-Disposition" ヘッダーフィールドから後処理を返します。これは、このパーツの性質を表しています。後処理は、部品をユーザーに提示する方法を示します。

        Content-Disposition フィールドが使用できない場合、null が返されます。

        この実装では、getHeader(name) を使用して必要なヘッダーフィールドを取得します。

        次で指定:
        インターフェース PartgetDisposition 
        戻り値:
        このパートの後処理。不明の場合は null
        例外:
        MessagingException - 失敗
        関連事項:
        headers
      • getEncoding

        public StringSE getEncoding()
                           throws MessagingException
        "Content-Transfer-Encoding" ヘッダーフィールドからコンテンツ転送エンコーディングを返します。ヘッダーが利用できない場合、またはその値がない場合は、null を返します。

        この実装では、getHeader(name) を使用して必要なヘッダーフィールドを取得します。

        次で指定:
        インターフェース MimePartgetEncoding 
        戻り値:
        content-transfer-encoding
        例外:
        MessagingException - 失敗
        関連事項:
        headers
      • getContentID

        public StringSE getContentID()
                            throws MessagingException
        "Content-ID" ヘッダーフィールドの値を返します。フィールドが使用できない場合、またはその値が存在しない場合は、null を返します。

        この実装では、getHeader(name) を使用して必要なヘッダーフィールドを取得します。

        次で指定:
        インターフェース MimePartgetContentID 
        戻り値:
        コンテンツ ID
        例外:
        MessagingException - 失敗
      • setContentID

        public void setContentID​(StringSE cid)
                          throws MessagingException
        このボディパーツの "Content-ID" ヘッダーフィールドを設定します。cid パラメーターが null の場合、既存の "Content-ID" は削除されます。
        パラメーター:
        cid - Content-ID
        例外:
        IllegalWriteException - 基本となる実装が変更をサポートしていない場合
        IllegalStateExceptionSE - このボディパーツが READ_ONLY フォルダーから取得された場合。
        MessagingException - その他の障害の場合
        導入:
        JavaMail 1.3
      • getContentMD5

        public StringSE getContentMD5()
                             throws MessagingException
        "Content-MD5" ヘッダーフィールドの値を返します。このフィールドが使用できない場合、またはその値が存在しない場合は、null を返します。

        この実装では、getHeader(name) を使用して必要なヘッダーフィールドを取得します。

        次で指定:
        インターフェース MimePartgetContentMD5 
        戻り値:
        content-MD5
        例外:
        MessagingException - 失敗
      • getContentLanguage

        public StringSE[] getContentLanguage()
                                    throws MessagingException
        この MimePart の Content-Language ヘッダーで指定された言語を取得します。Content-Language ヘッダーは RFC 1766 で定義されています。このヘッダーが使用できない場合、またはその値がない場合は、null を返します。

        この実装では、getHeader(name) を使用して必要なヘッダーフィールドを取得します。

        次で指定:
        インターフェース MimePartgetContentLanguage 
        戻り値:
        コンテンツ言語文字列の配列
        例外:
        MessagingException - 失敗
      • setContentLanguage

        public void setContentLanguage​(StringSE[] languages)
                                throws MessagingException
        この MimePart の Content-Language ヘッダーを設定します。Content-Language ヘッダーは RFC 1766 で定義されています。
        次で指定:
        インターフェース MimePartsetContentLanguage 
        パラメーター:
        languages - 言語タグの配列
        例外:
        IllegalWriteException - 基本となる実装が変更をサポートしていない場合
        MessagingException
      • getDescription

        public StringSE getDescription()
                              throws MessagingException
        このボディパーツの "Content-Description" ヘッダーフィールドを返します。これは通常、このパートにいくつかの説明情報を関連付けます。このフィールドが使用できない場合、またはその値が存在しない場合は、null を返します。

        Content-Description フィールドが RFC 2047 に従ってエンコードされている場合、デコードされ、Unicode に変換されます。デコードまたは変換が失敗した場合、生データはそのまま返されます。

        この実装では、getHeader(name) を使用して必要なヘッダーフィールドを取得します。

        次で指定:
        インターフェース PartgetDescription 
        戻り値:
        コンテンツの説明
        例外:
        MessagingException - 失敗
      • setDescription

        public void setDescription​(StringSE description)
                            throws MessagingException
        このボディパーツの "Content-Description" ヘッダーフィールドを設定します。description パラメーターが null の場合、既存の "Content-Description" フィールドは削除されます。

        説明に US-ASCII 以外の文字が含まれている場合、プラットフォームのデフォルトの文字セットを使用してエンコードされます。説明に US-ASCII 文字のみが含まれている場合、エンコードは行われず、そのまま使用されます。

        文字セットエンコーディングプロセスが失敗した場合、MessagingException がスローされ、MessagingException 内のネストされた例外のチェーンに UnsupportedEncodingException が含まれることに注意してください。

        次で指定:
        インターフェース PartsetDescription 
        パラメーター:
        description - コンテンツの説明
        例外:
        IllegalWriteException - 基本となる実装が変更をサポートしていない場合
        IllegalStateExceptionSE - このボディパーツが READ_ONLY フォルダーから取得された場合。
        MessagingException - さもないと ; 文字セット変換が失敗した場合、UnsupportedEncodingException が例外チェーンに含まれる可能性があります。
      • setDescription

        public void setDescription​(StringSE description,
                                   StringSE charset)
                            throws MessagingException
        このボディパーツの "Content-Description" ヘッダーフィールドを設定します。description パラメーターが null の場合、既存の "Content-Description" フィールドは削除されます。

        説明に US-ASCII 以外の文字が含まれている場合は、指定された文字セットを使用してエンコードされます。説明に US-ASCII 文字のみが含まれている場合、エンコードは行われず、そのまま使用されます。

        文字セットエンコーディングプロセスが失敗した場合、MessagingException がスローされ、MessagingException 内のネストされた例外のチェーンに UnsupportedEncodingException が含まれることに注意してください。

        パラメーター:
        description - 説明
        charset - エンコード用の文字セット
        例外:
        IllegalWriteException - 基本となる実装が変更をサポートしていない場合
        IllegalStateExceptionSE - このボディパーツが READ_ONLY フォルダーから取得された場合。
        MessagingException - さもないと ; 文字セット変換が失敗した場合、UnsupportedEncodingException が例外チェーンに含まれる可能性があります。
      • getFileName

        public StringSE getFileName()
                           throws MessagingException
        このボディパーツに関連付けられているファイル名を取得します。

        このボディパーツの "Content-Disposition" ヘッダーフィールドから "filename" パラメーターの値を返します。利用できない場合は、このボディパーツの "Content-Type" ヘッダーフィールドから "name" パラメーターの値を返します。両方が存在しない場合、null を返します。

        mail.mime.decodefilename システムプロパティが true に設定されている場合、MimeUtility.decodeText メソッドを使用してファイル名をデコードします。このようなエンコーディングは MIME 仕様ではサポートされていませんが、多くのメーラーはこの手法を使用して、ファイル名で非 ASCII 文字をサポートしています。このプロパティのデフォルト値は false です。

        次で指定:
        インターフェース PartgetFileName 
        戻り値:
        ファイル名
        例外:
        MessagingException - 失敗
      • setFileName

        public void setFileName​(StringSE filename)
                         throws MessagingException
        可能であれば、このボディパーツに関連付けられたファイル名を設定します。

        このボディパーツの "Content-Disposition" ヘッダーフィールドの "filename" パラメーターを設定します。古いメーラーとの互換性のために、"Content-Type" ヘッダーの "name" パラメーターも設定されています。

        mail.mime.encodefilename システムプロパティが true に設定されている場合、MimeUtility.encodeText メソッドを使用してファイル名をエンコードします。このようなエンコーディングは MIME 仕様ではサポートされていませんが、多くのメーラーはこの手法を使用して、ファイル名で非 ASCII 文字をサポートしています。このプロパティのデフォルト値は false です。

        次で指定:
        インターフェース PartsetFileName 
        パラメーター:
        filename - ファイル名
        例外:
        IllegalWriteException - 基本となる実装が変更をサポートしていない場合
        IllegalStateExceptionSE - このボディパーツが READ_ONLY フォルダーから取得された場合。
        MessagingException - その他の障害の場合
      • getInputStream

        public InputStreamSE getInputStream()
                                   throws IOExceptionSE,
                                          MessagingException
        このボディパーツの「コンテンツ」のデコードされた入力ストリームを返します。

        この実装は、DataHandler から入力ストリームを取得します。つまり、getDataHandler().getInputStream(); を呼び出します。

        次で指定:
        インターフェース PartgetInputStream 
        戻り値:
        InputStream
        例外:
        IOExceptionSE - これは通常、DataHandler によってスローされます。詳細については、jakarta.activation.DataHandler のドキュメントを参照してください。
        MessagingException - その他の障害の場合
        関連事項:
        getContentStream(), DataHandler.getInputStream()
      • getContentStream

        protected InputStreamSE getContentStream()
                                        throws MessagingException
        コンテンツの生のバイトを生成します。このメソッドは、コンテンツの DataHandler オブジェクトを作成するときに使用されます。Part コンテンツのみに個別の入力ストリームを提供できるサブクラスは、このメソッドをオーバーライドすることができます。

        戻り値:
        生のバイトを含む InputStream
        例外:
        MessagingException - 失敗
        関連事項:
        content, MimeMessage.getContentStream()
      • getRawInputStream

        public InputStreamSE getRawInputStream()
                                      throws MessagingException
        Content-Transfer-Encoding をそのままにして、InputStream を生データに戻します。このメソッドは、"Content-Transfer-Encoding" ヘッダーが正しくないか破損している場合に役立ちます。これにより、getInputStream メソッドまたは getContent メソッドが正しいデータを返すことができなくなります。このような場合、アプリケーションはこのメソッドを使用して、生データ自体をデコードしようとすることがあります。

        この実装は単に getContentStream メソッドを呼び出します。

        戻り値:
        生のバイトを含む InputStream
        例外:
        MessagingException - 失敗
        導入:
        JavaMail 1.2
        関連事項:
        getInputStream(), getContentStream()
      • getContent

        public ObjectSE getContent()
                          throws IOExceptionSE,
                                 MessagingException
        コンテンツを Java オブジェクトとして返します。返されるオブジェクトの型はもちろんコンテンツ自体に依存します。例: text/plain コンテンツのネイティブフォーマットは通常、String オブジェクトです。「マルチパート」コンテンツのネイティブ形式は常にマルチパートサブクラスです。DataHandler システムで認識されないコンテンツ型の場合、入力ストリームがコンテンツとして返されます。

        この実装は、DataHandler からコンテンツを取得します。つまり、getDataHandler().getContent(); を呼び出します。コンテンツがマルチパートまたはメッセージオブジェクトであり、ストリームの解析によって作成された場合、コンテンツへの変更が失われないように、オブジェクトはキャッシュされ、後続の呼び出しで返されます。

        次で指定:
        インターフェース PartgetContent 
        戻り値:
        オブジェクト
        例外:
        IOExceptionSE - これは通常、DataHandler によってスローされます。詳細については、jakarta.activation.DataHandler のドキュメントを参照してください。
        MessagingException - その他の障害の場合
        関連事項:
        DataHandler.getContent()
      • setDataHandler

        public void setDataHandler​(DataHandler dh)
                            throws MessagingException
        このメソッドは、このボディパーツのコンテンツを設定するメカニズムを提供します。指定された DataHandler オブジェクトは実際のコンテンツをラップする必要があります。
        次で指定:
        インターフェース PartsetDataHandler 
        パラメーター:
        dh - コンテンツの DataHandler
        例外:
        IllegalWriteException - 基本となる実装が変更をサポートしていない場合
        IllegalStateExceptionSE - このボディパーツが READ_ONLY フォルダーから取得された場合。
        MessagingException - その他の障害の場合
      • setContent

        public void setContent​(ObjectSE o,
                               StringSE type)
                        throws MessagingException
        このボディパーツのコンテンツを設定するための便利なメソッド。

        コンテンツは DataHandler オブジェクトにラップされています。これが正しく機能するためには、指定された型の DataContentHandler クラスが Jakarta Mail 実装で使用可能である必要があることに注意してください。つまり、setContent(foobar, "application/x-foobar") を実行するには、"application/x-foobar" 用の DataContentHandler をインストールする必要があります。詳細については、Java Activation フレームワークを参照してください。

        次で指定:
        インターフェース PartsetContent 
        パラメーター:
        o - コンテンツオブジェクト
        type - オブジェクトの MIME 型
        例外:
        IllegalWriteException - 基本となる実装が既存の値の変更をサポートしていない場合
        IllegalStateExceptionSE - このボディパーツが READ_ONLY フォルダーから取得された場合。
        MessagingException - その他の障害の場合
      • setText

        public void setText​(StringSE text)
                     throws MessagingException
        指定された文字列をこのパーツのコンテンツとして設定する便利なメソッド。MIME 型は "text/plain" です。文字列に US-ASCII 以外の文字が含まれている場合は、プラットフォームのデフォルトの文字セットを使用してエンコードされます。文字セットは、"charset" パラメーターの設定にも使用されます。

        text が大きい場合、このメソッドはすべての文字をスキャンして、使用する文字セットを決定する必要があるため、パフォーマンスが低下する可能性があることに注意してください。

        文字セットが既知の場合は、文字セットパラメーターを受け取る setText メソッドを使用します。

        次で指定:
        インターフェース MimePartsetText 
        次で指定:
        インターフェース PartsetText 
        パラメーター:
        text - 設定するテキストコンテンツ
        例外:
        MessagingException - エラーが発生した場合
        関連事項:
        setText(String text, String charset)
      • setText

        public void setText​(StringSE text,
                            StringSE charset)
                     throws MessagingException
        指定された文字列をこのパーツのコンテンツとして設定する便利なメソッド。MIME 型は "text/plain" で、指定された文字セットを使用します。指定された Unicode 文字列は、指定された文字セットを使用して文字セットエンコードされます。文字セットは、"charset" パラメーターの設定にも使用されます。
        次で指定:
        インターフェース MimePartsetText 
        パラメーター:
        text - 設定するテキストコンテンツ
        charset - テキストに使用する文字セット
        例外:
        MessagingException - エラーが発生した場合
      • setText

        public void setText​(StringSE text,
                            StringSE charset,
                            StringSE subtype)
                     throws MessagingException
        指定された文字列をこのパーツのコンテンツとして設定し、プライマリ MIME 型が "text" で指定された MIME サブ型を使用する便利なメソッド。指定された Unicode 文字列は、指定された文字セットを使用して文字セットエンコードされます。文字セットは、"charset" パラメーターの設定にも使用されます。
        次で指定:
        インターフェース MimePartsetText 
        パラメーター:
        text - 設定するテキストコンテンツ
        charset - テキストに使用する文字セット
        subtype - 使用する MIME サブ型 (例: "html" )
        例外:
        MessagingException - エラーが発生した場合
        導入:
        JavaMail 1.4
      • setContent

        public void setContent​(Multipart mp)
                        throws MessagingException
        このメソッドは、ボディパーツのコンテンツを Multipart オブジェクトに設定します。
        次で指定:
        インターフェース PartsetContent 
        パラメーター:
        mp - メッセージのコンテンツであるマルチパートオブジェクト
        例外:
        IllegalWriteException - 基本となる実装が既存の値の変更をサポートしていない場合。
        IllegalStateExceptionSE - このボディパーツが READ_ONLY フォルダーから取得された場合。
        MessagingException - その他の障害の場合
      • attachFile

        public void attachFile​(FileSE file)
                        throws IOExceptionSE,
                               MessagingException
        指定されたファイルを使用して、このパーツのデータを提供します。このパーツのファイル名として単純なファイル名が使用され、ファイル内のデータがこのパーツのデータとして使用されます。エンコーディングは、ファイルデータに対して適切に選択されます。このパーツの後処理は Part.ATTACHMENT に設定されています。
        パラメーター:
        file - 添付する File オブジェクト
        例外:
        IOExceptionSE - ファイルへのアクセスに関連するエラー
        MessagingException - メッセージ関連のエラー
        導入:
        JavaMail 1.4
      • attachFile

        public void attachFile​(StringSE file)
                        throws IOExceptionSE,
                               MessagingException
        指定されたファイルを使用して、このパーツのデータを提供します。このパーツのファイル名として単純なファイル名が使用され、ファイル内のデータがこのパーツのデータとして使用されます。エンコーディングは、ファイルデータに対して適切に選択されます。
        パラメーター:
        file - 添付するファイルの名前
        例外:
        IOExceptionSE - ファイルへのアクセスに関連するエラー
        MessagingException - メッセージ関連のエラー
        導入:
        JavaMail 1.4
      • attachFile

        public void attachFile​(FileSE file,
                               StringSE contentType,
                               StringSE encoding)
                        throws IOExceptionSE,
                               MessagingException
        指定された Content-Type および Content-Transfer-Encoding を持つ指定されたファイルを使用して、このパートのデータを提供します。contentType またはエンコーディングが null の場合、適切な値が選択されます。単純なファイル名がこのパートのファイル名として使用され、ファイル内のデータがこのパートのデータとして使用されます。このパートの配置は Part.ATTACHMENT に設定されます。
        パラメーター:
        file - 添付する File オブジェクト
        contentType - Content-Type、または null
        encoding - Content-Transfer-Encoding、または null
        例外:
        IOExceptionSE - ファイルへのアクセスに関連するエラー
        MessagingException - メッセージ関連のエラー
        導入:
        JavaMail 1.5
      • attachFile

        public void attachFile​(StringSE file,
                               StringSE contentType,
                               StringSE encoding)
                        throws IOExceptionSE,
                               MessagingException
        指定された Content-Type および Content-Transfer-Encoding を持つ指定されたファイルを使用して、このパートのデータを提供します。contentType またはエンコーディングが null の場合、適切な値が選択されます。単純なファイル名がこのパートのファイル名として使用され、ファイル内のデータがこのパートのデータとして使用されます。このパートの配置は Part.ATTACHMENT に設定されます。
        パラメーター:
        file - ファイルの名前
        contentType - Content-Type、または null
        encoding - Content-Transfer-Encoding、または null
        例外:
        IOExceptionSE - ファイルへのアクセスに関連するエラー
        MessagingException - メッセージ関連のエラー
        導入:
        JavaMail 1.5
      • saveFile

        public void saveFile​(FileSE file)
                      throws IOExceptionSE,
                             MessagingException
        このパーツの内容を指定したファイルに保存します。コンテンツはデコードされ、MIME ヘッダーなしで保存されます。
        パラメーター:
        file - 書き込む File オブジェクト
        例外:
        IOExceptionSE - ファイルへのアクセスに関連するエラー
        MessagingException - メッセージ関連のエラー
        導入:
        JavaMail 1.4
      • saveFile

        public void saveFile​(StringSE file)
                      throws IOExceptionSE,
                             MessagingException
        このパーツの内容を指定したファイルに保存します。コンテンツはデコードされ、MIME ヘッダーなしで保存されます。
        パラメーター:
        file - 書き込むファイルの名前
        例外:
        IOExceptionSE - ファイルへのアクセスに関連するエラー
        MessagingException - メッセージ関連のエラー
        導入:
        JavaMail 1.4
      • getHeader

        public StringSE[] getHeader​(StringSE name)
                           throws MessagingException
        この header_name のすべてのヘッダーを取得します。特定のヘッダーは US-ASCII 以外の文字を含み、デコードする必要がある場合、RFC 2047 に従ってエンコードされる場合があることに注意してください。
        次で指定:
        インターフェース PartgetHeader 
        パラメーター:
        name - ヘッダーの名前
        戻り値:
        ヘッダーの配列
        例外:
        MessagingException - 失敗
        関連事項:
        MimeUtility
      • getHeader

        public StringSE getHeader​(StringSE name,
                                StringSE delimiter)
                         throws MessagingException
        このヘッダー名のすべてのヘッダーを取得します。ヘッダーは区切り文字で区切られ、単一の文字列として返されます。区切り文字が null の場合、最初のヘッダーのみが返されます。
        次で指定:
        インターフェース MimePartgetHeader 
        パラメーター:
        name - このヘッダーの名前
        delimiter - 返された文字列のフィールド間の区切り文字
        戻り値:
        この名前のすべてのヘッダーの値フィールド
        例外:
        MessagingException - 失敗
      • setHeader

        public void setHeader​(StringSE name,
                              StringSE value)
                       throws MessagingException
        この header_name の値を設定します。既存のすべてのヘッダー値をこの新しい値で置き換えます。RFC 822 ヘッダーには US-ASCII 文字のみを含める必要があるため、US-ASCII 以外の文字を含むヘッダーは RFC 2047 のルールに従ってエンコードする必要があることに注意してください。
        次で指定:
        インターフェース PartsetHeader 
        パラメーター:
        name - ヘッダー名
        value - ヘッダー値
        例外:
        IllegalWriteException - 基本となる実装が既存の値の変更をサポートしていない場合
        MessagingException - その他の障害の場合
        関連事項:
        MimeUtility
      • addHeader

        public void addHeader​(StringSE name,
                              StringSE value)
                       throws MessagingException
        この値をこの header_name の既存の値に追加します。RFC 822 ヘッダーには US-ASCII 文字のみを含める必要があるため、US-ASCII 以外の文字を含むヘッダーは RFC 2047 のルールに従ってエンコードする必要があることに注意してください。
        次で指定:
        インターフェース PartaddHeader 
        パラメーター:
        name - ヘッダー名
        value - ヘッダー値
        例外:
        IllegalWriteException - 基本となる実装が既存の値の変更をサポートしていない場合
        MessagingException - その他の障害の場合
        関連事項:
        MimeUtility
      • removeHeader

        public void removeHeader​(StringSE name)
                          throws MessagingException
        この名前のすべてのヘッダーを削除します。
        次で指定:
        インターフェース PartremoveHeader 
        パラメーター:
        name - このヘッダーの名前
        例外:
        IllegalWriteException - 基本となる実装が既存の値の変更をサポートしていない場合
        MessagingException - その他の障害の場合
      • getMatchingHeaders

        public EnumerationSE<Header> getMatchingHeaders​(StringSE[] names)
                                               throws MessagingException
        この Message から一致するヘッダーを Header オブジェクトの列挙として返します。
        次で指定:
        インターフェース PartgetMatchingHeaders 
        パラメーター:
        names - 一致するヘッダー
        戻り値:
        Header オブジェクトの列挙
        例外:
        MessagingException - 失敗
      • getNonMatchingHeaders

        public EnumerationSE<Header> getNonMatchingHeaders​(StringSE[] names)
                                                  throws MessagingException
        このメッセージから一致しないヘッダーをヘッダーオブジェクトの列挙として返します。
        次で指定:
        インターフェース PartgetNonMatchingHeaders 
        パラメーター:
        names - 一致しないヘッダー
        戻り値:
        Header オブジェクトの列挙
        例外:
        MessagingException - 失敗
      • getAllHeaderLines

        public EnumerationSE<StringSE> getAllHeaderLines()
                                              throws MessagingException
        すべてのヘッダー行を文字列の列挙として取得します。ヘッダー行は、生の RFC 822 ヘッダー行で、「名前」フィールドと「値」フィールドの両方が含まれています。
        次で指定:
        インターフェース MimePartgetAllHeaderLines 
        戻り値:
        文字列の列挙
        例外:
        MessagingException - 失敗
      • getMatchingHeaderLines

        public EnumerationSE<StringSE> getMatchingHeaderLines​(StringSE[] names)
                                                   throws MessagingException
        一致するヘッダー行を文字列の列挙として取得します。ヘッダー行は、生の RFC 822 ヘッダー行で、「名前」フィールドと「値」フィールドの両方が含まれています。
        次で指定:
        インターフェース MimePartgetMatchingHeaderLines 
        パラメーター:
        names - 返すヘッダー
        戻り値:
        文字列の列挙
        例外:
        MessagingException - 失敗
      • getNonMatchingHeaderLines

        public EnumerationSE<StringSE> getNonMatchingHeaderLines​(StringSE[] names)
                                                      throws MessagingException
        一致しないヘッダー行を文字列の列挙として取得します。ヘッダー行は、生の RFC 822 ヘッダー行で、「名前」フィールドと「値」フィールドの両方が含まれています。
        次で指定:
        インターフェース MimePartgetNonMatchingHeaderLines 
        パラメーター:
        names - 返さないヘッダー
        戻り値:
        文字列の列挙
        例外:
        MessagingException - 失敗
      • updateHeaders

        protected void updateHeaders()
                              throws MessagingException
        この本文部分の内容を調べて、適切な MIME ヘッダーを更新してください。ここで設定される典型的なヘッダーは Content-Type と Content-Transfer-Encoding です。ヘッダーは、次の 2 つの場合に更新する必要があります。
        - メールアプリケーションによって作成されたメッセージは、内部ヘッダーを埋めるために、ある時点でこのメソッドをアクティブにする必要があります。
        - ストアから読み込まれたメッセージは、ストアからすべてのヘッダーを取得しているため、これは必要ありません。ただし、このメッセージが編集可能であり、コンテンツまたはメッセージ構造のいずれかに編集が加えられている場合は、ヘッダーを再同期する必要がある場合があります。
        どちらの場合も、このメソッドは通常 Message.saveChanges メソッドによって呼び出されます。

        cachedContent フィールドが null でない場合(つまり、マルチパートまたはメッセージオブジェクトを参照している場合)、そのオブジェクトは新しい DataHandler の設定に使用され、このオブジェクトの作成に使用されたストリームデータはすべて破棄され、cachedContent フィールドはクリアされます。

        例外:
        MessagingException - 失敗