public class InternetHeaders extends ObjectSE
Header
オブジェクトとして抽出できます。このクラスは、主にサービスプロバイダーを対象としています。MimeMessage および MimeBody は、ヘッダーを保持するためにこのクラスを使用します。
RFC822 および MIME ヘッダーフィールドに は、US-ASCII 文字のみを含める必要があります。ヘッダーに US-ASCII 以外の文字が含まれている場合は、RFC 2047 の規則に従ってエンコードする必要があります。このパッケージで提供されている MimeUtility クラスを使用して、これを実現できます。setHeader
、addHeader
、addHeaderLine
メソッドの呼び出し元は、指定されたヘッダーの MIME 要件を適用する責任があります。さらに、これらのヘッダーフィールドは、トランスポートの行長制限(SMTP の場合は 1000 バイト)を超える場合は、送信する前に折りたたむ(折り返す)必要があります。受信したヘッダーが折りたたまれている可能性があります。アプリケーションは、必要に応じてヘッダーを折りたたんだり展開したりする責任があります。
現在の実装はシステムプロパティ mail.mime.ignorewhitespacelines
をサポートしています。これを true に設定すると、空白のみを含む行がヘッダーを終了する空白行と見なされます。
MimeUtility
修飾子と型 | クラスと説明 |
---|---|
protected static class | InternetHeaders.InternetHeader 個別のインターネットヘッダー。 |
修飾子と型 | フィールドと説明 |
---|---|
protected ListSE<InternetHeaders.InternetHeader> | headers プレースホルダーエントリを含む、ヘッダーの実際のリスト。 |
コンストラクターと説明 |
---|
InternetHeaders() 空の InternetHeaders オブジェクトを作成します。 |
InternetHeaders(InputStreamSE is) ヘッダーと本文を区切る空白行まで、指定された RFC822 メッセージストリームを読み取って解析します。 |
InternetHeaders(InputStreamSE is, boolean allowutf8) ヘッダーと本文を区切る空白行まで、指定された RFC822 メッセージストリームを読み取って解析します。 |
修飾子と型 | メソッドと説明 |
---|---|
void | addHeader(StringSE name, StringSE value) 指定した名前と値のヘッダーをヘッダーリストに追加します。 |
void | addHeaderLine(StringSE line) RFC822 ヘッダー行をヘッダーストアに追加します。 |
EnumerationSE<StringSE> | getAllHeaderLines() すべてのヘッダー行を文字列の列挙として返します。 |
EnumerationSE<Header> | getAllHeaders() すべてのヘッダーを Header オブジェクトの列挙として返します。 |
StringSE[] | getHeader(StringSE name) 指定されたヘッダーのすべての値を返します。 |
StringSE | getHeader(StringSE name, StringSE delimiter) このヘッダー名のすべてのヘッダーを取得します。ヘッダーは区切り文字で区切られ、単一の文字列として返されます。 |
EnumerationSE<StringSE> | getMatchingHeaderLines(StringSE[] names) 一致するすべてのヘッダー行を文字列の列挙として返します。 |
EnumerationSE<Header> | getMatchingHeaders(StringSE[] names) 一致するすべての Header オブジェクトを返します。 |
EnumerationSE<StringSE> | getNonMatchingHeaderLines(StringSE[] names) 一致しないすべてのヘッダー行を返す |
EnumerationSE<Header> | getNonMatchingHeaders(StringSE[] names) 一致しないすべての Header オブジェクトを返します。 |
void | load(InputStreamSE is) ヘッダーと本文を区切る空白行まで、指定された RFC822 メッセージストリームを読み取って解析します。 |
void | load(InputStreamSE is, boolean allowutf8) ヘッダーと本文を区切る空白行まで、指定された RFC822 メッセージストリームを読み取って解析します。 |
void | removeHeader(StringSE name) 指定された名前に一致するすべてのヘッダーエントリを削除します |
void | setHeader(StringSE name, StringSE value) 名前に一致する最初のヘッダー行を値に変更し、既存のヘッダーが一致しない場合は新しいヘッダーを追加します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
protected ListSE<InternetHeaders.InternetHeader> headers
Received
および Return-Path
ヘッダーの場合はその前に追加されます)。既存のヘッダーまたはヘッダーのプレースホルダーが見つからない場合、":" という名前の特別なプレースホルダーの後に新しいヘッダーが追加されます。public InternetHeaders()
public InternetHeaders(InputStreamSE is) throws MessagingException
効率を上げるために、BufferedInputStream を実際の入力ストリームにラップし、それをパラメーターとして渡します。
プレースホルダーエントリは挿入されません。ヘッダーの元の順序は保持されます。
is
- RFC822 入力ストリーム MessagingException
- ストリームを読み取る I/O エラーの場合 public InternetHeaders(InputStreamSE is, boolean allowutf8) throws MessagingException
効率を上げるために、BufferedInputStream を実際の入力ストリームにラップし、それをパラメーターとして渡します。
プレースホルダーエントリは挿入されません。ヘッダーの元の順序は保持されます。
is
- RFC822 入力ストリーム allowutf8
- UTF-8 でエンコードされたヘッダーが許可されている場合 MessagingException
- ストリームを読み取る I/O エラーの場合 public void load(InputStreamSE is) throws MessagingException
ヘッダー行はこの InternetHeaders オブジェクトに追加されるため、このオブジェクトの既存のヘッダーは影響を受けないことに注意してください。ヘッダーは、既存のヘッダーリストの最後に順番に追加されます。
is
- RFC822 入力ストリーム MessagingException
- ストリームを読み取る I/O エラーの場合 public void load(InputStreamSE is, boolean allowutf8) throws MessagingException
ヘッダー行はこの InternetHeaders オブジェクトに追加されるため、このオブジェクトの既存のヘッダーは影響を受けないことに注意してください。ヘッダーは、既存のヘッダーリストの最後に順番に追加されます。
is
- RFC822 入力ストリーム allowutf8
- UTF-8 でエンコードされたヘッダーが許可されている場合 MessagingException
- ストリームを読み取る I/O エラーの場合 public StringSE[] getHeader(StringSE name)
null
を返します。name
- ヘッダー名 public StringSE getHeader(StringSE name, StringSE delimiter)
null
の場合、最初のヘッダーのみが返されます。指定された名前のヘッダーが存在しない場合、null
を返します。name
- ヘッダー名 delimiter
- デリミタ public void setHeader(StringSE name, StringSE value)
RFC822 ヘッダーには US-ASCII 文字のみを含めることができることに注意してください
name
- ヘッダー名 value
- ヘッダー値 public void addHeader(StringSE name, StringSE value)
現在の実装は、最もよく知られているヘッダーの優先順序を認識しており、その順序でヘッダーを挿入します。さらに、Received
ヘッダーは逆の順序(新しいものから古いものへ)で挿入する必要があり、ヘッダーの先頭に表示する必要があり、その前に可能な Return-Path
ヘッダーのみが表示される必要があることを認識しています。
RFC822 ヘッダーには、US-ASCII 文字のみを含めることができることに注意してください。
name
- ヘッダー名 value
- ヘッダー値 public void removeHeader(StringSE name)
name
- ヘッダー名 public EnumerationSE<Header> getAllHeaders()
Header
オブジェクトの列挙として返します。public EnumerationSE<Header> getMatchingHeaders(StringSE[] names)
Header
オブジェクトを返します。names
- 返すヘッダー public EnumerationSE<Header> getNonMatchingHeaders(StringSE[] names)
Header
オブジェクトを返します。names
- 返さないヘッダー public void addHeaderLine(StringSE line)
RFC822 ヘッダーには US-ASCII 文字のみを含めることができることに注意してください
line
- 生の RFC822 ヘッダー行 public EnumerationSE<StringSE> getAllHeaderLines()
public EnumerationSE<StringSE> getMatchingHeaderLines(StringSE[] names)
names
- 返すヘッダー public EnumerationSE<StringSE> getNonMatchingHeaderLines(StringSE[] names)
names
- 返さないヘッダー Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.