javax.mail
インタフェース Part

既知のサブインタフェースの一覧:
MimePart
既知の実装クラスの一覧:
BodyPart, IMAPBodyPart, IMAPMessage, IMAPNestedMessage, Message, MimeBodyPart, MimeMessage, POP3Message, SMTPMessage

public interface Part

Part インタフェースは、Message 及び BodyPart の共通基本インタフェースです。

Part は一連の属性と "コンテンツ" で構成されます。

属性:

JavaMail API は、既存の殆どのメールシステムに共通すると考えられる一連の標準的な Part 属性を定義します。 これらの属性は、固有の設定メソッド及び取得メソッドを持っています。 メールシステムは他の Part 属性をサポートする事も可能で、 これらは String である名前及び値の対で表されます。

コンテンツ:

"コンテンツ" の data type は、getContentType() メソッドにより返されます。 MIME 型付けシステムを使用して、データ型の名前を設定します。

Part の "コンテンツ" は以下の様に様々な形式で使用可能です。

Part は、バイトストリームを伝送に適したメール安全形式で出力する writeTo() メソッドを提供します。 このバイトストリームは一般に Part 属性とそのコンテンツのバイトストリームの集合です。

Message 及び BodyPart は Part インタフェースを実装します。 MIME 用語では、Part は Entity をモデル化します (RFC 2045、Section 2.4)。


フィールドの概要
static String ATTACHMENT
          この Part は添付として表示されなければなりません。
static String INLINE
          この Part はインラインで表示されなければなりません。
 
メソッドの概要
 void addHeader(String header_name, String header_value)
          この値をこの header_name の既存値に追加します。
 Enumeration getAllHeaders()
          この Part の全てのヘッダを Header オブジェクトの Enumeration として返します。
 Object getContent()
          コンテンツを java オブジェクトとして返します。
 String getContentType()
          この Part のコンテンツの Content-Type を返します。
 DataHandler getDataHandler()
          この Part に含まれるコンテンツの DataHandler を返します。
 String getDescription()
          この Part の説明 String を返します。
 String getDisposition()
          この Part の処置を返します。
 String getFileName()
          可能な場合、この Part に関連付けられたファイル名を取得します。
 String[] getHeader(String header_name)
          このヘッダ名の全てのヘッダを取得します。
 InputStream getInputStream()
          この Part の "content" の入力ストリームを返します。
 int getLineCount()
          この Part のコンテンツに含まれる行数を返します。
 Enumeration getMatchingHeaders(String[] header_names)
          この Part の一致するヘッダを Header オブジェクトの Enumeration として返します。
 Enumeration getNonMatchingHeaders(String[] header_names)
          このエンベロープの一致しないヘッダを Header オブジェクトの Enumeration として返します。
 int getSize()
          この Part のコンテンツサイズをバイト単位で返します。
 boolean isMimeType(String mimeType)
          指定された MIME タイプの Part かどうかを判定します。
 void removeHeader(String header_name)
          この名前を持つ全てのヘッダを削除します。
 void setContent(Multipart mp)
          このメソッドは、指定された Multipart オブジェクトをこのメッセージのコンテンツとして設定します。
 void setContent(Object obj, String type)
          この Part のコンテンツを設定する為の簡易メソッドです。
 void setDataHandler(DataHandler dh)
          このメソッドはこの Part の内容を設定する為の仕組みを提供します。
 void setDescription(String description)
          この Part の説明 String を設定します。
 void setDisposition(String disposition)
          この Part の処置を設定します。
 void setFileName(String filename)
          可能な場合、この Part に関連付けられたファイル名を設定します。
 void setHeader(String header_name, String header_value)
          この header_name の値を設定します。
 void setText(String text)
          MIME タイプ "text/plain" を使用して、 指定された String をこの Part のコンテンツとして設定する簡易メソッドです。
 void writeTo(OutputStream os)
          この Part のバイトストリームを出力します。
 

フィールドの詳細

ATTACHMENT

static final String ATTACHMENT
この Part は添付として表示されなければなりません。

関連項目:
getDisposition(), setDisposition(java.lang.String), 定数フィールド値

INLINE

static final String INLINE
この Part はインラインで表示されなければなりません。

関連項目:
getDisposition(), setDisposition(java.lang.String), 定数フィールド値
メソッドの詳細

getSize

int getSize()
            throws MessagingException
この Part のコンテンツサイズをバイト単位で返します。 サイズが不明の場合は -1 を返します。

このサイズはコンテンツサイズの正確な測定値でない場合があり、 コンテンツの任意の転送エンコーディングを示す場合も示さない場合もあります。 このサイズは、ユーザに対してこの Part のサイズに関する概要を知らせる為に、 ユーザインタフェースで表示するのに適しています。

戻り値:
コンテンツのサイズ (バイト)
例外:
MessagingException

getLineCount

int getLineCount()
                 throws MessagingException
この Part のコンテンツに含まれる行数を返します。 数が不明の場合は -1 を返します。

この数はコンテンツ長の正確な測定値でない場合があり、 コンテンツの転送エンコーディングを示す場合も示さない場合もあります。

戻り値:
コンテンツ内の行数
例外:
MessagingException

getContentType

String getContentType()
                      throws MessagingException
この Part のコンテンツの Content-Type を返します。 Content-Type が不明の場合は null を返します。

MIME 型付けシステムを使用して、Content-type の名前を設定します。

戻り値:
この Part の ContentType
例外:
MessagingException
関連項目:
javax.activation.DataHandler

isMimeType

boolean isMimeType(String mimeType)
                   throws MessagingException
指定された MIME タイプの Part かどうかを判定します。 このメソッドは、primaryTypesubType のみを比較します。 コンテンツ形式のパラメータは無視されます。

例えば、コンテンツ形式 "text/plain""text/plain; charset=Shift_JIS" を比較すると、 このメソッドは true を返します。

mimeTypesubType が特殊文字 '*' の場合、 比較時にサブタイプは無視されます。

例外:
MessagingException

getDisposition

String getDisposition()
                      throws MessagingException
この Part の処置を返します。処置はこの Part がユーザに どの様に提示されるかを説明します (RFC 2183 を参照)。 戻り値は大文字と小文字を区別しません。以下に例を示します。

 String disp = part.getDisposition();
 if (disp == null || disp.equalsIgnoreCase(Part.ATTACHMENT))
        // treat as attachment if not first part
 

戻り値:
この Part の処置、又は不明の場合は null
例外:
MessagingException
関連項目:
ATTACHMENT, INLINE, getFileName()

setDisposition

void setDisposition(String disposition)
                    throws MessagingException
この Part の処置を設定します。

パラメータ:
disposition - この Part の処置
例外:
MessagingException
IllegalWriteException - 実装がこのヘッダの変更をサポートしない場合
IllegalStateException - この Part が READ_ONLY フォルダから取得された場合
関連項目:
ATTACHMENT, INLINE, setFileName(java.lang.String)

getDescription

String getDescription()
                      throws MessagingException
この Part の説明 String を返します。 これは一般に説明的な情報をこの Part に関連付けます。 使用可能な物がない場合は null を返します。

戻り値:
この Part の説明
例外:
MessagingException

setDescription

void setDescription(String description)
                    throws MessagingException
この Part の説明 String を設定します。 これは一般に説明的な情報をこの Part に関連付けます。

パラメータ:
description - この Part の説明
例外:
MessagingException
IllegalWriteException - 実装がこのヘッダの変更をサポートしない場合
IllegalStateException - この Part が READ_ONLY フォルダから取得された場合

getFileName

String getFileName()
                   throws MessagingException
可能な場合、この Part に関連付けられたファイル名を取得します。 この Part がファイルから読み込まれた "添付" を表す場合に役立ちます。 このファイル名は通常、ディレクトリを含まない単純な名前です。

戻り値:
この Part に関連付けるファイル名
例外:
MessagingException

setFileName

void setFileName(String filename)
                 throws MessagingException
可能な場合、この Part に関連付けられたファイル名を設定します。 この Part がファイルから読み込まれた "添付" を表す場合に役立ちます。 このファイル名は通常、ディレクトリを含まない単純な名前です。

パラメータ:
filename - この Part に関連付けるファイル名
例外:
IllegalWriteException - 実装がこのヘッダの変更をサポートしない場合
IllegalStateException - この Part が READ_ONLY フォルダから取得された場合
MessagingException

getInputStream

InputStream getInputStream()
                           throws IOException,
                                  MessagingException
この Part の "content" の入力ストリームを返します。 入力ストリームが提供される前に、全てのメール固有の転送エンコーディングはデコードされます。

これは一般に DataHandler の getInputStream() メソッドを呼び出すだけの簡易メソッドです。

戻り値:
InputStream
例外:
IOException - これは通常 DataHandler によりスローされます。 詳細については javax.activation.DataHandler の説明を参照して下さい。
MessagingException
関連項目:
getDataHandler(), javax.activation.DataHandler#getInputStream

getDataHandler

DataHandler getDataHandler()
                           throws MessagingException
この Part に含まれるコンテンツの DataHandler を返します。 DataHandler により、クライアントはコンテンツの取得と操作ができます。

戻り値:
コンテンツの DataHandler
例外:
MessagingException

getContent

Object getContent()
                  throws IOException,
                         MessagingException
コンテンツを java オブジェクトとして返します。 返されるオブジェクトのタイプはもちろんコンテンツそのものに依存します。 例えば、"text/plain" コンテンツに対して返されるオブジェクトは普通 String オブジェクトです。 "multipart" コンテンツに対して返されるオブジェクトは常に Multipart のサブクラスです。 DataHandler システムに不明なコンテンツ形式の場合、 入力ストリームがコンテンツとして返されます。

これは DataHandler の getContent() メソッドを呼び出すだけの簡易メソッドです。

戻り値:
オブジェクト
例外:
MessagingException
IOException - これは通常 DataHandler によりスローされます。 詳細については javax.activation.DataHandler の説明を参照して下さい。
関連項目:
javax.activation.DataHandler#getContent

setDataHandler

void setDataHandler(DataHandler dh)
                    throws MessagingException
このメソッドはこの Part の内容を設定する為の仕組みを提供します。 DataHandler は実際のコンテンツをラップします。

パラメータ:
dh - コンテンツの DataHandler
例外:
MessagingException
IllegalWriteException - 実装がこのヘッダの変更をサポートしない場合
IllegalStateException - この Part が READ_ONLY フォルダから取得された場合

setContent

void setContent(Object obj,
                String type)
                throws MessagingException
この Part のコンテンツを設定する為の簡易メソッドです。 この Part は内部的に DataHandler 中のコンテンツをラップします。

これが正しく機能する為に、指定されたタイプの DataContentHandler クラスは、 JavaMail 実装に対して使用可能でなければなりません。 つまり、setContent(foobar, "application/x-foobar") を実行する為には、 "application/x-foobar" の DataContentHandler がインストールされている必要があります。 詳細については Java Activation Framework を参照して下さい。

パラメータ:
obj - Java オブジェクト
type - このオブジェクトの MIME タイプ
例外:
IllegalWriteException - 実装がこのヘッダの変更をサポートしない場合
IllegalStateException - この Part が READ_ONLY フォルダから取得された場合
MessagingException

setText

void setText(String text)
             throws MessagingException
MIME タイプ "text/plain" を使用して、 指定された String をこの Part のコンテンツとして設定する簡易メソッドです。

パラメータ:
text - Message のコンテンツであるテキスト
例外:
IllegalWriteException - 実装がこのヘッダの変更をサポートしない場合
IllegalStateException - この Part が READ_ONLY フォルダから取得された場合
MessagingException

setContent

void setContent(Multipart mp)
                throws MessagingException
このメソッドは、指定された Multipart オブジェクトをこのメッセージのコンテンツとして設定します。

パラメータ:
mp - Message のコンテンツにする multipart オブジェクト
例外:
IllegalWriteException - 実装がこのヘッダの変更をサポートしない場合
IllegalStateException - この Part が READ_ONLY フォルダから取得された場合
MessagingException

writeTo

void writeTo(OutputStream os)
             throws IOException,
                    MessagingException
この Part のバイトストリームを出力します。 このバイトストリームは一般に Part 属性と 'コンテンツ' から 適切にエンコードされたバイトストリームの集合です。

Part インタフェースを実装するクラスは、 使用される適切なエンコーディングアルゴリズムを決定します。

このバイトストリームは一般に送信の為に使用されます。

例外:
IOException - ストリームへの書き込み中にエラーが発生する場合、 又は javax.activation レイヤによりエラーが生成される場合
MessagingException - 書き込まれるデータを取り出す時にエラーが発生した場合
関連項目:
javax.activation.DataHandler#writeTo

getHeader

String[] getHeader(String header_name)
                   throws MessagingException
このヘッダ名の全てのヘッダを取得します。 このヘッダ名で使用可能なヘッダがない場合は null を返します。

パラメータ:
header_name - このヘッダの名前
戻り値:
この名前を持つすべてのヘッダに対する値フィールド
例外:
MessagingException

setHeader

void setHeader(String header_name,
               String header_value)
               throws MessagingException
この header_name の値を設定します。既存の全てのヘッダ値をこの値で置き換えます。

パラメータ:
header_name - このヘッダの名前
header_value - このヘッダの値
例外:
MessagingException
IllegalWriteException - 実装がこのヘッダの変更をサポートしない場合
IllegalStateException - この Part が READ_ONLY フォルダから取得された場合

addHeader

void addHeader(String header_name,
               String header_value)
               throws MessagingException
この値をこの header_name の既存値に追加します。

パラメータ:
header_name - このヘッダの名前
header_value - このヘッダの値
例外:
MessagingException
IllegalWriteException - 実装がこのヘッダの変更をサポートしない場合
IllegalStateException - この Part が READ_ONLY フォルダから取得された場合

removeHeader

void removeHeader(String header_name)
                  throws MessagingException
この名前を持つ全てのヘッダを削除します。

パラメータ:
header_name - このヘッダの名前
例外:
MessagingException
IllegalWriteException - 実装がこのヘッダの変更をサポートしない場合
IllegalStateException - この Part が READ_ONLY フォルダから取得された場合

getAllHeaders

Enumeration getAllHeaders()
                          throws MessagingException
この Part の全てのヘッダを Header オブジェクトの Enumeration として返します。

戻り値:
Header オブジェクトの配列
例外:
MessagingException

getMatchingHeaders

Enumeration getMatchingHeaders(String[] header_names)
                               throws MessagingException
この Part の一致するヘッダを Header オブジェクトの Enumeration として返します。

戻り値:
Header オブジェクトの配列
例外:
MessagingException

getNonMatchingHeaders

Enumeration getNonMatchingHeaders(String[] header_names)
                                  throws MessagingException
このエンベロープの一致しないヘッダを Header オブジェクトの Enumeration として返します。

戻り値:
Header オブジェクトの配列
例外:
MessagingException