クラス MimeBodyPart
- java.lang.ObjectSE
-
- jakarta.mail.BodyPart
-
- jakarta.mail.internet.MimeBodyPart
- 既知の直属サブクラス
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 クラスを使用して、これを実現できます。
setHeader
、addHeader
、addHeaderLine
メソッドの呼び出し元は、指定されたヘッダーの MIME 要件を適用する責任があります。さらに、これらのヘッダーフィールドは、トランスポートの行長制限(SMTP の場合は 1000 バイト)を超える場合は、送信する前に折りたたむ(折り返す)必要があります。受信したヘッダーが折りたたまれている可能性があります。アプリケーションは、必要に応じてヘッダーを折りたたんだり展開したりする責任があります。- 作成者:
- John Mani, Bill Shannon, Kanwar Oberoi
- 関連事項:
Part
,MimePart
,MimeUtility
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 protected ObjectSE
cachedContent
コンテンツがメッセージオブジェクトのマルチパートである場合は、含まれているオブジェクトへの変更が失われないように、ストリームの解析によって初めて作成されたときにコンテンツを保存します。protected byte[]
content
この Part のコンテンツのバイトを保持するバイト配列。protected InputStreamSE
contentStream
このボディパーツのデータが SharedInputStream インターフェースを実装する InputStream によって提供された場合、contentStream
はこのボディパーツのコンテンツを表す別のストリームです。protected DataHandler
dh
この Part のコンテンツを表す DataHandler オブジェクト。protected InternetHeaders
headers
このボディパーツのすべてのヘッダーを格納する InternetHeaders オブジェクト。クラス jakarta.mail.BodyPart から継承されたフィールド
parent, streamProvider
インターフェース jakarta.mail.Part から継承されたフィールド
ATTACHMENT, INLINE
コンストラクターのサマリー
コンストラクター コンストラクター 説明 MimeBodyPart()
空の MimeBodyPart オブジェクトが作成されます。MimeBodyPart(InternetHeaders headers, byte[] content)
指定されたヘッダーとコンテンツバイトを使用して MimeBodyPart を構築します。MimeBodyPart(InputStreamSE is)
指定された入力ストリームからデータを読み取って解析することにより、MimeBodyPart を構築します。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 void
addHeader(StringSE name, StringSE value)
この値をこの header_name の既存の値に追加します。void
addHeaderLine(StringSE line)
このボディパーツにヘッダー行を追加しますvoid
attachFile(FileSE file)
指定されたファイルを使用して、このパーツのデータを提供します。void
attachFile(FileSE file, StringSE contentType, StringSE encoding)
指定された Content-Type および Content-Transfer-Encoding で指定されたファイルを使用して、このパーツのデータを提供します。void
attachFile(StringSE file)
指定されたファイルを使用して、このパーツのデータを提供します。void
attachFile(StringSE file, StringSE contentType, StringSE encoding)
指定された Content-Type および Content-Transfer-Encoding で指定されたファイルを使用して、このパーツのデータを提供します。EnumerationSE<StringSE>
getAllHeaderLines()
すべてのヘッダー行を文字列の列挙として取得します。EnumerationSE<Header>
getAllHeaders()
この Message のすべてのヘッダーを、Header オブジェクトの列挙として返します。ObjectSE
getContent()
コンテンツを Java オブジェクトとして返します。StringSE
getContentID()
"Content-ID" ヘッダーフィールドの値を返します。StringSE[]
getContentLanguage()
この MimePart の Content-Language ヘッダーで指定された言語を取得します。StringSE
getContentMD5()
"Content-MD5" ヘッダーフィールドの値を返します。protected InputStreamSE
getContentStream()
コンテンツの生のバイトを生成します。StringSE
getContentType()
RFC 822 "Content-Type" ヘッダーフィールドの値を返します。DataHandler
getDataHandler()
このボディパーツのコンテンツの DataHandler を返します。StringSE
getDescription()
このボディパーツの "Content-Description" ヘッダーフィールドを返します。StringSE
getDisposition()
"Content-Disposition" ヘッダーフィールドから後処理を返します。StringSE
getEncoding()
"Content-Transfer-Encoding" ヘッダーフィールドからコンテンツ転送エンコーディングを返します。StringSE
getFileName()
このボディパーツに関連付けられているファイル名を取得します。StringSE[]
getHeader(StringSE name)
この header_name のすべてのヘッダーを取得します。StringSE
getHeader(StringSE name, StringSE delimiter)
このヘッダー名のすべてのヘッダーを取得します。ヘッダーは区切り文字で区切られ、単一の文字列として返されます。InputStreamSE
getInputStream()
このボディパーツの「コンテンツ」のデコードされた入力ストリームを返します。int
getLineCount()
この Part のコンテンツの行数を返します。EnumerationSE<StringSE>
getMatchingHeaderLines(StringSE[] names)
一致するヘッダー行を文字列の列挙として取得します。EnumerationSE<Header>
getMatchingHeaders(StringSE[] names)
この Message から一致するヘッダーを Header オブジェクトの列挙として返します。EnumerationSE<StringSE>
getNonMatchingHeaderLines(StringSE[] names)
一致しないヘッダー行を文字列の列挙として取得します。EnumerationSE<Header>
getNonMatchingHeaders(StringSE[] names)
このメッセージから一致しないヘッダーをヘッダーオブジェクトの列挙として返します。InputStreamSE
getRawInputStream()
Content-Transfer-Encoding をそのままにして、InputStream を生データに戻します。int
getSize()
この本文部分のコンテンツのサイズをバイト単位で返します。boolean
isMimeType(StringSE mimeType)
これは指定された MIME 型の一部ですか? このメソッドは、primaryType
とsubType
のみを比較します。void
removeHeader(StringSE name)
この名前のすべてのヘッダーを削除します。void
saveFile(FileSE file)
このパーツの内容を指定したファイルに保存します。void
saveFile(StringSE file)
このパーツの内容を指定したファイルに保存します。void
setContent(Multipart mp)
このメソッドは、ボディパーツのコンテンツを Multipart オブジェクトに設定します。void
setContent(ObjectSE o, StringSE type)
このボディパーツのコンテンツを設定するための便利なメソッド。void
setContentID(StringSE cid)
このボディパーツの "Content-ID" ヘッダーフィールドを設定します。void
setContentLanguage(StringSE[] languages)
この MimePart の Content-Language ヘッダーを設定します。void
setContentMD5(StringSE md5)
このボディパーツの "Content-MD5" ヘッダーフィールドを設定します。void
setDataHandler(DataHandler dh)
このメソッドは、このボディパーツのコンテンツを設定するメカニズムを提供します。void
setDescription(StringSE description)
このボディパーツの "Content-Description" ヘッダーフィールドを設定します。void
setDescription(StringSE description, StringSE charset)
このボディパーツの "Content-Description" ヘッダーフィールドを設定します。void
setDisposition(StringSE disposition)
このボディパーツの "Content-Disposition" ヘッダーフィールドで後処理を設定します。void
setFileName(StringSE filename)
可能であれば、このボディパーツに関連付けられたファイル名を設定します。void
setHeader(StringSE name, StringSE value)
この header_name の値を設定します。void
setText(StringSE text)
指定された文字列をこのパーツのコンテンツとして設定する便利なメソッド。MIME 型は "text/plain" です。void
setText(StringSE text, StringSE charset)
指定された文字列をこのパーツのコンテンツとして設定する便利なメソッド。MIME 型は "text/plain" で、指定された文字セットを使用します。void
setText(StringSE text, StringSE charset, StringSE subtype)
指定された String をこのパートのコンテンツとして設定する簡易メソッド。プライマリ MIME 型は「テキスト」で、指定された MIME サブ型を使用します。protected void
updateHeaders()
この本文部分の内容を調べて、適切な MIME ヘッダーを更新してください。void
writeTo(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 を返します。- 次で指定:
- インターフェース
Part
のgetSize
- 戻り値:
- バイト単位のサイズ。不明の場合は -1
- 例外:
MessagingException
- 失敗
getLineCount
public int getLineCount() throws MessagingException
この Part のコンテンツの行数を返します。この数を決定できない場合は -1 を返します。この数値は、コンテンツの長さの正確な測定値ではない場合があり、コンテンツの転送エンコーディングを考慮に入れる場合と考慮しない場合があることに注意してください。
この実装は -1 を返します。
- 次で指定:
- インターフェース
Part
のgetLineCount
- 戻り値:
- 行数。不明の場合は -1
- 例外:
MessagingException
- 失敗
getContentType
public StringSE getContentType() throws MessagingException
RFC822 の "Content-Type" ヘッダーフィールドの値を返します。これは、このボディパーツのコンテンツのコンテンツ型を表します。この値は null であってはなりません。このフィールドが使用できない場合は、"text/plain" を返す必要があります。この実装では、
getHeader(name)
を使用して必要なヘッダーフィールドを取得します。- 次で指定:
- インターフェース
Part
のgetContentType
- 戻り値:
- このボディパーツのコンテンツ型
- 例外:
MessagingException
- 失敗- 関連事項:
DataHandler
isMimeType
public boolean isMimeType(StringSE mimeType) throws MessagingException
これは指定された MIME 型の一部ですか? このメソッドは、primaryType
とsubType
のみを比較します。コンテンツ型のパラメーターは無視されます。例: このメソッドは、コンテンツ型 "text/plain" のパーツを "text/plain; charset=foobar" と比較するときに
true
を返します。mimeType
のsubType
が特殊文字 "*" の場合、サブ型は比較中に無視されます。- 次で指定:
- インターフェース
Part
のisMimeType
- パラメーター:
mimeType
- テストする MIME 型- 戻り値:
- このパーツが指定された型である場合は true
- 例外:
MessagingException
- 失敗
getDisposition
public StringSE getDisposition() throws MessagingException
"Content-Disposition" ヘッダーフィールドから後処理を返します。これは、このパーツの性質を表しています。後処理は、部品をユーザーに提示する方法を示します。Content-Disposition フィールドが使用できない場合、null が返されます。
この実装では、
getHeader(name)
を使用して必要なヘッダーフィールドを取得します。- 次で指定:
- インターフェース
Part
のgetDisposition
- 戻り値:
- このパートの後処理。不明の場合は null
- 例外:
MessagingException
- 失敗- 関連事項:
headers
setDisposition
public void setDisposition(StringSE disposition) throws MessagingException
このボディパーツの "Content-Disposition" ヘッダーフィールドで後処理を設定します。後処理が null の場合、既存の "Content-Disposition" ヘッダーフィールドは削除されます。- 次で指定:
- インターフェース
Part
のsetDisposition
- パラメーター:
disposition
- このパートの処分- 例外:
IllegalWriteException
- 基本となる実装が変更をサポートしていない場合IllegalStateExceptionSE
- このボディパーツが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合- 関連事項:
Part.ATTACHMENT
,Part.INLINE
,Part.setFileName(java.lang.String)
getEncoding
public StringSE getEncoding() throws MessagingException
"Content-Transfer-Encoding" ヘッダーフィールドからコンテンツ転送エンコーディングを返します。ヘッダーが利用できない場合、またはその値がない場合は、null
を返します。この実装では、
getHeader(name)
を使用して必要なヘッダーフィールドを取得します。- 次で指定:
- インターフェース
MimePart
のgetEncoding
- 戻り値:
- content-transfer-encoding
- 例外:
MessagingException
- 失敗- 関連事項:
headers
getContentID
public StringSE getContentID() throws MessagingException
"Content-ID" ヘッダーフィールドの値を返します。フィールドが使用できない場合、またはその値が存在しない場合は、null
を返します。この実装では、
getHeader(name)
を使用して必要なヘッダーフィールドを取得します。- 次で指定:
- インターフェース
MimePart
のgetContentID
- 戻り値:
- コンテンツ 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)
を使用して必要なヘッダーフィールドを取得します。- 次で指定:
- インターフェース
MimePart
のgetContentMD5
- 戻り値:
- content-MD5
- 例外:
MessagingException
- 失敗
setContentMD5
public void setContentMD5(StringSE md5) throws MessagingException
このボディパーツの "Content-MD5" ヘッダーフィールドを設定します。- 次で指定:
- インターフェース
MimePart
のsetContentMD5
- パラメーター:
md5
- MD5 値- 例外:
IllegalWriteException
- 基本となる実装が変更をサポートしていない場合IllegalStateExceptionSE
- このボディパーツが READ_ONLY フォルダーから取得された場合。MessagingException
getContentLanguage
public StringSE[] getContentLanguage() throws MessagingException
この MimePart の Content-Language ヘッダーで指定された言語を取得します。Content-Language ヘッダーは RFC 1766 で定義されています。このヘッダーが使用できない場合、またはその値がない場合は、null
を返します。この実装では、
getHeader(name)
を使用して必要なヘッダーフィールドを取得します。- 次で指定:
- インターフェース
MimePart
のgetContentLanguage
- 戻り値:
- コンテンツ言語文字列の配列
- 例外:
MessagingException
- 失敗
setContentLanguage
public void setContentLanguage(StringSE[] languages) throws MessagingException
この MimePart の Content-Language ヘッダーを設定します。Content-Language ヘッダーは RFC 1766 で定義されています。- 次で指定:
- インターフェース
MimePart
のsetContentLanguage
- パラメーター:
languages
- 言語タグの配列- 例外:
IllegalWriteException
- 基本となる実装が変更をサポートしていない場合MessagingException
getDescription
public StringSE getDescription() throws MessagingException
このボディパーツの "Content-Description" ヘッダーフィールドを返します。これは通常、このパートにいくつかの説明情報を関連付けます。このフィールドが使用できない場合、またはその値が存在しない場合は、null を返します。Content-Description フィールドが RFC 2047 に従ってエンコードされている場合、デコードされ、Unicode に変換されます。デコードまたは変換が失敗した場合、生データはそのまま返されます。
この実装では、
getHeader(name)
を使用して必要なヘッダーフィールドを取得します。- 次で指定:
- インターフェース
Part
のgetDescription
- 戻り値:
- コンテンツの説明
- 例外:
MessagingException
- 失敗
setDescription
public void setDescription(StringSE description) throws MessagingException
このボディパーツの "Content-Description" ヘッダーフィールドを設定します。description パラメーターがnull
の場合、既存の "Content-Description" フィールドは削除されます。説明に US-ASCII 以外の文字が含まれている場合、プラットフォームのデフォルトの文字セットを使用してエンコードされます。説明に US-ASCII 文字のみが含まれている場合、エンコードは行われず、そのまま使用されます。
文字セットエンコーディングプロセスが失敗した場合、MessagingException がスローされ、MessagingException 内のネストされた例外のチェーンに UnsupportedEncodingException が含まれることに注意してください。
- 次で指定:
- インターフェース
Part
のsetDescription
- パラメーター:
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 です。- 次で指定:
- インターフェース
Part
のgetFileName
- 戻り値:
- ファイル名
- 例外:
MessagingException
- 失敗
setFileName
public void setFileName(StringSE filename) throws MessagingException
可能であれば、このボディパーツに関連付けられたファイル名を設定します。このボディパーツの "Content-Disposition" ヘッダーフィールドの "filename" パラメーターを設定します。古いメーラーとの互換性のために、"Content-Type" ヘッダーの "name" パラメーターも設定されています。
mail.mime.encodefilename
システムプロパティが true に設定されている場合、MimeUtility.encodeText
メソッドを使用してファイル名をエンコードします。このようなエンコーディングは MIME 仕様ではサポートされていませんが、多くのメーラーはこの手法を使用して、ファイル名で非 ASCII 文字をサポートしています。このプロパティのデフォルト値は false です。- 次で指定:
- インターフェース
Part
のsetFileName
- パラメーター:
filename
- ファイル名- 例外:
IllegalWriteException
- 基本となる実装が変更をサポートしていない場合IllegalStateExceptionSE
- このボディパーツが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合
getInputStream
public InputStreamSE getInputStream() throws IOExceptionSE, MessagingException
このボディパーツの「コンテンツ」のデコードされた入力ストリームを返します。この実装は、DataHandler から入力ストリームを取得します。つまり、getDataHandler().getInputStream(); を呼び出します。
- 次で指定:
- インターフェース
Part
のgetInputStream
- 戻り値:
- 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()
getDataHandler
public DataHandler getDataHandler() throws MessagingException
このボディパーツのコンテンツの DataHandler を返します。ここで提供される実装は、MimeMessage の実装と同じように機能します。
- 次で指定:
- インターフェース
Part
のgetDataHandler
- 戻り値:
- コンテンツの DataHandler
- 例外:
MessagingException
- 失敗- 関連事項:
MimeMessage.getDataHandler()
getContent
public ObjectSE getContent() throws IOExceptionSE, MessagingException
コンテンツを Java オブジェクトとして返します。返されるオブジェクトの型はもちろんコンテンツ自体に依存します。例: text/plain コンテンツのネイティブフォーマットは通常、String オブジェクトです。「マルチパート」コンテンツのネイティブ形式は常にマルチパートサブクラスです。DataHandler システムで認識されないコンテンツ型の場合、入力ストリームがコンテンツとして返されます。この実装は、DataHandler からコンテンツを取得します。つまり、getDataHandler().getContent(); を呼び出します。コンテンツがマルチパートまたはメッセージオブジェクトであり、ストリームの解析によって作成された場合、コンテンツへの変更が失われないように、オブジェクトはキャッシュされ、後続の呼び出しで返されます。
- 次で指定:
- インターフェース
Part
のgetContent
- 戻り値:
- オブジェクト
- 例外:
IOExceptionSE
- これは通常、DataHandler によってスローされます。詳細については、jakarta.activation.DataHandler のドキュメントを参照してください。MessagingException
- その他の障害の場合- 関連事項:
DataHandler.getContent()
setDataHandler
public void setDataHandler(DataHandler dh) throws MessagingException
このメソッドは、このボディパーツのコンテンツを設定するメカニズムを提供します。指定された DataHandler オブジェクトは実際のコンテンツをラップする必要があります。- 次で指定:
- インターフェース
Part
のsetDataHandler
- パラメーター:
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 フレームワークを参照してください。- 次で指定:
- インターフェース
Part
のsetContent
- パラメーター:
o
- コンテンツオブジェクトtype
- オブジェクトの MIME 型- 例外:
IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合IllegalStateExceptionSE
- このボディパーツが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合
setText
public void setText(StringSE text) throws MessagingException
指定された文字列をこのパーツのコンテンツとして設定する便利なメソッド。MIME 型は "text/plain" です。文字列に US-ASCII 以外の文字が含まれている場合は、プラットフォームのデフォルトの文字セットを使用してエンコードされます。文字セットは、"charset" パラメーターの設定にも使用されます。text
が大きい場合、このメソッドはすべての文字をスキャンして、使用する文字セットを決定する必要があるため、パフォーマンスが低下する可能性があることに注意してください。文字セットが既知の場合は、文字セットパラメーターを受け取る
setText
メソッドを使用します。- 次で指定:
- インターフェース
MimePart
のsetText
- 次で指定:
- インターフェース
Part
のsetText
- パラメーター:
text
- 設定するテキストコンテンツ- 例外:
MessagingException
- エラーが発生した場合- 関連事項:
setText(String text, String charset)
setText
public void setText(StringSE text, StringSE charset) throws MessagingException
指定された文字列をこのパーツのコンテンツとして設定する便利なメソッド。MIME 型は "text/plain" で、指定された文字セットを使用します。指定された Unicode 文字列は、指定された文字セットを使用して文字セットエンコードされます。文字セットは、"charset" パラメーターの設定にも使用されます。- 次で指定:
- インターフェース
MimePart
のsetText
- パラメーター:
text
- 設定するテキストコンテンツcharset
- テキストに使用する文字セット- 例外:
MessagingException
- エラーが発生した場合
setText
public void setText(StringSE text, StringSE charset, StringSE subtype) throws MessagingException
指定された文字列をこのパーツのコンテンツとして設定し、プライマリ MIME 型が "text" で指定された MIME サブ型を使用する便利なメソッド。指定された Unicode 文字列は、指定された文字セットを使用して文字セットエンコードされます。文字セットは、"charset" パラメーターの設定にも使用されます。- 次で指定:
- インターフェース
MimePart
のsetText
- パラメーター:
text
- 設定するテキストコンテンツcharset
- テキストに使用する文字セットsubtype
- 使用する MIME サブ型 (例: "html" )- 例外:
MessagingException
- エラーが発生した場合- 導入:
- JavaMail 1.4
setContent
public void setContent(Multipart mp) throws MessagingException
このメソッドは、ボディパーツのコンテンツを Multipart オブジェクトに設定します。- 次で指定:
- インターフェース
Part
のsetContent
- パラメーター:
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、または nullencoding
- 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、または nullencoding
- 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
writeTo
public void writeTo(OutputStreamSE os) throws IOExceptionSE, MessagingException
本文部分を RFC 822 形式のストリームとして出力します。- 次で指定:
- インターフェース
Part
のwriteTo
- パラメーター:
os
- 書き込むストリーム- 例外:
IOExceptionSE
- ストリームへの書き込みでエラーが発生した場合、または jakarta.activation レイヤーによってエラーが生成された場合。MessagingException
- その他の障害の場合- 関連事項:
DataHandler.writeTo(java.io.OutputStream)
getHeader
public StringSE[] getHeader(StringSE name) throws MessagingException
この header_name のすべてのヘッダーを取得します。特定のヘッダーは US-ASCII 以外の文字を含み、デコードする必要がある場合、RFC 2047 に従ってエンコードされる場合があることに注意してください。- 次で指定:
- インターフェース
Part
のgetHeader
- パラメーター:
name
- ヘッダーの名前- 戻り値:
- ヘッダーの配列
- 例外:
MessagingException
- 失敗- 関連事項:
MimeUtility
getHeader
public StringSE getHeader(StringSE name, StringSE delimiter) throws MessagingException
このヘッダー名のすべてのヘッダーを取得します。ヘッダーは区切り文字で区切られ、単一の文字列として返されます。区切り文字がnull
の場合、最初のヘッダーのみが返されます。- 次で指定:
- インターフェース
MimePart
のgetHeader
- パラメーター:
name
- このヘッダーの名前delimiter
- 返された文字列のフィールド間の区切り文字- 戻り値:
- この名前のすべてのヘッダーの値フィールド
- 例外:
MessagingException
- 失敗
setHeader
public void setHeader(StringSE name, StringSE value) throws MessagingException
この header_name の値を設定します。既存のすべてのヘッダー値をこの新しい値で置き換えます。RFC 822 ヘッダーには US-ASCII 文字のみを含める必要があるため、US-ASCII 以外の文字を含むヘッダーは RFC 2047 のルールに従ってエンコードする必要があることに注意してください。- 次で指定:
- インターフェース
Part
のsetHeader
- パラメーター:
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 のルールに従ってエンコードする必要があることに注意してください。- 次で指定:
- インターフェース
Part
のaddHeader
- パラメーター:
name
- ヘッダー名value
- ヘッダー値- 例外:
IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合MessagingException
- その他の障害の場合- 関連事項:
MimeUtility
removeHeader
public void removeHeader(StringSE name) throws MessagingException
この名前のすべてのヘッダーを削除します。- 次で指定:
- インターフェース
Part
のremoveHeader
- パラメーター:
name
- このヘッダーの名前- 例外:
IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合MessagingException
- その他の障害の場合
getAllHeaders
public EnumerationSE<Header> getAllHeaders() throws MessagingException
この Message のすべてのヘッダーを、Header オブジェクトの列挙として返します。- 次で指定:
- インターフェース
Part
のgetAllHeaders
- 戻り値:
- Header オブジェクトの列挙
- 例外:
MessagingException
- 失敗
getMatchingHeaders
public EnumerationSE<Header> getMatchingHeaders(StringSE[] names) throws MessagingException
この Message から一致するヘッダーを Header オブジェクトの列挙として返します。- 次で指定:
- インターフェース
Part
のgetMatchingHeaders
- パラメーター:
names
- 一致するヘッダー- 戻り値:
- Header オブジェクトの列挙
- 例外:
MessagingException
- 失敗
getNonMatchingHeaders
public EnumerationSE<Header> getNonMatchingHeaders(StringSE[] names) throws MessagingException
このメッセージから一致しないヘッダーをヘッダーオブジェクトの列挙として返します。- 次で指定:
- インターフェース
Part
のgetNonMatchingHeaders
- パラメーター:
names
- 一致しないヘッダー- 戻り値:
- Header オブジェクトの列挙
- 例外:
MessagingException
- 失敗
addHeaderLine
public void addHeaderLine(StringSE line) throws MessagingException
このボディパーツにヘッダー行を追加します- 次で指定:
- インターフェース
MimePart
のaddHeaderLine
- パラメーター:
line
- 追加する行- 例外:
IllegalWriteException
- 基本となる実装が変更をサポートしていない場合MessagingException
- その他の障害の場合
getAllHeaderLines
public EnumerationSE<StringSE> getAllHeaderLines() throws MessagingException
すべてのヘッダー行を文字列の列挙として取得します。ヘッダー行は、生の RFC 822 ヘッダー行で、「名前」フィールドと「値」フィールドの両方が含まれています。- 次で指定:
- インターフェース
MimePart
のgetAllHeaderLines
- 戻り値:
- 文字列の列挙
- 例外:
MessagingException
- 失敗
getMatchingHeaderLines
public EnumerationSE<StringSE> getMatchingHeaderLines(StringSE[] names) throws MessagingException
一致するヘッダー行を文字列の列挙として取得します。ヘッダー行は、生の RFC 822 ヘッダー行で、「名前」フィールドと「値」フィールドの両方が含まれています。- 次で指定:
- インターフェース
MimePart
のgetMatchingHeaderLines
- パラメーター:
names
- 返すヘッダー- 戻り値:
- 文字列の列挙
- 例外:
MessagingException
- 失敗
getNonMatchingHeaderLines
public EnumerationSE<StringSE> getNonMatchingHeaderLines(StringSE[] names) throws MessagingException
一致しないヘッダー行を文字列の列挙として取得します。ヘッダー行は、生の RFC 822 ヘッダー行で、「名前」フィールドと「値」フィールドの両方が含まれています。- 次で指定:
- インターフェース
MimePart
のgetNonMatchingHeaderLines
- パラメーター:
names
- 返さないヘッダー- 戻り値:
- 文字列の列挙
- 例外:
MessagingException
- 失敗
updateHeaders
protected void updateHeaders() throws MessagingException
この本文部分の内容を調べて、適切な MIME ヘッダーを更新してください。ここで設定される典型的なヘッダーはContent-Type
とContent-Transfer-Encoding
です。ヘッダーは、次の 2 つの場合に更新する必要があります。
- メールアプリケーションによって作成されたメッセージは、内部ヘッダーを埋めるために、ある時点でこのメソッドをアクティブにする必要があります。
- ストアから読み込まれたメッセージは、ストアからすべてのヘッダーを取得しているため、これは必要ありません。ただし、このメッセージが編集可能であり、コンテンツまたはメッセージ構造のいずれかに編集が加えられている場合は、ヘッダーを再同期する必要がある場合があります。
どちらの場合も、このメソッドは通常Message.saveChanges
メソッドによって呼び出されます。cachedContent
フィールドが null でない場合(つまり、マルチパートまたはメッセージオブジェクトを参照している場合)、そのオブジェクトは新しい DataHandler の設定に使用され、このオブジェクトの作成に使用されたストリームデータはすべて破棄され、cachedContent
フィールドはクリアされます。- 例外:
MessagingException
- 失敗