|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjavax.mail.Message
javax.mail.internet.MimeMessage
public class MimeMessage
このクラスは MIME 形式の電子メールメッセージを表します。
これは Message
抽象クラスと MimePart
インタフェースを実装します。
新しい MIME 形式メッセージを作成しようとするクライアントは、 空の MimeMessage オブジェクトをインスタント化し、適切な属性と内容で満たします。
MIME 準拠のバックエンドストアを実装するサービスプロバイダは、 MimeMessage をサブクラス化し、あるメソッドをオーバーライドして、特定の実装を提供できます。 もっとも単純なケースは、恐らくプロバイダが MIME 形式の入力ストリームを生成し、 ストリームの構文解析をこのクラスに任せる事です。
MimeMessage は InternetHeaders
クラスを使用して、
メッセージのトップレベルの RFC 822 ヘッダを構文解析及び格納します。
RFC822 ヘッダフィールドは US-ASCII 文字だけを含まなければなりません。
MIME では ASCII 以外の文字をエンコーディングすることにより、
特定のヘッダの特定の部分に設定可能です。
RFC 2047 はこの処理の規則を指定します。
このパッケージで提供される MimeUtility クラスを用いてこの処理を行う事ができます。
setHeader
、addHeader
、
及び addHeaderLine
メソッドの呼び出し側は、
指定されたヘッダが MIME 要件に従うことを保証する必要があります。
又、これらのヘッダフィールドが転送における行の長さ制限 (SMTP の場合は 1000バイト) を超える場合は、
送信の前に折りたたむ (ラップする) 必要があります。
受信ヘッダは折りたたまれている可能性があります。
アプリケーションはヘッダを適切に折りたたみ、展開する責任があります。
MimeUtility
,
Part
,
Message
,
MimePart
,
InternetAddress
入れ子のクラスの概要 | |
---|---|
static class |
MimeMessage.RecipientType
この内部クラスは javax.mail.Message.RecipientType クラスを拡張して、 補足的な RecipientType を追加します。 |
フィールドの概要 | |
---|---|
protected byte[] |
content
この Message の内容のバイトを保持するバイト配列です。 |
protected InputStream |
contentStream
このメッセージのデータが SharedInputStream インタフェースを実装する InputStream により供給された場合、 contentStream がこのメッセージの内容を表すもう 1 つのストリームです。 |
protected DataHandler |
dh
この Message の内容を表す DataHandler オブジェクトです。 |
protected Flags |
flags
このメッセージの Flags です。 |
protected InternetHeaders |
headers
このメッセージのヘッダを格納する InternetHeaders オブジェクトです。 |
protected boolean |
modified
メッセージが変更されたかどうかを示すフラグです。 |
protected boolean |
saved
このメッセージ上で saveChanges メソッドを呼び出す必要がある場合のフラグです。 |
クラス javax.mail.Message から継承されたフィールド |
---|
expunged, folder, msgnum, session |
インタフェース javax.mail.Part から継承されたフィールド |
---|
ATTACHMENT, INLINE |
コンストラクタの概要 | |
---|---|
protected |
MimeMessage(Folder folder,
InputStream is,
int msgnum)
指定された MIME InputStream のデータを読み取り、 構文解析することで、MimeMessage を構築します。 |
protected |
MimeMessage(Folder folder,
int msgnum)
指定された Folder とメッセージ番号を持つ空の MimeMessage オブジェクトを構築します。 |
protected |
MimeMessage(Folder folder,
InternetHeaders headers,
byte[] content,
int msgnum)
指定された InternetHeaders オブジェクトおよび内容から MimeMessage を構築します。 |
|
MimeMessage(MimeMessage source)
source MimeMessage から初期化された内容を持つ新しい MimeMessage を構築します。 |
|
MimeMessage(Session session)
デフォルトのコンストラクタです。 |
|
MimeMessage(Session session,
InputStream is)
指定された MIME InputStream のデータを読み取り、 構文解析することで、MimeMessage を構築します。 |
メソッドの概要 | |
---|---|
void |
addFrom(Address[] addresses)
指定されたアドレスを既存の "From" フィールドに追加します。 |
void |
addHeader(String name,
String value)
この値をこの header_name の既存値に追加します。 |
void |
addHeaderLine(String line)
生 RFC 822 ヘッダ行を追加します。 |
void |
addRecipients(Message.RecipientType type,
Address[] addresses)
指定されたアドレスを指定された受信者タイプに追加します。 |
void |
addRecipients(Message.RecipientType type,
String addresses)
指定されたアドレスを指定された受信者タイプに追加します。 |
protected InternetHeaders |
createInternetHeaders(InputStream is)
指定された InputStream からヘッダをロードする InternetHeaders オブジェクトを作成し、返します。 |
protected MimeMessage |
createMimeMessage(Session session)
Create and return a MimeMessage object. |
Enumeration |
getAllHeaderLines()
全てのヘッダ行を String の Enumeration として取得します。 |
Enumeration |
getAllHeaders()
このメッセージの全てのヘッダを Header オブジェクトの列挙として返します。 |
Address[] |
getAllRecipients()
メッセージの全ての受信者アドレスを取得します。 |
Object |
getContent()
内容を Java オブジェクトとして返します。 |
String |
getContentID()
"Content-ID" ヘッダフィールドの値を返します。 |
String[] |
getContentLanguage()
このメッセージの "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()
このメッセージに関連付けられたファイル名を取得します。 |
Flags |
getFlags()
このメッセージのフラグを含む Flags オブジェクトを返します。 |
Address[] |
getFrom()
RFC 822 "From" ヘッダフィールドの値を返します。 |
String[] |
getHeader(String name)
この header_name の全てのヘッダを取得します。 |
String |
getHeader(String name,
String delimiter)
このヘッダ名の全てのヘッダを取得し、 区切り文字で区切られたヘッダが単一の文字列として返されます。 |
InputStream |
getInputStream()
このメッセージの "content" に対するデコードされた入力ストリームを返します。 |
int |
getLineCount()
このメッセージの内容の行数を返します。 |
Enumeration |
getMatchingHeaderLines(String[] names)
一致するヘッダ行を String の Enumeration として取得します。 |
Enumeration |
getMatchingHeaders(String[] names)
このメッセージから一致するヘッダを Header オブジェクトの Enumeration として返します。 |
String |
getMessageID()
"Message-ID" ヘッダフィールドの値を返します。 |
Enumeration |
getNonMatchingHeaderLines(String[] names)
一致しないヘッダ行を String の Enumeration として取得します。 |
Enumeration |
getNonMatchingHeaders(String[] names)
このメッセージから一致しないヘッダを Header オブジェクトの Enumeration として返します。 |
InputStream |
getRawInputStream()
任意の Content-Transfer-Encoding をそのままにして、 生データへの InputStream を返します。 |
Date |
getReceivedDate()
このメッセージが受信された日時を返します。 |
Address[] |
getRecipients(Message.RecipientType type)
型により指定された受信者を返します。 |
Address[] |
getReplyTo()
RFC 822 "Reply-To" ヘッダフィールドの値を返します。 |
Address |
getSender()
Returns the value of the RFC 822 "Sender" header field. |
Date |
getSentDate()
RFC 822 "Date" フィールドの値を返します。 |
int |
getSize()
このメッセージの内容サイズをバイト単位で返します。 |
String |
getSubject()
"Subject" ヘッダフィールドの値を返します。 |
boolean |
isMimeType(String mimeType)
指定された MIME タイプのパートかどうかを識別します。 |
boolean |
isSet(Flags.Flag flag)
flag 引数に指定されたフラグがこのメッセージ内に設定されているかどうかをチェックします。 |
protected void |
parse(InputStream is)
headers 及び content フィールドを適切に設定する InputStream を構文解析します。 |
void |
removeHeader(String name)
この名前を持つ全てのヘッダを削除します。 |
Message |
reply(boolean replyToAll)
このメッセージへの返信に適した新しいメッセージを取得します。 |
void |
saveChanges()
このメッセージの適切なヘッダフィールドを更新し、 メッセージの内容と一貫性がある様にします。 |
void |
setContent(Multipart mp)
このメソッドはメッセージのコンテンツを Multipart オブジェクトに設定します。 |
void |
setContent(Object o,
String type)
このメッセージのコンテンツを設定するための簡易メソッドです。 |
void |
setContentID(String cid)
このメッセージの "Content-ID" ヘッダフィールドを設定します。 |
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 |
setFlags(Flags flag,
boolean set)
このメッセージのフラグを設定します。 |
void |
setFrom()
InternetAddress.getLocalAddress メソッドの値を使用して、
RFC 822 "Form" ヘッダフィールドを設定します。 |
void |
setFrom(Address address)
RFC 822 "From" ヘッダフィールドを設定します。 |
void |
setHeader(String name,
String value)
この header_name の値を設定します。 |
void |
setRecipients(Message.RecipientType type,
Address[] addresses)
指定された受信者のタイプを指定されたアドレスに設定します。 |
void |
setRecipients(Message.RecipientType type,
String addresses)
指定された受信者のタイプを指定されたアドレスに設定します。 |
void |
setReplyTo(Address[] addresses)
RFC 822 "Reply-To" ヘッダフィールドを設定します。 |
void |
setSender(Address address)
Set the RFC 822 "Sender" header field. |
void |
setSentDate(Date d)
RFC 822 "Date" ヘッダフィールドを設定します。 |
void |
setSubject(String subject)
"Subject" ヘッダフィールドを設定します。 |
void |
setSubject(String subject,
String charset)
"Subject" ヘッダフィールドを設定します。 |
void |
setText(String text)
指定された文字列をこのパートのコンテンツとして、 "text/plain" の MIME タイプで設定する簡易メソッドです。 |
void |
setText(String text,
String charset)
"text/plain" の MIME タイプ及び指定された文字セットを使用し、 指定された文字列をこのパートのコンテンツとして設定する簡易メソッドです。 |
void |
setText(String text,
String charset,
String subtype)
"text" の MIME タイプ及び指定された MIME サブタイプを使用し、 指定された文字列をこのパートのコンテンツとして設定する簡易メソッドです。 |
protected void |
updateHeaders()
saveChanges メソッドにより呼び出され、
実際に MIME ヘッダを更新します。 |
protected void |
updateMessageID()
Update the Message-ID header. |
void |
writeTo(OutputStream os)
メッセージを RFC 822 形式のストリームとして出力します。 |
void |
writeTo(OutputStream os,
String[] ignoreList)
メッセージを RFC 822 形式ストリームとして、指定されたヘッダ無しで出力します。 |
クラス javax.mail.Message から継承されたメソッド |
---|
addRecipient, getFolder, getMessageNumber, isExpunged, match, setExpunged, setFlag, setMessageNumber, setRecipient |
クラス 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
protected Flags flags
protected boolean modified
content
配列内の任意のデータは有効であるとみなされ、
writeTo
メソッドで直接使用されます。
このフラグは、空のメッセージが作成される時、
又は saveChanges
メソッドが呼び出される時に true に設定されます。
protected boolean saved
saveChanges
メソッドを呼び出す必要がある場合のフラグです。
このフラグは、public コンストラクタにより false に設定され、
saveChanges
メソッドにより true に設定されます。
writeTo
メソッドはこのフラグをチェックし、
必要に応じて saveChanges
メソッドを呼び出します。
これにより、新しく構築されたメッセージ上で、saveChanges
メソッドを呼び出し忘れるという一般的な誤りを避けることができます。
コンストラクタの詳細 |
---|
public MimeMessage(Session session)
headers
フィールドは空の InternetHeaders オブジェクトに設定されます。
flags
フィールドは空の Flags オブジェクトに設定されます。
modified
フラグは true に設定されます。
public MimeMessage(Session session, InputStream is) throws MessagingException
入力ストリームの構文解析は、このコンストラクタ自体の内部で行われることに注意してください。
session
- このメッセージの Session オブジェクトis
- メッセージ入力ストリーム
MessagingException
public MimeMessage(MimeMessage source) throws MessagingException
source
MimeMessage から初期化された内容を持つ新しい MimeMessage を構築します。
新しいメッセージは元のメッセージと独立しています。注: 現在の実装はどちらかというと非効率です。必要以上にデータのコピーを行います。
source
- 内容のコピー元となるメッセージ
MessagingException
protected MimeMessage(Folder folder, int msgnum)
このメソッドは MimeMessage
をサブクラス化するプロバイダ向けです。
protected MimeMessage(Folder folder, InputStream is, int msgnum) throws MessagingException
このメソッドは MimeMessage
をサブクラス化するプロバイダ向けです。
folder
- 包含するフォルダis
- メッセージ入力ストリームmsgnum
- フォルダ内のこのメッセージのメッセージ番号
MessagingException
protected MimeMessage(Folder folder, InternetHeaders headers, byte[] content, int msgnum)
MimeMessage
をサブクラス化するプロバイダ向けです。
folder
- 包含するフォルダheaders
- メッセージ入力ストリームcontent
- The message contentmsgnum
- フォルダ内のこのメッセージのメッセージ番号
MessagingException
メソッドの詳細 |
---|
protected final void parse(InputStream is) throws MessagingException
headers
及び content
フィールドを適切に設定する InputStream を構文解析します。
又、modified
フラグをリセットします。このメソッドは、InputStream の構文解析時に制御する必要があるサブクラスにより使用されます。
is
- メッセージ入力ストリーム
MessagingException
public Address[] getFrom() throws MessagingException
null
を返します。
この実装は getHeader
メソッドを使用し、必要なヘッダフィールドを取得します。
Message
内の getFrom
MessagingException
headers
public void setFrom(Address address) throws MessagingException
null
の場合は、このヘッダが削除されます。
Message
内の setFrom
address
- このメッセージの送信者
IllegalWriteException
- 実装が既存値の変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
public final void setFrom() throws MessagingException
InternetAddress.getLocalAddress
メソッドの値を使用して、
RFC 822 "Form" ヘッダフィールドを設定します。
Message
内の setFrom
IllegalWriteException
- 実装が既存値の変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
public void addFrom(Address[] addresses) throws MessagingException
Message
内の addFrom
addresses
- このメッセージの送信者
IllegalWriteException
- 実装が既存値の変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
public Address getSender() throws MessagingException
null
is returned.
This implementation uses the getHeader
method
to obtain the requisite header field.
MessagingException
headers
public void setSender(Address address) throws MessagingException
null
,
this header is removed.
address
- the sender of this message
IllegalWriteException
- if the underlying
implementation does not support modification
of existing values
IllegalStateException
- if this message is obtained from a READ_ONLY folder.
MessagingException
public Address[] getRecipients(Message.RecipientType type) throws MessagingException
Message.RecipientType.TO "To" Message.RecipientType.CC "Cc" Message.RecipientType.BCC "Bcc" MimeMessage.RecipientType.NEWSGROUPS "Newsgroups"
この実装は getHeader
メソッドを使用し、必要なヘッダフィールドを取得します。
Message
内の getRecipients
type
- 受信者の型
MessagingException
- ヘッダが取得できない場合
AddressException
- ヘッダの形式に誤りがある場合headers
,
Message.RecipientType.TO
,
Message.RecipientType.CC
,
Message.RecipientType.BCC
,
MimeMessage.RecipientType.NEWSGROUPS
public final Address[] getAllRecipients() throws MessagingException
Message
内の getAllRecipients
MessagingException
Message.RecipientType.TO
,
Message.RecipientType.CC
,
Message.RecipientType.BCC
,
MimeMessage.RecipientType.NEWSGROUPS
public void setRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException
null
の場合は、対応する受信者フィールドが削除されます。
Message
内の setRecipients
type
- 受信者タイプaddresses
- アドレス
IllegalWriteException
- 実装が既存値の変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
getRecipients(javax.mail.Message.RecipientType)
public final void setRecipients(Message.RecipientType type, String addresses) throws MessagingException
null
の場合は、対応する受信者フィールドが削除されます。
type
- 受信者タイプaddresses
- アドレス
AddressException
- アドレス文字列の構文解析に失敗した場合
IllegalWriteException
- 実装が既存値の変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
getRecipients(javax.mail.Message.RecipientType)
public void addRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException
Message
内の addRecipients
type
- 受信者タイプaddresses
- アドレス
IllegalWriteException
- 実装が既存値の変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
public final void addRecipients(Message.RecipientType type, String addresses) throws MessagingException
type
- 受信者タイプaddresses
- アドレス
AddressException
- アドレス文字列の構文解析に失敗した場合
IllegalWriteException
- 実装が既存値の変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
public Address[] getReplyTo() throws MessagingException
getFrom
メソッドが呼び出され、その値が返されます。
この実装は getHeader
メソッドを使用し、必要なヘッダフィールドを取得します。
Message
内の getReplyTo
MessagingException
headers
public void setReplyTo(Address[] addresses) throws MessagingException
null
の場合は、このヘッダが削除されます。
Message
内の setReplyTo
addresses
- 返信の送信先のアドレス
IllegalWriteException
- 実装が既存値の変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
MethodNotSupportedException
- 実装がこの属性の設定をサポートしない場合public String getSubject() throws MessagingException
件名が RFC 2047 に従ってエンコードされている場合、デコードされ、Unicode に変換されます。 デコーディングまたは変換が失敗した場合、生データがそのまま返されます。
この実装は getHeader
メソッドを使用し、必要なヘッダフィールドを取得します。
Message
内の getSubject
MessagingException
headers
public final void setSubject(String subject) throws MessagingException
文字セットエンコーディング処理が失敗する場合、MessagingException がスローされ、 UnsupportedEncodingException が MessagingException 内の入れ子にされた例外のチェーンに含まれることに注意して下さい。
Message
内の setSubject
subject
- 件名
IllegalWriteException
- 実装が既存値の変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
- 文字セット変換が失敗すると、UnsupportedEncodingException が例外チェーンに含まれる場合がありますpublic void setSubject(String subject, String charset) throws MessagingException
文字セットエンコーディング処理が失敗する場合、MessagingException がスローされ、 UnsupportedEncodingException が MessagingException 内の入れ子にされた例外のチェーンに含まれることに注意して下さい。
subject
- 件名charset
- 文字セット
IllegalWriteException
- 実装が既存値の変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
- 文字セット変換が失敗すると、UnsupportedEncodingException が例外チェーンに含まれる場合がありますpublic Date getSentDate() throws MessagingException
この実装は getHeader
メソッドを使用し、必要なヘッダフィールドを取得します。
Message
内の getSentDate
MessagingException
public void setSentDate(Date d) throws MessagingException
null
の場合は既存の "Date" フィールドが削除されます。
Message
内の setSentDate
d
- このメッセージの送信日付
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
public Date getReceivedDate() throws MessagingException
null
を返します。RFC 822 は受信日のフィールドを定義しないことに注意してください。 その為、この日付を提供可能な実装のみが有効値を返す必要があります。
この実装は null
を返します。
Message
内の getReceivedDate
MessagingException
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
メソッドを使用し、必要なヘッダフィールドを取得します。
Part
内の getContentType
MessagingException
DataHandler
public final boolean isMimeType(String mimeType) throws MessagingException
primaryType
と subType
のみを比較します。
コンテンツ形式のパラメータは無視されます。
たとえば、コンテンツ形式 "text/plain" のパートを "text/plain; charset=foobar" と比較すると、
このメソッドは true
を返します。
mimeType
の subType
が特殊文字 '*' の場合、
比較時にサブタイプは無視されます。
Part
内の isMimeType
MessagingException
public String getDisposition() throws MessagingException
Content-Disposition フィールドが使用できない場合は null
を返します。
この実装は getHeader
メソッドを使用し、必要なヘッダフィールドを取得します。
Part
内の getDisposition
MessagingException
Part.ATTACHMENT
,
Part.INLINE
,
Part.getFileName()
public void setDisposition(String disposition) throws MessagingException
disposition
が null の場合は、
既存の全ての "Content-Disposition" ヘッダフィールドが削除されます。
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
メソッドを使用し、必要なヘッダフィールドを取得します。
MimePart
内の getEncoding
MessagingException
public String getContentID() throws MessagingException
null
を返します。
この実装は getHeader
メソッドを使用し、必要なヘッダフィールドを取得します。
MimePart
内の getContentID
MessagingException
public void setContentID(String cid) throws MessagingException
cid
パラメータが null の場合は、
既存の全ての "Content-ID" が削除されます。
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
public String getContentMD5() throws MessagingException
null
を返します。
この実装は getHeader
メソッドを使用し、必要なヘッダフィールドを取得します。
MimePart
内の getContentMD5
MessagingException
public void setContentMD5(String md5) throws MessagingException
MimePart
内の setContentMD5
md5
- コンテンツ ID
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
public String getDescription() throws MessagingException
Content-Description フィールドが RFC 2047 に従ってエンコードされている場合、 デコードされ、Unicode に変換されます。 デコーディング又は変換が失敗した場合、生データがそのまま返されます。
この実装は getHeader
メソッドを使用し、必要なヘッダフィールドを取得します。
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
- content-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
- Descriptioncharset
- キャラクタエンコーディング
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
- 文字セット変換が失敗すると、UnsupportedEncodingException が例外チェーンに含まれる場合がありますpublic final String[] getContentLanguage() throws MessagingException
null
を返します。
この実装は getHeader
メソッドを使用し、必要なヘッダフィールドを取得します。
MimePart
内の getContentLanguage
MessagingException
public void setContentLanguage(String[] languages) throws MessagingException
MimePart
内の setContentLanguage
languages
- 言語タグの配列
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
public String getMessageID() throws MessagingException
ここで提供されるデフォルトの実装は getHeader
メソッドを使用し、
"Message-ID" フィールドの値を返します。
MessagingException
- このフィールドの取得により例外が発生する場合MessageIDTerm
public String getFileName() throws MessagingException
このメッセージの "Content-Disposition" ヘッダフィールドにおける "filename" パラメータの値を返します。
このパラメータが使用できない場合は、この BodyPart の "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()
,
DataHandler
protected InputStream getContentStream() throws MessagingException
この実装は、content
バイト配列から構築される ByteArrayInputStream を返すだけです。
MessagingException
content
public final InputStream getRawInputStream() throws MessagingException
getInputStream
メソッドまたは getContent
メソッドは正しいデータを返す事が出来ません。
アプリケーションはこのメソッドを使用し、生データその物のデコードを試みる事が出来ます。
この実装は単に getContentStream
メソッドを呼び出します。
MessagingException
getInputStream()
,
getContentStream()
public DataHandler getDataHandler() throws MessagingException
ここで提供される実装は次のように機能します。
getContentStream
メソッドを使用して内容のバイトストリームを生成する事に注意して下さい。
又、全ての転送デコーディングがこのメソッドの内部で自動的に実行される事にも注意して下さい。
getDataHandler() { if (dh == null) { dh = new DataHandler(new MimePartDataSource(this)); } return dh; }class MimePartDataSource implements DataSource { public getInputStream() { return MimeUtility.decode( getContentStream(), getEncoding()); } .... <その他の DataSource メソッド> }
Part
内の getDataHandler
MessagingException
public final Object getContent() throws IOException, MessagingException
この実装は DataHandler からコンテンツを取得します。
つまり、getDataHandler().getContent()
を呼び出します。
Part
内の getContent
MessagingException
IOException
- これは通常 DataHandler によりスローされます。
詳細については javax.activation.DataHandler のマニュアルを参照して下さい。Part
,
DataHandler
public void setDataHandler(DataHandler dh) throws MessagingException
Part
内の setDataHandler
dh
- コンテンツの DataHandler
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
public final 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
text
- the text content to setcharset
- the charset to use for the text
MessagingException
- if an error occurspublic void setText(String text, String charset, String subtype) throws MessagingException
MimePart
内の setText
text
- the text content to setcharset
- the charset to use for the textsubtype
- the MIME subtype to use (e.g., "html")
MessagingException
- if an error occurspublic final void setContent(Multipart mp) throws MessagingException
Part
内の setContent
mp
- メッセージのコンテンツである Multipart オブジェクト
IllegalWriteException
- 実装が既存値の変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
public final Message reply(boolean replyToAll) throws MessagingException
replyToAll
が true の場合、
新しいメッセージはこのメッセージの全ての受信者に宛てられます。
そうでない場合、返信はこのメッセージの送信者だけに宛てられます (getReplyTo
メソッドの値を使用)。
"Subject" フィールドは、元の件名に接頭辞「Re:」を付けて記述されます (既に先頭が「Re:」でない場合)。
このメッセージに "Message-Id" ヘッダがある場合は、
新しいメッセージの中に "In-Reply-To" ヘッダが設定されます。
このメッセージの ANSWERED
フラグに true が設定されます。
Message
内の reply
replyToAll
- 返信はこのメッセージの全ての受信者に送信されなければならない
MessagingException
public void writeTo(OutputStream os) throws IOException, MessagingException
メッセージの構築方法により、様々な行末処理を使用する場合がある事に注意が必要です。 一般に、出力は適切な FilterOutputStream を使用して送信されなければなりません。 これにより、行の終端は、MIME 準拠や Internet プロトコルで使用可能な CRLF、 又はローカルのテキストファイルに格納可能なローカルプラットフォームの行終端のどちらか希望する形式に変換されます。
この実装は、null 無視リストを使用して writeTo(OutputStream, String[])
メソッドを呼び出します。
Part
内の writeTo
IOException
- ストリームへの書き込み中にエラーが発生する場合、
又は javax.activation レイヤによりエラーが生成される場合
MessagingException
DataHandler
public final void writeTo(OutputStream os, String[] ignoreList) throws IOException, MessagingException
saved
フラグが設定されない場合は、
saveChanges
メソッドが呼び出されます。
modified
フラグが設定されず、
content
配列が null でない場合は、
適切なメッセージヘッダの書き込み後、content
配列が直接書き込まれます。
MessagingException
IOException
- ストリームへの書き込み中にエラーが発生する場合、
又は javax.activation レイヤによりエラーが生成される場合DataHandler
public String[] getHeader(String name) throws MessagingException
この実装は headers
InternetHeaders オブジェクトからヘッダを取得します。
Part
内の getHeader
name
- ヘッダの名前
MessagingException
MimeUtility
public String getHeader(String name, String delimiter) throws MessagingException
null
の場合は、最初のヘッダだけが返されます。
MimePart
内の getHeader
name
- このヘッダの名前delimiter
- 区切り文字
MessagingException
public void setHeader(String name, String value) throws MessagingException
Part
内の setHeader
name
- ヘッダ名value
- ヘッダ値
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
MimeUtility
public void addHeader(String name, String value) throws MessagingException
Part
内の addHeader
name
- ヘッダ名value
- ヘッダ値
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
MimeUtility
public void removeHeader(String name) throws MessagingException
Part
内の removeHeader
name
- このヘッダの名前
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
public Enumeration getAllHeaders() throws MessagingException
ヘッダが US-ASCII 以外の文字を含む場合、 RFC 2047 に基づいてエンコードされているので、 デコードが必要となる事に注意して下さい。
この実装は headers
InternetHeaders オブジェクトからヘッダを取得します。
Part
内の getAllHeaders
MessagingException
MimeUtility
public Enumeration getMatchingHeaders(String[] names) throws MessagingException
headers
InternetHeaders オブジェクトからヘッダを取得します。
Part
内の getMatchingHeaders
MessagingException
public Enumeration getNonMatchingHeaders(String[] names) throws MessagingException
headers
InternetHeaders オブジェクトからヘッダを取得します。
Part
内の getNonMatchingHeaders
MessagingException
public void addHeaderLine(String line) throws MessagingException
MimePart
内の addHeaderLine
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
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
public Flags getFlags() throws MessagingException
Flags
オブジェクトを返します。内部 Flags オブジェクトの複製が返されるので、 返された Flags オブジェクトを変更してもこのメッセージのフラグに影響しない事に注意して下さい。
Message
内の getFlags
MessagingException
Flags
public boolean isSet(Flags.Flag flag) throws MessagingException
flag
引数に指定されたフラグがこのメッセージ内に設定されているかどうかをチェックします。
この実装は、このメッセージの内部 flags
オブジェクトをチェックします。
Message
内の isSet
flag
- フラグ
MessagingException
Flags.Flag
,
Flags.Flag.ANSWERED
,
Flags.Flag.DELETED
,
Flags.Flag.DRAFT
,
Flags.Flag.FLAGGED
,
Flags.Flag.RECENT
,
Flags.Flag.SEEN
public void setFlags(Flags flag, boolean set) throws MessagingException
この実装は flags
フィールドを変更します。
Message
内の setFlags
flag
- 設定されるフラグを含む Flags オブジェクトset
- 設定される値
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
MessageChangedEvent
public void saveChanges() throws MessagingException
メッセージのヘッダ又は内容の任意の部分が変更された場合、
saveChanges
を呼び出して、それらの変更を永続的にしなければなりません。
そうしないと、そうした変更は、フォルダの実装により保存されたりされなかったりします。
READ_ONLY で開かれているフォルダから取得されたメッセージを変更してはいけません。 又、そうしたメッセージ上で saveChanges を呼び出してはいけません。
このメソッドは modified
フラグを true にし、
save
フラグを true にして、
updateHeaders
メソッドを呼び出します。
Message
内の saveChanges
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
protected void updateMessageID() throws MessagingException
MessagingException
protected final void updateHeaders() throws MessagingException
saveChanges
メソッドにより呼び出され、
実際に MIME ヘッダを更新します。
この実装は、Content-Transfer-Encoding
ヘッダ (必要な場合で既に設定されていない場合)、
Mime-Version
ヘッダ、及び Message-ID
ヘッダを設定します。
又、このメッセージの内容が MimeMultipart
の場合、
updateHeaders
メソッドが呼び出されます。
IllegalWriteException
- 実装が変更をサポートしない場合
IllegalStateException
- このメッセージが READ_ONLY フォルダから取得された場合
MessagingException
protected final InternetHeaders createInternetHeaders(InputStream is) throws MessagingException
is
- ヘッダ読み込み元の InputStream
MessagingException
protected MimeMessage createMimeMessage(Session session) throws MessagingException
session
- the Session to use for the new message
MessagingException
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |