|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjavax.mail.BodyPart
javax.mail.internet.MimeBodyPart
public class MimeBodyPart
このクラスは MIME 本文部分を表します。
これは BodyPart
抽象クラスと MimePart
インタフェースを実装します。
MimeBodyParts は MimeMultipart オブジェクトに含まれます。
MimeBodyPart は InternetHeaders
クラスを使用し、
本文部分のヘッダを構文解析し、格納します。
RFC822 ヘッダフィールドは US-ASCII 文字だけを含まなければなりません。
MIME では ASCII 以外の文字をエンコーディングする事により、
特定のヘッダの特定の部分に設定可能です。RFC 2047 はこの処理の規則を指定します。
このパッケージで提供される MimeUtility クラスを用いて、この処理を行うことができます。
setHeader
、addHeader
、及び addHeaderLine
メソッドの
呼び出し側は指定されたヘッダが MIME 要件に従う事を保証しなければなりません。
又、これらのヘッダフィールドが転送における行の長さ制限 (SMTP の場合は 1000バイト) を超える場合は、
送信の前に折りたたむ (ラップする) 必要があります。受信ヘッダは折りたたまれている可能性があります。
アプリケーションはヘッダを適切に折りたたみ、展開する責任があります。
Part
,
MimePart
,
MimeUtility
フィールドの概要 | |
---|---|
protected byte[] |
content
この Part の内容のバイトを保持するバイト配列です。 |
protected InputStream |
contentStream
この本文部分のデータが SharedInputStream インタフェースを実装する InputStream により供給された場合、 contentStream がこの本文部分の内容を表すもう 1 つのストリームです。 |
protected DataHandler |
dh
この Part の内容を表す DataHandler オブジェクトです。 |
protected InternetHeaders |
headers
この本文部分の全てのヘッダを格納する InternetHeaders オブジェクトです。 |
クラス javax.mail.BodyPart から継承されたフィールド |
---|
parent |
インタフェース javax.mail.Part から継承されたフィールド |
---|
ATTACHMENT, INLINE |
コンストラクタの概要 | |
---|---|
MimeBodyPart()
空の MimeBodyPart オブジェクトが作成されます。 |
|
MimeBodyPart(InputStream is)
指定された入力ストリームからのデータを読み取り、 構文解析することにより、MimeBodyPart を構築します。 |
|
MimeBodyPart(InternetHeaders headers,
byte[] content)
指定されたヘッダと内容バイトを使用して MimeBodyPart を構築します。 |
メソッドの概要 | |
---|---|
void |
addHeader(String name,
String value)
この値をこの header_name の既存値に追加します。 |
void |
addHeaderLine(String line)
ヘッダ行をこの本文部分に追加します。 |
Enumeration |
getAllHeaderLines()
全てのヘッダ行を String の列挙型として取得します。 |
Enumeration |
getAllHeaders()
この Message の全てのヘッダを Header オブジェクトの列挙型として返します。 |
Object |
getContent()
内容を java オブジェクトとして返します。 |
String |
getContentID()
"Content-ID" ヘッダフィールドの値を返します。 |
String[] |
getContentLanguage()
この MimePart の Content-Language ヘッダで指定される言語を取得します。 |
String |
getContentMD5()
"Content-MD5" ヘッダフィールドの値を返します。 |
protected InputStream |
getContentStream()
内容の生バイトを生成します。 |
String |
getContentType()
RFC 822 "Content-Type" ヘッダフィールドの値を返します。 |
DataHandler |
getDataHandler()
この本文部分の内容の DataHandler を返します。 |
String |
getDescription()
この本文部分の "Content-Description" ヘッダフィールドを返します。 |
String |
getDisposition()
"Content-Disposition" ヘッダフィールドの値を返します。 |
String |
getEncoding()
"Content-Transfer-Encoding" ヘッダフィールドからの内容転送エンコーディングを返します。 |
String |
getFileName()
この本文部分に関連付けられたファイル名を取得します。 |
String[] |
getHeader(String name)
この header_name の全てのヘッダを取得します。 |
String |
getHeader(String name,
String delimiter)
このヘッダ名の全てのヘッダを取得し、区切り文字で区切られたヘッダが単一の String として返されます、 区切り文字が null の場合は、最初のヘッダだけが返されます。 |
InputStream |
getInputStream()
この本文部分の "content" に対するデコードされた入力ストリームを返します。 |
int |
getLineCount()
この Part の内容の行数を返します。 |
Enumeration |
getMatchingHeaderLines(String[] names)
一致するヘッダ行を String の列挙型として取得します。 |
Enumeration |
getMatchingHeaders(String[] names)
この Message の一致するヘッダを Header オブジェクトの列挙型として返します。 |
Enumeration |
getNonMatchingHeaderLines(String[] names)
一致しないヘッダ行を String の列挙型として取得します。 |
Enumeration |
getNonMatchingHeaders(String[] names)
この Message の一致しないヘッダを Header オブジェクトの列挙型として返します。 |
InputStream |
getRawInputStream()
任意の Content-Transfer-Encoding をそのままにして、生データへの InputStream を返します。 |
int |
getSize()
この本文部分の内容サイズをバイト単位で返します。 |
boolean |
isMimeType(String mimeType)
指定された MIME タイプの Part かどうかを識別します。 |
void |
removeHeader(String name)
この名前を持つ全てのヘッダを削除します。 |
void |
setContent(Multipart mp)
このメソッドは本文部分の内容を Multipart オブジェクトに設定します。 |
void |
setContent(Object o,
String type)
この本文部分の内容を設定する為の簡易メソッドです。 |
void |
setContentID(String cid)
Set the "Content-ID" header field of this body part. |
void |
setContentLanguage(String[] languages)
この MimePart の Content-Language ヘッダを設定します。 |
void |
setContentMD5(String md5)
この本文部分の "Content-MD5" ヘッダフィールドを設定します。 |
void |
setDataHandler(DataHandler dh)
このメソッドは、この本文部分の内容を設定する為の仕組みを提供します。 |
void |
setDescription(String description)
この本文部分の "Content-Description" ヘッダフィールドを設定します。 |
void |
setDescription(String description,
String charset)
この本文部分の "Content-Description" ヘッダを設定します。 |
void |
setDisposition(String disposition)
この本文部分の "Content-Disposition" ヘッダフィールドを設定します。 |
void |
setFileName(String filename)
可能であれば、この本文部分に関連付けられたファイル名を設定します。 |
void |
setHeader(String name,
String value)
この header_name の値を設定します。 |
void |
setText(String text)
指定された String をこの部分のコンテンツとして、 "text/plain" の MIME タイプで設定する簡易メソッドです。 |
void |
setText(String text,
String charset)
"text/plain" の MIME タイプ及び指定された文字セットを使用し、 指定された String をこの部分のコンテンツとして設定する簡易メソッドです。 |
protected void |
updateHeaders()
この本文部分の内容を検査し、適切な MIME ヘッダを更新します。 |
void |
writeTo(OutputStream os)
本文部分を RFC 822 形式のストリームとして出力します。 |
クラス javax.mail.BodyPart から継承されたメソッド |
---|
getParent |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
protected DataHandler dh
protected byte[] content
protected InputStream contentStream
contentStream
がこの本文部分の内容を表すもう 1 つのストリームです。
この場合、content
は null です。
protected InternetHeaders headers
コンストラクタの詳細 |
---|
public MimeBodyPart()
public MimeBodyPart(InputStream is) throws MessagingException
本文部分を区切る "境界" 文字列は入力ストリームに含まれていてはなりません。 MimeMultipart パーサは maultipart ストリームから各本文部分のバイトを抽出し、 区切り文字列なしでこのコンストラクタに与えます。
is
- 本文部分の入力ストリーム
MessagingException
public MimeBodyPart(InternetHeaders headers, byte[] content)
プロバイダが使用します。
headers
- この部分のヘッダcontent
- この部分の本文を表すバイトメソッドの詳細 |
---|
public int getSize() throws MessagingException
この数値は内容サイズの正確な測定値でない可能性があり、 内容の転送エンコーディングを示す事もそうでない事もある点に注意して下さい。
この実装は、content
配列 のサイズ (null でない場合)、
又は contentStream
が null でなく、
available
メソッドが正の数を返す場合、
その数をサイズとして返します。それ以外の場合は -1 を返します。
Part
内の getSize
MessagingException
public int getLineCount() throws MessagingException
この数値は内容の長さの正確な測定値でない可能性があり、 内容の転送エンコーディングを示す事もそうでない事もある点に注意して下さい。
この実装は -1 を返します。
Part
内の getLineCount
MessagingException
public String getContentType() throws MessagingException
この実装は getHeader(name)
を使用し、
必要なヘッダフィールドを取得します。
Part
内の getContentType
MessagingException
javax.activation.DataHandler
public final boolean isMimeType(String mimeType) throws MessagingException
primaryType
と subType
のみを比較します。
コンテンツ形式のパラメータは無視されます。
例えば、コンテンツ形式 "text/plain" と "text/plain; charset=Shift_JIS" の Part を比較すると、
このメソッドは true
を返します。
mimeType
の subType
が特殊文字 '*' の場合、
比較時にサブタイプは無視されます。
Part
内の isMimeType
MessagingException
public String getDisposition() throws MessagingException
Content-Disposition フィールドが使用できない場合は null が返されます。
この実装は getHeader(name)
を使用し、必要なヘッダフィールドを取得します。
Part
内の getDisposition
MessagingException
headers
public void setDisposition(String disposition) throws MessagingException
Part
内の setDisposition
disposition
- この Part の処置
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- この本文部分が READ_ONLY フォルダから取得された場合
MessagingException
Part.ATTACHMENT
,
Part.INLINE
,
Part.setFileName(java.lang.String)
public String getEncoding() throws MessagingException
null
を返します。
この実装は getHeader(name)
を使用し、必要なヘッダフィールドを取得します。
MimePart
内の getEncoding
MessagingException
headers
public String getContentID() throws MessagingException
null
を返します。
この実装は getHeader(name)
を使用し、必要なヘッダフィールドを取得します。
MimePart
内の getContentID
MessagingException
public final void setContentID(String cid) throws MessagingException
cid
parameter is null, any existing
"Content-ID" is removed.
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- この本文部分が READ_ONLY フォルダから取得された場合
MessagingException
public String getContentMD5() throws MessagingException
null
を返します。
この実装は getHeader(name)
を使用し、必要なヘッダフィールドを取得します。
MimePart
内の getContentMD5
MessagingException
public void setContentMD5(String md5) throws MessagingException
MimePart
内の setContentMD5
md5
- コンテンツ ID
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- この本文部分が READ_ONLY フォルダから取得された場合
MessagingException
public final String[] getContentLanguage() throws MessagingException
null
を返します。
この実装は getHeader(name)
を使用し、必要なヘッダフィールドを取得します。
MimePart
内の getContentLanguage
MessagingException
public final void setContentLanguage(String[] languages) throws MessagingException
MimePart
内の setContentLanguage
languages
- 言語タグの配列
MessagingException
public String getDescription() throws MessagingException
null
を返します。Content-Description フィールドが RFC 2047 に従ってエンコーディングされている場合、 デコードされ、Unicode に変換されます。デコーディングまたは変換が失敗した場合、 生データがそのまま返されます。
この実装は getHeader(name)
を使用し、必要なヘッダフィールドを取得します。
Part
内の getDescription
MessagingException
public final void setDescription(String description) throws MessagingException
null
の場合は、
既存の全ての "Content-Description" フィールドが削除されます。description に US-ASCII 以外の文字が含まれる場合は、 プラットフォームのデフォルト文字セットを使用してエンコードされます。 description に US-ASCII 文字だけが含まれる場合は、 エンコーディングは行われず、そのまま使用されます。
文字セットエンコーディング処理が失敗する場合、MessagingException がスローされ、 UnsupportedEncodingException が MessagingException 内の 入れ子にされた例外のチェーンに含まれる事に注意して下さい。
Part
内の setDescription
description
- 内容の説明
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- この本文部分が READ_ONLY フォルダから取得された場合
MessagingException
- 文字セット変換が失敗すると、
UnsupportedEncodingException が例外チェーンに含まれる場合があります。public void setDescription(String description, String charset) throws MessagingException
null
の場合は、
既存の全ての "Content-Description" フィールドが削除されます。description に US-ASCII 以外の文字が含まれる場合は、 指定された文字セットを使用してエンコードされます。 description に US-ASCII 文字だけが含まれる場合は、 エンコーディングは行われず、そのまま使用されます。
文字セットエンコーディング処理が失敗する場合、MessagingException がスローされ、 UnsupportedEncodingException が MessagingException 内の入れ子にされた 例外のチェーンに含まれる事に注意して下さい。
description
- 説明charset
- エンコーディングのための文字セット
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- この本文部分が READ_ONLY フォルダから取得された場合
MessagingException
- 文字セット変換が失敗すると、
UnsupportedEncodingException が例外チェーンに含まれる場合があります。public String getFileName() throws MessagingException
この本文部分の "Content-Disposition" ヘッダフィールドにおける "filename" パラメータの値を返します。
このパラメータが使用できない場合は、この
本文部分の "Content-Type" ヘッダフィールドにおける "name" パラメータの値を返します。
両方とも存在しない場合は null
を返します。
Part
内の getFileName
MessagingException
public void setFileName(String filename) throws MessagingException
この本文部分の "Content-Disposition" ヘッダフィールドにおける "filename" パラメータを設定します。
Part
内の setFileName
filename
- この Part に関連付けるファイル名
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- この本文部分が READ_ONLY フォルダから取得された場合
MessagingException
public final InputStream getInputStream() throws IOException, MessagingException
この実装は DataHandler から入力ストリームを取得します。 つまり、getDataHandler().getInputStream(); を呼び出します。
Part
内の getInputStream
MessagingException
IOException
- これは通常 DataHandler によりスローされます。
詳細については javax.activation.DataHandler のマニュアルを参照して下さい。getContentStream()
,
javax.activation.DataHandler#getInputStream
protected InputStream getContentStream() throws MessagingException
MessagingException
content
,
MimeMessage.getContentStream()
public final InputStream getRawInputStream() throws MessagingException
getInputStream
メソッド又は getContent
メソッドは、
正しいデータを返すことができません。
アプリケーションはこのメソッドを使用し、生データそのもののデコードを試みる事ができます。
この実装は単に getContentStream
メソッドを呼び出します。
MessagingException
getInputStream()
,
getContentStream()
public DataHandler getDataHandler() throws MessagingException
ここで提供される実装は、丁度 MimeMessage の実装の様に機能します。
Part
内の getDataHandler
MessagingException
MimeMessage.getDataHandler()
public final Object getContent() throws IOException, MessagingException
この実装は DataHandler からコンテンツを取得します。 つまり、getDataHandler().getContent(); を呼び出します。
Part
内の getContent
MessagingException
IOException
- これは通常 DataHandler によりスローされます。
詳細については javax.activation.DataHandler のマニュアルを参照して下さい。javax.activation.DataHandler#getContent
public void setDataHandler(DataHandler dh) throws MessagingException
Part
内の setDataHandler
dh
- コンテンツの DataHandler
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- この本文部分が READ_ONLY フォルダから取得される場合
MessagingException
public void setContent(Object o, String type) throws MessagingException
コンテンツは DataHandler オブジェクト内にラップされます。これが正しく機能する為に、
指定されたタイプの DataContentHandler クラスが JavaMail 実装に対して使用可能でなければならない事に注意して下さい。
つまり、setContent(foobar, "application/x-foobar")
を実行する為に、
"application/x-foobar" の DataContentHandler がインストールされている必要があります。
詳細については Java Activation Framework を参照して下さい。
Part
内の setContent
o
- コンテンツオブジェクトtype
- オブジェクトの MIME タイプ
IllegalWriteException
- 実装が既存値の変更をサポートしない場合
IllegalStateException
- この本文部分が READ_ONLY フォルダから取得された場合
MessagingException
public final void setText(String text) throws MessagingException
このメソッドは使用する文字セットを決める為に全ての文字を走査しなければならない場合があるので、
text
が大きい場合は、性能が低下する可能性がある事に注意して下さい。
文字セットが既知の場合、文字セットパラメータを受け取る setText() バージョンを使用して下さい。
MimePart
内の setText
Part
内の setText
text
- Message のコンテンツであるテキスト
IllegalWriteException
- 実装がこのヘッダの変更をサポートしない場合
MessagingException
setText(String text, String charset)
public final void setText(String text, String charset) throws MessagingException
MimePart
内の setText
MessagingException
public void setContent(Multipart mp) throws MessagingException
Part
内の setContent
mp
- Message のコンテンツである multipart オブジェクト
IllegalWriteException
- 実装が既存値の変更をサポートしない場合
IllegalStateException
- この本文部分が READ_ONLY フォルダから取得された場合
MessagingException
public final void writeTo(OutputStream os) throws IOException, MessagingException
Part
内の writeTo
MessagingException
IOException
- ストリームへの書き込み中にエラーが発生する場合、
又は javax.activation レイヤによりエラーが生成される場合javax.activation.DataHandler#writeTo
public String[] getHeader(String name) throws MessagingException
Part
内の getHeader
name
- ヘッダの名前
MessagingException
MimeUtility
public final String getHeader(String name, String delimiter) throws MessagingException
null
の場合は、最初のヘッダだけが返されます。
MimePart
内の getHeader
name
- このヘッダの名前delimiter
- delimiter between fields in returned string
MessagingException
public void setHeader(String name, String value) throws MessagingException
Part
内の setHeader
name
- ヘッダ名value
- ヘッダ値
MessagingException
IllegalWriteException
- 実装がこのヘッダの変更をサポートしない場合MimeUtility
public void addHeader(String name, String value) throws MessagingException
Part
内の addHeader
name
- ヘッダ名value
- ヘッダ値
MessagingException
IllegalWriteException
- 実装がこのヘッダの変更をサポートしない場合MimeUtility
public void removeHeader(String name) throws MessagingException
Part
内の removeHeader
name
- このヘッダの名前
MessagingException
IllegalWriteException
- 実装がこのヘッダの変更をサポートしない場合public Enumeration getAllHeaders() throws MessagingException
Part
内の getAllHeaders
MessagingException
public Enumeration getMatchingHeaders(String[] names) throws MessagingException
Part
内の getMatchingHeaders
MessagingException
public Enumeration getNonMatchingHeaders(String[] names) throws MessagingException
Part
内の getNonMatchingHeaders
MessagingException
public void addHeaderLine(String line) throws MessagingException
MimePart
内の addHeaderLine
MessagingException
public Enumeration getAllHeaderLines() throws MessagingException
MimePart
内の getAllHeaderLines
MessagingException
public Enumeration getMatchingHeaderLines(String[] names) throws MessagingException
MimePart
内の getMatchingHeaderLines
MessagingException
public Enumeration getNonMatchingHeaderLines(String[] names) throws MessagingException
MimePart
内の getNonMatchingHeaderLines
MessagingException
protected void updateHeaders() throws MessagingException
Content-Type
と Content-Transfer-Encoding
です。
ヘッダの更新は次の 2 つの場合に必要になります。
Message.saveChanges
メソッドにより呼び出されます。
MessagingException
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |