public class MimeMessage extends Message implements MimePart
Message
抽象クラスと MimePart
インターフェースを実装します。新しい MIME スタイルのメッセージを作成したいクライアントは、空の MimeMessage オブジェクトをインスタンス化し、適切な属性とコンテンツで埋めます。
MIME 準拠のバックエンドストアを実装するサービスプロバイダーは、MimeMessage をサブクラス化し、特定の実装を提供するために特定のメソッドをオーバーライドする場合があります。最も単純なケースは、おそらく MIME スタイルの入力ストリームを生成し、ストリームの解析をこのクラスに任せるプロバイダーです。
MimeMessage は、InternetHeaders
クラスを使用して、メッセージのトップレベル RFC 822 ヘッダーを解析および保存します。
mail.mime.address.strict
セッションプロパティは、アドレスヘッダーの解析を制御します。デフォルトでは、アドレスヘッダーの厳密な解析が行われます。このプロパティが "false"
に設定されている場合、厳密な解析は行われず、実際のメッセージで時々発生する多くの不正なアドレスが許可されます。詳細については、InternetAddress
クラスを参照してください。
RFC 822 ヘッダーフィールドに は、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 クラスを継承して RecipientTypes を追加します。 |
修飾子と型 | フィールドと説明 |
---|---|
protected ObjectSE | cachedContent コンテンツが Multipart または Message オブジェクトである場合、含まれるオブジェクトへの変更が失われないように、ストリームを解析して最初に作成したときに保存します。 |
protected byte[] | content このメッセージのコンテンツのバイトを保持するバイト配列。 |
protected InputStreamSE | contentStream このメッセージのデータが SharedInputStream インターフェースを実装する InputStream によって提供された場合、 contentStream はこのメッセージの内容を表す別のストリームです。 |
protected DataHandlerSE | dh このメッセージのコンテンツを表す DataHandler オブジェクト。 |
protected Flags | flags このメッセージのフラグ。 |
protected InternetHeaders | headers このメッセージのヘッダーを格納する InternetHeaders オブジェクト。 |
protected boolean | modified メッセージが変更されたかどうかを示すフラグ。 |
protected boolean | saved このメッセージで saveChanges メソッドを呼び出す必要がありますか? このフラグは、public コンストラクターによって false に設定され、saveChanges メソッドによって true に設定されます。 |
ATTACHMENT, INLINE
修飾子 | コンストラクターと説明 |
---|---|
protected | MimeMessage(Folder folder, InputStreamSE 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, InputStreamSE is) 指定された MIME InputStream からデータを読み取って解析することにより、MimeMessage を構築します。 |
修飾子と型 | メソッドと説明 |
---|---|
void | addFrom(Address[] addresses) 指定したアドレスを既存の「差出人」フィールドに追加します。 |
void | addHeader(StringSE name, StringSE value) この値をこの header_name の既存の値に追加します。 |
void | addHeaderLine(StringSE line) 生の RFC 822 ヘッダー行を追加します。 |
void | addRecipients(Message.RecipientType type, Address[] addresses) 指定されたアドレスを指定された受信者型に追加します。 |
void | addRecipients(Message.RecipientType type, StringSE addresses) 指定されたアドレスを指定された受信者型に追加します。 |
protected InternetHeaders | createInternetHeaders(InputStreamSE is) 指定された InputStream からヘッダーをロードする InternetHeaders オブジェクトを作成して返します。 |
protected MimeMessage | createMimeMessage(Session session) MimeMessage オブジェクトを作成して返します。 |
EnumerationSE<StringSE> | getAllHeaderLines() すべてのヘッダー行を文字列の列挙として取得します。 |
EnumerationSE<Header> | getAllHeaders() この Message のすべてのヘッダーを Header オブジェクトの列挙として返します。 |
Address[] | getAllRecipients() メッセージのすべての受信者アドレスを取得します。 |
ObjectSE | getContent() コンテンツを Java オブジェクトとして返します。 |
StringSE | getContentID() "Content-ID" ヘッダーフィールドの値を返します。 |
StringSE[] | getContentLanguage() このメッセージの "Content-Language" ヘッダーフィールドで指定された言語を取得します。 |
StringSE | getContentMD5() "Content-MD5" ヘッダーフィールドの値を返します。 |
protected InputStreamSE | getContentStream() コンテンツの生のバイトを生成します。 |
StringSE | getContentType() RFC 822 "Content-Type" ヘッダーフィールドの値を返します。 |
DataHandlerSE | getDataHandler() このメッセージのコンテンツの DataHandler を返します。 |
StringSE | getDescription() このメッセージの "Content-Description" ヘッダーフィールドを返します。 |
StringSE | getDisposition() "Content-Disposition" ヘッダーフィールドから後処理を返します。 |
StringSE | getEncoding() "Content-Transfer-Encoding" ヘッダーフィールドからコンテンツ転送エンコーディングを返します。 |
StringSE | getFileName() このメッセージに関連付けられているファイル名を取得します。 |
Flags | getFlags() このメッセージのフラグを含む Flags オブジェクトを返します。 |
Address[] | getFrom() RFC 822 の "From" ヘッダーフィールドの値を返します。 |
StringSE[] | getHeader(StringSE name) この header_name のすべてのヘッダーを取得します。 |
StringSE | getHeader(StringSE name, StringSE delimiter) このヘッダー名のすべてのヘッダーを取得します。ヘッダーは区切り文字で区切られ、単一の文字列として返されます。 |
InputStreamSE | getInputStream() このメッセージの「コンテンツ」のデコードされた入力ストリームを返します。 |
int | getLineCount() このメッセージのコンテンツの行数を返します。 |
EnumerationSE<StringSE> | getMatchingHeaderLines(StringSE[] names) 一致するヘッダー行を文字列の列挙として取得します。 |
EnumerationSE<Header> | getMatchingHeaders(StringSE[] names) この Message から一致するヘッダーを Header オブジェクトの列挙として返します。 |
StringSE | getMessageID() "Message-ID" ヘッダーフィールドの値を返します。 |
EnumerationSE<StringSE> | getNonMatchingHeaderLines(StringSE[] names) 一致しないヘッダー行を文字列の列挙として取得します。 |
EnumerationSE<Header> | getNonMatchingHeaders(StringSE[] names) このメッセージから一致しないヘッダーをヘッダーオブジェクトの列挙として返します。 |
InputStreamSE | getRawInputStream() Content-Transfer-Encoding をそのままにして、InputStream を生データに戻します。 |
DateSE | getReceivedDate() このメッセージが受信された日付を返します。 |
Address[] | getRecipients(Message.RecipientType type) 型で指定された受信者を返します。 |
Address[] | getReplyTo() RFC 822 "Reply-To" ヘッダーフィールドの値を返します。 |
Address | getSender() RFC 822 "Sender" ヘッダーフィールドの値を返します。 |
DateSE | getSentDate() RFC 822「日付」フィールドの値を返します。 |
int | getSize() このメッセージのコンテンツのサイズをバイト単位で返します。 |
StringSE | getSubject() 「サブジェクト」ヘッダーフィールドの値を返します。 |
boolean | isMimeType(StringSE mimeType) これは指定された MIME 型の一部ですか? このメソッドは、 primaryType と subType のみを比較します。 |
boolean | isSet(Flags.Flag flag) このメッセージに、 flag 引数で指定されたフラグが設定されているかどうかを確認します。 |
protected void | parse(InputStreamSE is) InputStream を解析して、 headers および content フィールドを適切に設定します。 |
void | removeHeader(StringSE name) この名前のすべてのヘッダーを削除します。 |
Message | reply(boolean replyToAll) このメッセージへの返信に適した新しいメッセージを取得します。 |
Message | reply(boolean replyToAll, boolean setAnswered) このメッセージへの返信に適した新しいメッセージを取得します。 |
void | saveChanges() メッセージの内容と一致するように、このメッセージの適切なヘッダーフィールドを更新します。 |
void | setContent(Multipart mp) このメソッドは、メッセージのコンテンツをマルチパートオブジェクトに設定します。 |
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(DataHandlerSE 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 | setFlags(Flags flag, boolean set) このメッセージのフラグを設定します。 |
void | setFrom() InternetAddress.getLocalAddress メソッドの値を使用して、RFC 822 "From" ヘッダーフィールドを設定します。 |
void | setFrom(Address address) RFC 822 "From" ヘッダーフィールドを設定します。 |
void | setFrom(StringSE address) RFC 822 "From" ヘッダーフィールドを設定します。 |
void | setHeader(StringSE name, StringSE value) この header_name の値を設定します。 |
void | setRecipients(Message.RecipientType type, Address[] addresses) 指定された受信者型を指定されたアドレスに設定します。 |
void | setRecipients(Message.RecipientType type, StringSE addresses) 指定された受信者型を指定されたアドレスに設定します。 |
void | setReplyTo(Address[] addresses) RFC 822 "Reply-To" ヘッダーフィールドを設定します。 |
void | setSender(Address address) RFC 822 "Sender" ヘッダーフィールドを設定します。 |
void | setSentDate(DateSE d) RFC 822 "Date" ヘッダーフィールドを設定します。 |
void | setSubject(StringSE subject) 「サブジェクト」ヘッダーフィールドを設定します。 |
void | setSubject(StringSE subject, StringSE charset) 「サブジェクト」ヘッダーフィールドを設定します。 |
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() saveChanges メソッドによって呼び出され、実際に MIME ヘッダーを更新します。 |
protected void | updateMessageID() Message-ID ヘッダーを更新します。 |
void | writeTo(OutputStreamSE os) メッセージを RFC 822 形式のストリームとして出力します。 |
void | writeTo(OutputStreamSE os, StringSE[] ignoreList) ヘッダーを指定せずに、メッセージを RFC 822 形式のストリームとして出力します。 |
addRecipient, getFolder, getMessageNumber, getSession, isExpunged, match, setExpunged, setFlag, setMessageNumber, setRecipient
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
protected DataHandlerSE dh
protected byte[] content
protected InputStreamSE 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
メソッドを呼び出すのを忘れるというよくある間違いを回避できます。protected ObjectSE cachedContent
このフィールドが null でない場合、getContent()
メソッドによって返されます。getContent()
メソッドは、Multipart または MimeMessage オブジェクトを返す場合にこのフィールドを設定します。このフィールドは、setDataHandler(javax.activation.DataHandler)
メソッドによってクリアされます。
public MimeMessage(Session session)
headers
フィールドは空の InternetHeaders オブジェクトに設定されます。flags
フィールドは、空の Flags オブジェクトに設定されます。modified
フラグは true に設定されています。session
- セッション public MimeMessage(Session session, InputStreamSE is) throws MessagingException
入力ストリームには、ヘッダーとデータを含む MIME 形式のメッセージ全体が含まれています。
session
- このメッセージのセッションオブジェクト is
- メッセージ入力ストリーム MessagingException
- 失敗 public MimeMessage(MimeMessage source) throws MessagingException
source
MimeMessage から初期化されたコンテンツで新しい MimeMessage を構築します。新しいメッセージは元のメッセージから独立しています。メモ: 現在の実装はかなり非効率的で、厳密に必要な回数よりも多くの回数データをコピーします。
source
- コンテンツをコピーするメッセージ MessagingException
- 失敗 protected MimeMessage(Folder folder, int msgnum)
このメソッドは、MimeMessage
をサブクラス化するプロバイダー用です。
folder
- このメッセージの送信元のフォルダー msgnum
- このメッセージの数 protected MimeMessage(Folder folder, InputStreamSE is, int msgnum) throws MessagingException
このメソッドは、MimeMessage
をサブクラス化するプロバイダー用です。
folder
- 含まれているフォルダー。is
- メッセージ入力ストリーム msgnum
- フォルダー内のこのメッセージのメッセージ番号 MessagingException
- 失敗 protected MimeMessage(Folder folder, InternetHeaders headers, byte[] content, int msgnum) throws MessagingException
MimeMessage
をサブクラス化するプロバイダー用です。folder
- 含まれているフォルダー。headers
- ヘッダー content
- メッセージの内容 msgnum
- フォルダー内のこのメッセージのメッセージ番号 MessagingException
- 失敗 protected void parse(InputStreamSE 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
- 基本となる実装が既存の値の変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public void setFrom(StringSE address) throws MessagingException
null
の場合、このヘッダーは削除されます。address
- このメッセージの送信者 IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public void setFrom() throws MessagingException
InternetAddress.getLocalAddress
メソッドの値を使用して、RFC 822 "From" ヘッダーフィールドを設定します。Message
の setFrom
IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public void addFrom(Address[] addresses) throws MessagingException
Message
の addFrom
addresses
- このメッセージの送信者 IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public Address getSender() throws MessagingException
null
が返されます。 この実装では、getHeader
メソッドを使用して、必要なヘッダーフィールドを取得します。
MessagingException
- 失敗 headers
public void setSender(Address address) throws MessagingException
null
の場合、このヘッダーは削除されます。address
- このメッセージの送信者 IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。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 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
- 基本となる実装が既存の値の変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 getRecipients(javax.mail.Message.RecipientType)
public void setRecipients(Message.RecipientType type, StringSE addresses) throws MessagingException
null
の場合、対応する受信者フィールドは削除されます。type
- 受信者型 addresses
- 住所 AddressException
- アドレス文字列を解析する試みが失敗した場合 IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 getRecipients(javax.mail.Message.RecipientType)
public void addRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException
Message
の addRecipients
type
- 受信者型 addresses
- 住所 IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public void addRecipients(Message.RecipientType type, StringSE addresses) throws MessagingException
type
- 受信者型 addresses
- 住所 AddressException
- アドレス文字列を解析する試みが失敗した場合 IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが 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
- 基本となる実装が既存の値の変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public StringSE getSubject() throws MessagingException
件名が RFC 2047 に従ってエンコードされている場合、デコードされ、Unicode に変換されます。デコードまたは変換が失敗した場合、生データはそのまま返されます。
この実装では、getHeader
メソッドを使用して、必要なヘッダーフィールドを取得します。
Message
の getSubject
MessagingException
- 失敗 headers
public void setSubject(StringSE subject) throws MessagingException
アプリケーションは、件名に改行が含まれていないことを確認する必要があります。
文字セットエンコーディングプロセスが失敗した場合、MessagingException がスローされ、MessagingException 内のネストされた例外のチェーンに UnsupportedEncodingException が含まれることに注意してください。
Message
の setSubject
subject
- 件名 IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public void setSubject(StringSE subject, StringSE charset) throws MessagingException
アプリケーションは、件名に改行が含まれていないことを確認する必要があります。
文字セットエンコーディングプロセスが失敗した場合、MessagingException がスローされ、MessagingException 内のネストされた例外のチェーンに UnsupportedEncodingException が含まれることに注意してください。
subject
- 件名 charset
- 文字セット IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public DateSE getSentDate() throws MessagingException
この実装では、getHeader
メソッドを使用して、必要なヘッダーフィールドを取得します。
Message
の getSentDate
MessagingException
- 失敗 public void setSentDate(DateSE d) throws MessagingException
null
の場合、既存の「日付」フィールドは削除されます。Message
の setSentDate
d
- このメッセージの送信日 IllegalWriteException
- 基本となる実装が変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public DateSE 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 StringSE getContentType() throws MessagingException
この実装では、getHeader
メソッドを使用して、必要なヘッダーフィールドを取得します。
Part
の getContentType
MessagingException
- 失敗 DataHandler
SEpublic boolean isMimeType(StringSE mimeType) throws MessagingException
primaryType
と subType
のみを比較します。コンテンツ型のパラメーターは無視されます。 例: このメソッドは、コンテンツ型 "text/plain" のパーツを "text/plain; charset=foobar" と比較するときに true
を返します。
mimeType
の subType
が特殊文字 "*" の場合、サブ型は比較中に無視されます。
Part
の isMimeType
mimeType
- チェックする MIME 型 MessagingException
- 失敗 public StringSE getDisposition() throws MessagingException
Content-Disposition フィールドが使用できない場合、null
が返されます。
この実装では、getHeader
メソッドを使用して、必要なヘッダーフィールドを取得します。
Part
の getDisposition
MessagingException
- 失敗 Part.ATTACHMENT
, Part.INLINE
, Part.getFileName()
public void setDisposition(StringSE disposition) throws MessagingException
Part
の setDisposition
disposition
- このパートの処分 IllegalWriteException
- 基本となる実装が変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 Part.ATTACHMENT
, Part.INLINE
, Part.setFileName(java.lang.String)
public StringSE getEncoding() throws MessagingException
null
を返します。 この実装では、getHeader
メソッドを使用して、必要なヘッダーフィールドを取得します。
MimePart
の getEncoding
MessagingException
- 失敗 public StringSE getContentID() throws MessagingException
null
を返します。 この実装では、getHeader
メソッドを使用して、必要なヘッダーフィールドを取得します。
MimePart
の getContentID
MessagingException
- 失敗 public void setContentID(StringSE cid) throws MessagingException
cid
パラメーターが null の場合、既存の "Content-ID" は削除されます。cid
- コンテンツ IDIllegalWriteException
- 基本となる実装が変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public StringSE getContentMD5() throws MessagingException
null
を返します。 この実装では、getHeader
メソッドを使用して、必要なヘッダーフィールドを取得します。
MimePart
の getContentMD5
MessagingException
- 失敗 public void setContentMD5(StringSE md5) throws MessagingException
MimePart
の setContentMD5
md5
- MD5 値 IllegalWriteException
- 基本となる実装が変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public StringSE getDescription() throws MessagingException
Content-Description フィールドが RFC 2047 に従ってエンコードされている場合、デコードされ、Unicode に変換されます。デコードまたは変換が失敗した場合、生データはそのまま返されます
この実装では、getHeader
メソッドを使用して、必要なヘッダーフィールドを取得します。
Part
の getDescription
MessagingException
- 失敗 public void setDescription(StringSE description) throws MessagingException
null
の場合、既存の "Content-Description" フィールドは削除されます。説明に US-ASCII 以外の文字が含まれている場合、プラットフォームのデフォルトの文字セットを使用してエンコードされます。説明に US-ASCII 文字のみが含まれている場合、エンコードは行われず、そのまま使用されます。
文字セットエンコーディングプロセスが失敗した場合、MessagingException がスローされ、MessagingException 内のネストされた例外のチェーンに UnsupportedEncodingException が含まれることに注意してください。
Part
の setDescription
description
- content-descriptionIllegalWriteException
- 基本となる実装が変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- 文字セット変換が失敗した場合、UnsupportedEncodingException が例外チェーンに含まれる可能性があります。public void setDescription(StringSE description, StringSE charset) throws MessagingException
null
の場合、既存の "Content-Description" フィールドは削除されます。説明に US-ASCII 以外の文字が含まれている場合は、指定された文字セットを使用してエンコードされます。説明に US-ASCII 文字のみが含まれている場合、エンコードは行われず、そのまま使用されます。
文字セットエンコーディングプロセスが失敗した場合、MessagingException がスローされ、MessagingException 内のネストされた例外のチェーンに UnsupportedEncodingException が含まれることに注意してください。
description
- 説明 charset
- エンコード用の文字セット IllegalWriteException
- 基本となる実装が変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- 文字セット変換が失敗した場合、UnsupportedEncodingException が例外チェーンに含まれる可能性があります。public StringSE[] getContentLanguage() throws MessagingException
null
を返します。 この実装では、getHeader
メソッドを使用して、必要なヘッダーフィールドを取得します。
MimePart
の getContentLanguage
MessagingException
- 失敗 public void setContentLanguage(StringSE[] languages) throws MessagingException
MimePart
の setContentLanguage
languages
- 言語タグの配列 IllegalWriteException
- 基本となる実装が変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public StringSE getMessageID() throws MessagingException
ここで提供されるデフォルトの実装では、getHeader
メソッドを使用して "Message-ID" フィールドの値を返します。
MessagingException
- このフィールドの取得で例外が発生した場合。MessageIDTerm
public StringSE getFileName() throws MessagingException
このメッセージの "Content-Disposition" ヘッダーフィールドから "filename" パラメーターの値を返します。使用できない場合は、この BodyPart の "Content-Type" ヘッダーフィールドから "name" パラメーターの値を返します。両方が存在しない場合、null
を返します。
mail.mime.encodefilename
システムプロパティが true に設定されている場合、MimeUtility.decodeText
メソッドを使用してファイル名をデコードします。このようなエンコーディングは MIME 仕様ではサポートされていませんが、多くのメーラーはこの手法を使用して、ファイル名で非 ASCII 文字をサポートしています。このプロパティのデフォルト値は false です。
Part
の getFileName
MessagingException
- 失敗 public void setFileName(StringSE filename) throws MessagingException
このメッセージの "Content-Disposition" ヘッダーフィールドの "filename" パラメーターを設定します。
mail.mime.encodefilename
システムプロパティが true に設定されている場合、MimeUtility.encodeText
メソッドを使用してファイル名をエンコードします。このようなエンコーディングは MIME 仕様ではサポートされていませんが、多くのメーラーはこの手法を使用して、ファイル名で非 ASCII 文字をサポートしています。このプロパティのデフォルト値は false です。
Part
の setFileName
filename
- このパーツに関連付けるファイル名 IllegalWriteException
- 基本となる実装が変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public InputStreamSE getInputStream() throws IOExceptionSE, MessagingException
この実装は、DataHandler から入力ストリームを取得します。つまり、getDataHandler().getInputStream()
を呼び出します。
Part
の getInputStream
IOExceptionSE
- これは通常、DataHandler によってスローされます。詳細については、javax.activation.DataHandler のドキュメントを参照してください。MessagingException
- その他の障害の場合 getContentStream()
, DataHandler.getInputStream()
SEprotected InputStreamSE getContentStream() throws MessagingException
contentStream
が null でない場合、この実装は SharedInputStream を返します。それ以外の場合は、content
バイト配列から構築された ByteArrayInputStream を返します。
MessagingException
- 失敗 content
public InputStreamSE getRawInputStream() throws MessagingException
getInputStream
メソッドまたは getContent
メソッドが正しいデータを返すことができなくなります。このような場合、アプリケーションはこのメソッドを使用して、生データ自体をデコードしようとすることがあります。 この実装は単に getContentStream
メソッドを呼び出します。
MessagingException
- 失敗 getInputStream()
, getContentStream()
public DataHandlerSE 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()); } .... <other DataSource methods> }
Part
の getDataHandler
MessagingException
- 失敗 public ObjectSE getContent() throws IOExceptionSE, MessagingException
この実装は DataHandler からコンテンツを取得します。つまり、getDataHandler().getContent()
を呼び出します。コンテンツがマルチパートまたはメッセージオブジェクトであり、ストリームを解析することによって作成された場合、コンテンツへの変更が失われないように、オブジェクトはキャッシュされ、後続の呼び出しで返されます。
Part
の getContent
IOExceptionSE
- これは通常、DataHandler によってスローされます。詳細については、javax.activation.DataHandler のドキュメントを参照してください。MessagingException
- その他の障害の場合 Part
, DataHandler.getContent()
SEpublic void setDataHandler(DataHandlerSE dh) throws MessagingException
Part
の setDataHandler
dh
- コンテンツの DataHandler。IllegalWriteException
- 基本となる実装が変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public void setContent(ObjectSE o, StringSE type) throws MessagingException
コンテンツは DataHandler オブジェクトにラップされています。これが正しく機能するためには、指定された型の DataContentHandler クラスが JavaMail 実装で使用可能である必要があることに注意してください。つまり、setContent(foobar, "application/x-foobar")
を実行するには、"application/x-foobar" 用の DataContentHandler をインストールする必要があります。詳細については、Java Activation フレームワークを参照してください。
Part
の setContent
o
- コンテンツオブジェクト type
- オブジェクトの MIME 型 IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public void setText(StringSE text) throws MessagingException
text
が大きい場合、このメソッドはすべての文字をスキャンして、使用する文字セットを決定する必要があるため、パフォーマンスが低下する可能性があることに注意してください。
文字セットが既知の場合は、文字セットパラメーターを受け取る setText
メソッドを使用します。
MimePart
の setText
Part
の setText
text
- 設定するテキストコンテンツ MessagingException
- エラーが発生した場合 setText(String text, String charset)
public void setText(StringSE text, StringSE charset) throws MessagingException
MimePart
の setText
text
- 設定するテキストコンテンツ charset
- テキストに使用する文字セット MessagingException
- エラーが発生した場合 public void setText(StringSE text, StringSE charset, StringSE subtype) throws MessagingException
MimePart
の setText
text
- 設定するテキストコンテンツ charset
- テキストに使用する文字セット subtype
- 使用する MIME サブ型 (例: "html" )MessagingException
- エラーが発生した場合 public void setContent(Multipart mp) throws MessagingException
Part
の setContent
mp
- メッセージのコンテンツであるマルチパートオブジェクト IllegalWriteException
- 基本となる実装が既存の値の変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public Message reply(boolean replyToAll) throws MessagingException
replyToAll
が設定されている場合、新しいメッセージはこのメッセージのすべての受信者に送信されます。それ以外の場合、返信はこのメッセージの送信者のみに送信されます(getReplyTo
メソッドの値を使用)。
「サブジェクト」フィールドには、"Re:" で始まる元の件名が入力されます(すでに "Re:" で始まっている場合を除く)。このメッセージに "Message-Id" ヘッダーがある場合、"In-Reply-To" ヘッダーは新しいメッセージに設定されます。このメッセージでは ANSWERED
フラグが設定されています。現在の実装では、新しいメッセージの "References" ヘッダーを設定して、このメッセージの "References" ヘッダーのコンテンツ(または、欠落している場合は "In-Reply-To" ヘッダー)と、" RFC 2822 で説明されている、このメッセージの Message-Id " ヘッダー。
Message
の reply
replyToAll
- このメッセージのすべての受信者に返信を送信する必要があります MessagingException
- 失敗 public Message reply(boolean replyToAll, boolean setAnswered) throws MessagingException
replyToAll
が設定されている場合、新しいメッセージはこのメッセージのすべての受信者に送信されます。それ以外の場合、返信はこのメッセージの送信者のみに送信されます(getReplyTo
メソッドの値を使用)。
setAnswered
が設定されている場合、ANSWERED
フラグがこのメッセージで設定されます。
「サブジェクト」フィールドには、"Re:" で始まる元の件名が入力されます(すでに "Re:" で始まっている場合を除く)。このメッセージに "Message-Id" ヘッダーがある場合、"In-Reply-To" ヘッダーは新しいメッセージに設定されます。現在の実装では、新しいメッセージの "References" ヘッダーを設定して、このメッセージの "References" ヘッダーのコンテンツ(または、欠落している場合は "In-Reply-To" ヘッダー)と、" RFC 2822 で説明されている、このメッセージの Message-Id " ヘッダー。
replyToAll
- このメッセージのすべての受信者に返信を送信する必要があります setAnswered
- このメッセージに ANSWERED フラグを設定しますか? MessagingException
- 失敗 public void writeTo(OutputStreamSE os) throws IOExceptionSE, MessagingException
メッセージがどのように構成されたかに応じて、さまざまな回線終了規則を使用する場合があることに注意してください。通常、出力は、ラインターミネーターを目的の形式に変換する適切な FilterOutputStream を介して送信する必要があります。MIME 互換性のために CRLF でインターネットプロトコルで使用するか、ローカルプラットフォームのラインターミネーターでローカルテキストファイルに保存します。
この実装は、null 無視リストを使用して writeTo(OutputStream, String[])
メソッドを呼び出します。
Part
の writeTo
os
- 書き込むストリーム IOExceptionSE
- ストリームへの書き込み中にエラーが発生した場合、または javax.activation レイヤーによってエラーが生成された場合。MessagingException
- その他の障害の場合 DataHandler.writeTo(java.io.OutputStream)
SEpublic void writeTo(OutputStreamSE os, StringSE[] ignoreList) throws IOExceptionSE, MessagingException
saved
フラグが設定されていない場合、saveChanges
メソッドが呼び出されます。modified
フラグが設定されておらず、content
配列が null でない場合、適切なメッセージヘッダーを書き込んだ後、content
配列が直接書き込まれます。os
- 書き込むストリーム ignoreList
- 出力に含めないヘッダー IOExceptionSE
- ストリームへの書き込み中にエラーが発生した場合、または javax.activation レイヤーによってエラーが生成された場合。MessagingException
- その他の障害の場合 DataHandler.writeTo(java.io.OutputStream)
SEpublic StringSE[] getHeader(StringSE name) throws MessagingException
この実装は、headers
InternetHeaders オブジェクトからヘッダーを取得します。
Part
の getHeader
name
- ヘッダーの名前 MessagingException
- 失敗 MimeUtility
public StringSE getHeader(StringSE name, StringSE delimiter) throws MessagingException
null
の場合、最初のヘッダーのみが返されます。MimePart
の getHeader
name
- このヘッダーの名前 delimiter
- 値の間のセパレータ MessagingException
- 失敗 public void setHeader(StringSE name, StringSE value) throws MessagingException
Part
の setHeader
name
- ヘッダー名 value
- ヘッダー値 IllegalWriteException
- 基本となる実装が変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 MimeUtility
public void addHeader(StringSE name, StringSE value) throws MessagingException
Part
の addHeader
name
- ヘッダー名 value
- ヘッダー値 IllegalWriteException
- 基本となる実装が変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 MimeUtility
public void removeHeader(StringSE name) throws MessagingException
Part
の removeHeader
name
- このヘッダーの名前 IllegalWriteException
- 基本となる実装が変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public EnumerationSE<Header> getAllHeaders() throws MessagingException
特定のヘッダーは US-ASCII 以外の文字を含み、デコードする必要がある場合、RFC 2047 に従ってエンコードされる場合があることに注意してください。
この実装は、headers
InternetHeaders オブジェクトからヘッダーを取得します。
Part
の getAllHeaders
MessagingException
- 失敗 MimeUtility
public EnumerationSE<Header> getMatchingHeaders(StringSE[] names) throws MessagingException
headers
InternetHeaders オブジェクトからヘッダーを取得します。Part
の getMatchingHeaders
names
- 一致するヘッダー MessagingException
- 失敗 public EnumerationSE<Header> getNonMatchingHeaders(StringSE[] names) throws MessagingException
headers
InternetHeaders オブジェクトからヘッダーを取得します。Part
の getNonMatchingHeaders
names
- 一致しないヘッダー MessagingException
- 失敗 public void addHeaderLine(StringSE line) throws MessagingException
MimePart
の addHeaderLine
line
- 追加する行 IllegalWriteException
- 基本となる実装が変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 public EnumerationSE<StringSE> getAllHeaderLines() throws MessagingException
MimePart
の getAllHeaderLines
MessagingException
- 失敗 public EnumerationSE<StringSE> getMatchingHeaderLines(StringSE[] names) throws MessagingException
MimePart
の getMatchingHeaderLines
names
- 返すヘッダー MessagingException
- 失敗 public EnumerationSE<StringSE> getNonMatchingHeaderLines(StringSE[] names) throws MessagingException
MimePart
の getNonMatchingHeaderLines
names
- 返さないヘッダー 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
- 基本となる実装が変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 MessageChangedEvent
public void saveChanges() throws MessagingException
メッセージのヘッダーまたはコンテンツの一部が変更された場合、saveChanges
を呼び出して、それらの変更が永続的であることを確認する必要があります。それ以外の場合、フォルダーの実装に応じて、そのような変更は保存される場合とされない場合があります。
READ_ONLY で開かれたフォルダーから取得されたメッセージは変更してはならず、そのようなメッセージに対して saveChanges を呼び出してはなりません。
このメソッドは、modified
フラグを true に設定し、save
フラグを true に設定してから、updateHeaders
メソッドを呼び出します。
Message
の saveChanges
IllegalWriteException
- 基本となる実装が変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 protected void updateMessageID() throws MessagingException
updateHeaders
によって呼び出され、サブクラスが Message-ID を選択するためのアルゴリズムのみをオーバーライドできるようにします。MessagingException
- 失敗 protected void updateHeaders() throws MessagingException
saveChanges
メソッドによって呼び出され、MIME ヘッダーを実際に更新します。ここでの実装は、Content-Transfer-Encoding
ヘッダー(必要であり、まだ設定されていない場合)、Date
ヘッダー(まだ設定されていない場合)、MIME-Version
ヘッダー、Message-ID
ヘッダーを設定します。また、このメッセージの内容が MimeMultipart
の場合、その updateHeaders
メソッドが呼び出されます。cachedContent
フィールドが null でない場合(つまり、マルチパートまたはメッセージオブジェクトを参照している場合)、そのオブジェクトは新しい DataHandler の設定に使用され、このオブジェクトの作成に使用されたストリームデータはすべて破棄され、cachedContent
フィールドはクリアされます。
IllegalWriteException
- 基本となる実装が変更をサポートしていない場合 IllegalStateExceptionSE
- このメッセージが READ_ONLY フォルダーから取得された場合。MessagingException
- その他の障害の場合 protected InternetHeaders createInternetHeaders(InputStreamSE is) throws MessagingException
is
- ヘッダーを読み取る InputStreamMessagingException
- 失敗 protected MimeMessage createMimeMessage(Session session) throws MessagingException
session
- 新しいメッセージに使用するセッション MessagingException
- 失敗 Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.