パッケージ jakarta.mail.internet
インターネットメールシステムに固有のクラス。このパッケージは、MIME 標準 ( RFC 2045、RFC 2046、RFC 2047 ) に基づくインターネットメールシステムに固有の機能をサポートします。IMAP、SMTP、POP3 プロトコルは
MimeMessages
を使用します。プロパティ Jakarta Mail API は、Session
オブジェクト、または Session
オブジェクトの作成に使用される Properties
オブジェクトで設定できる次の標準プロパティをサポートしています。プロパティは常に文字列として設定されます。Type 列は、文字列の解釈方法を示します。例: 使用
session.setProperty("mail.mime.address.strict", "false");
ブール型の mail.mime.address.strict
プロパティを設定します。
名前 | タイプ | 説明 |
---|---|---|
mail.mime.address.strict | boolean | mail.mime.address.strict セッションプロパティは、アドレスヘッダーの解析を制御します。デフォルトでは、アドレスヘッダーの厳密な解析が行われます。このプロパティが "false" に設定されている場合、厳密な解析は行われず、実際のメッセージで時々発生する多くの不正アドレスが許可されます。詳細については、InternetAddress クラスを参照してください。 |
mail.mime.allowutf8 | boolean | "true" に設定した場合、UTF-8 文字列はメッセージヘッダー、たとえばアドレスで許可されます。これは、メールサーバーが UTF-8 もサポートしている場合にのみ設定する必要があります。 |
Jakarta Mail API 仕様では、System
プロパティで設定する必要がある次のプロパティのサポートが必要です。プロパティは常に文字列として設定されます。Type 列は、文字列の解釈方法を示します。例: 使用
System.setProperty("mail.mime.decodetext.strict", "false");
ブール型の mail.mime.decodetext.strict
プロパティを設定します。
名前 | タイプ | 説明 |
---|---|---|
mail.mime.charset | String | mail.mime.charset システムプロパティを使用すると、エンコードされた単語やテキストパーツに使用するデフォルトの MIME 文字セットを指定できます。通常、デフォルトの MIME 文字セットは、file.encoding システムプロパティで指定されているデフォルトの Java 文字セットから派生します。ほとんどのアプリケーションでは、デフォルトの MIME 文字セットを明示的に設定する必要はありません。メールメッセージに使用されるデフォルトの MIME 文字セットが、システムに保存されているファイルに使用される文字セットと異なる場合は、このプロパティを設定する必要があります。 |
mail.mime.decodetext.strict | boolean | mail.mime.decodetext.strict プロパティは、MIME エンコードされた単語のデコードを制御します。MIME 仕様では、エンコードされた単語は空白で区切られた単語の先頭から始まる必要があります。一部のメーラーでは、エンコードされた単語が単語の途中に誤って含まれています。mail.mime.decodetext.strict システムプロパティが "false" に設定されている場合、これらの不正なエンコードされた単語をデコードしようとします。デフォルトは true です。 |
mail.mime.encodeeol.strict | boolean | mail.mime.encodeeol.strict プロパティは、型が「テキスト」ではない MIME パーツの Content-Transfer-Encoding の選択を制御します。多くの場合、このような部分にはテキストデータが含まれ、通常の行末規則を可能にするエンコーディングが適切です。まれに、そのような部分に完全にテキストデータが含まれているように見えますが、CR および LF 文字を変更せずに保持するエンコードが必要になります。mail.mime.encodeeol.strict システムプロパティが "true" に設定されている場合、そのようなエンコーディングが必要なときに使用されます。デフォルトは false です。 |
mail.mime.decodefilename | boolean | "true" に設定すると、getFileName メソッドは MimeUtility メソッド decodeText を使用して、ファイル名の非 ASCII 文字をデコードします。このデコードは MIME 仕様に違反していますが、この規則を使用する一部のメールクライアントとの相互運用に役立ちます。デフォルトは false です。 |
mail.mime.encodefilename | boolean | "true" に設定した場合、setFileName メソッドは MimeUtility メソッド encodeText を使用して、ファイル名の非 ASCII 文字をエンコードします。このエンコーディングは MIME 仕様に違反していますが、この規則を使用する一部のメールクライアントとの相互運用には便利です。デフォルトは false です。 |
mail.mime.decodeparameters | boolean | "false" に設定した場合、ParameterList の非 Content パラメーター(Content-Type ヘッダーなど)は、RFC 2231 で指定されたとおりにデコードされません。デフォルトは true です。 |
mail.mime.encodeparameters | boolean | "false" に設定した場合、ParameterList の非 Content パラメーター(Content-Type ヘッダーなど)は、RFC 2231 で指定されたとおりにエンコードされません。デフォルトは true です。 |
mail.mime.multipart。ignoremissingendboundary | boolean | 通常、マルチパート MIME メッセージを解析する場合、最後の終了境界線がないメッセージはエラーとは見なされません。データは単に入力の終わりで終わります。この形式のメッセージは MIME 仕様に違反していることに注意してください。プロパティ mail.mime.multipart.ignoremissingendboundary が false に設定されている場合、そのようなメッセージはエラーと見なされ、そのようなメッセージを解析するときに MesagingException がスローされます。 |
mail.mime.multipart。ignoremissingboundaryparameter | boolean | マルチパートコンテンツの Content-Type ヘッダーに boundary パラメーターがない場合、マルチパート解析コードは、境界線のように見えるコンテンツの最初の行を探し、その行から境界パラメーターを抽出します。このプロパティが "false" に設定されている場合、Content-Type ヘッダーで境界パラメーターが指定されていなければ、MessagingException がスローされます。デフォルトは true です。 |
mail.mime.multipart。既存の境界パラメーターを無視する | boolean | 通常、マルチパートボディパーツの Content-Type ヘッダーの境界パラメーターは、マルチパートボディのパーツ間のセパレーターを指定するために使用されます。このシステムプロパティを "true" に設定すると、パーサーが境界線のように見えるマルチパートボディ内の行を探し、その値を後続のパーツ間のセパレーターとして使用できます。これは、壊れたウイルス対策製品がメッセージを誤って書き換え、境界パラメーターと実際の境界値が一致しなくなった場合に役立ちます。このプロパティのデフォルト値は false です。 |
mail.mime.multipart。空っぽ | boolean | 通常、ボディパーツを含まない MimeMultipart を書き込む場合、またはボディパーツを含まないマルチパートメッセージを解析しようとすると、MessagingException がスローされます。MIME 仕様では、ボディパーツのないマルチパートコンテンツは許可されていません。このシステムプロパティを "true" に設定すると、この動作をオーバーライドできます。このような MimeMultipart を書き込むと、1 つの空のパーツが含まれます。このようなマルチパートを読み取ると、MimeMultipart はボディパーツなしで作成されます。このプロパティのデフォルト値は false です。 |
次のプロパティは、Jakarta Mail の EE4J 実装でサポートされていますが、現在、仕様の必須部分ではありません。これらは Session
プロパティとして設定する必要があります。これらのプロパティの名前、型、デフォルト、セマンティクスは、将来のリリースで変更される可能性があります。
名前 | タイプ | 説明 |
---|---|---|
mail.alternates | String | 現在のユーザーが知っている他のメールアドレスを含む文字列。MimeMessage reply メソッドは、作成するメッセージの受信者リストからこれらのアドレスを削除して、送信者に返信が返送されないようにします。 |
mail.replyallcc | boolean | "true" に設定されている場合、MimeMessage reply メソッドは、元の送信者を除くすべての受信者を、新しく作成されたメッセージの Cc リストに入れます。通常、元のメッセージの To ヘッダーの受信者は、新しく作成されたメッセージの To リストにも表示されます。 |
次のプロパティは、Jakarta Mail の EE4J 実装でサポートされていますが、現在、仕様の必須部分ではありません。これらは System
プロパティとして設定する必要があります。これらのプロパティの名前、型、デフォルト、セマンティクスは、将来のリリースで変更される可能性があります。
名前 | タイプ | 説明 |
---|---|---|
mail.mime.base64.ignoreerrors | boolean | "true" に設定すると、BASE64 デコーダーはエンコードされたデータのエラーを無視し、EOF を返します。これは、エンコードされたストリームの末尾に無関係なデータが含まれている、不適切にエンコードされたメッセージを処理する場合に役立ちます。ただし、ストリームのどこかにエラーがあると、デコーダーはデコードを停止するため、これは十分注意して使用する必要があります。デフォルトは false です。 |
mail.mime.foldtext | boolean | "true" に設定すると、Subject や Content-Description ヘッダーフィールドなどのテキストのみを含むヘッダーフィールド、および Content-Type などの構造化ヘッダーの長いパラメーター値は、設定時に折りたたまれ(76 文字の行に分割)、読み取られたときに展開されます。デフォルトは true です。 |
mail.mime.setcontenttypefilename | boolean | "true" に設定した場合、setFileName メソッドは、Content-Type ヘッダーの name パラメーターも指定したファイル名に設定します。これにより、一部の古いメールクライアントとの相互運用性がサポートされます。デフォルトは true です。 |
mail.mime.setdefaulttextcharset | boolean | メッセージのヘッダーを更新するとき、このプロパティが "true" に設定されている場合、text コンテンツ型を含むが charset パラメーターを含まないボディパーツには、charset パラメーターが追加されます。デフォルトは true です。 |
mail.mime.parameters.strict | boolean | false に設定すると、メッセージを読み取るときに、Content-Type や Content-Disposition などのヘッダーフィールドのパラメーター値に、引用符なしで空白やその他の特殊文字を含めることができます。パラメーター値は次のセミコロンで終了します。true(デフォルト)に設定した場合、パラメーター値は MIME 仕様に準拠する必要があり、空白または特殊文字が含まれている場合は引用符で囲む必要があります。 |
mail.mime.applefilenames | boolean | Apple Mail は、パラメーター値を引用符で囲むのを忘れて、スペースを含むファイル名を誤ってエンコードします。このプロパティが "true" に設定されている場合、Jakarta Mail はパラメーターの解析時にこの状況を検出し、回避しようとします。デフォルトは false です。このプロパティは、mail.mime.parameters.strict プロパティを false に設定することで処理されるケースのサブセットを処理することに注意してください。このプロパティは将来のリリースで削除される可能性があります。 |
mail.mime.windowsfilenames | boolean | Internet Explorer 6 では、アップロードされたファイルの Content-Disposition ヘッダーのファイル名パラメーターに完全なパス名が誤って含まれ、パス名の円記号を適切にエスケープできません。このプロパティが "true" に設定されている場合、Jakarta Mail はすべての MIME ヘッダーの「ファイル名」および「名前」パラメーターのすべてのバックスラッシュを保持します。デフォルトは false です。これは MIME 仕様の違反ですが、Jakarta Mail を使用して IE6 から送信されたアップロードファイルの HTTP メッセージを解析するときに役立つ場合があります。 |
mail.mime。ignoreunknownencoding | boolean | "true" に設定すると、メッセージの読み取り時に Content-Transfer-Encoding ヘッダーの不明な値が無視され、「8 ビット」のエンコーディングが想定されます。"false" に設定すると、不明なエンコーディング値に対して例外がスローされます。デフォルトは false です。 |
mail.mime.uudecode。エラーを無視 | boolean | "true" に設定すると、uuencode されたドキュメントのエンコードされた形式のエラーは、メッセージ部分を読み取るときに無視されます。"false" に設定すると、正しくエンコードされていないメッセージ部分に対して例外がスローされます。デフォルトは false です。 |
mail.mime.uudecode。ignoremissingbeginend | boolean | "true" に設定すると、uuencode されたドキュメントで欠落している "being" 行または "end" 行がメッセージ部分を読み取るときに無視されます。"false" に設定すると、uuencode されたメッセージ部分に対して、必要な「開始」行と「終了」行のない例外がスローされます。デフォルトは false です。 |
mail.mime。無視する | boolean | 通常、MIME 部分のヘッダーは、空行で本文と区切られています。このシステムプロパティを "true" に設定すると、パーサーは空白のみを含む行を空行と見なします。このプロパティのデフォルト値は false です。 |
mail.mime。ignoremultipartencoding | boolean | MIME 仕様では、型 multipart/* のボディパーツをエンコードできません。この場合、Content-Transfer-Encoding ヘッダーは無視されます。このシステムプロパティを "false" に設定すると、マルチパートコンテンツで Content-Transfer-Encoding ヘッダーが受け入れられます。このプロパティのデフォルト値は true です。 |
mail.mime.allowencodedmessages | boolean | MIME 仕様では、型 message/* の本文部分をエンコードすることはできません。この場合、Content-Transfer-Encoding ヘッダーは無視されます。Microsoft Outlook の一部のバージョンでは、メッセージの添付ファイルが誤ってエンコードされます。このシステムプロパティを "true" に設定すると、メッセージの添付ファイルで Content-Transfer-Encoding ヘッダーが受け入れられます。このプロパティのデフォルト値は false です。 |
mail.mime.contenttypehandler | String | Jakarta Mail が無効な Content-Type ヘッダーを含むメッセージを処理できない場合があります。ヘッダーに誤った構文またはその他の問題がある可能性があります。このプロパティは、Jakarta Mail が使用する前に Content-Type ヘッダー値をクリーンアップするために使用されるクラスの名前を指定します。クラスには、次のシグネチャーを持つメソッドが必要です。public static String cleanContentType(MimePart mp, String contentType) Jakarta Mail がメッセージの Content-Type ヘッダーにアクセスするときは常に、このメソッドに値を渡し、代わりに戻り値を使用します。Content-Type ヘッダーが存在しない場合、値は null になることがあります。null を返すと、デフォルトの Content-Type が使用されます。MimePart を使用して、メッセージ部分の他のヘッダーにアクセスし、Content-Type を修正する方法を決定できます。Content-Type ハンドラーは、未加工のヘッダー値を返す getHeader メソッドに影響を与えないことに注意してください。ハンドラーは IMAP プロバイダーに影響を与えないことにも注意してください。IMAP サーバーは、事前に解析された、構文的に正しい Content-Type 情報を返します。 |
mail.mime.address.usecanonicalhostname | boolean | InternetAddress.getLocalAddress メソッドでホスト名を判別するには、InetAddress.getCanonicalHostName メソッドを使用します。一部のネットワーク構成では、InetAddress.getCanonicalHostName が遅くなるか、ホスト名ではなくアドレスが返される場合があります。その場合、この System プロパティを false に設定すると、代わりに InetAddress.getHostName メソッドが使用されます。デフォルトは true です。 |
このパッケージのクラスの現在の実装では、次の表で説明するように、Logger
SE を使用してデバッグ情報をログに記録します。
ロガー名 | ログレベル | 目的 |
---|---|---|
jakarta.mail.internet | FINE | 一般的なデバッグ出力 |
インターフェースのサマリー インターフェース 説明 MimePart MimePart インターフェースは、MIME(RFC2045、セクション 2.4)で定義されたエンティティをモデル化します。SharedInputStream 複数のリーダーで共有できるデータによる InputStream は、このインターフェースを実装できます。クラスのサマリー クラス 説明 ContentDisposition このクラスは、MIME ContentDisposition 値を表します。ContentType このクラスは、MIME Content-Type 値を表します。HeaderTokenizer このクラスは、RFC822 および MIME ヘッダーを RFC822 および MIME で指定された基本的なシンボルにトークン化します。HeaderTokenizer.Token Token クラスは、HeaderTokenizer によって返されるトークンを表します。InternetAddress このクラスは、RFC822 の構文を使用してインターネットメールアドレスを表します。InternetHeaders InternetHeaders は、RFC822 スタイルのヘッダーを管理するユーティリティクラスです。InternetHeaders.InternetHeader 個別のインターネットヘッダー。MailDateFormat RFC 2822 に基づいて日付指定をフォーマットおよび解析します。MimeBodyPart このクラスは MIME 本文部分を表します。MimeMessage このクラスは、MIME スタイルのメールメッセージを表します。MimeMessage.RecipientType この内部クラスは jakarta.mail.Message.RecipientType クラスを継承して RecipientTypes を追加します。MimeMultipart MimeMultipart クラスは、マルチパートデータに MIME 規則を使用する抽象マルチパートクラスの実装です。MimePartDataSource MimePart から DataSource を実装するユーティリティクラス。MimeUtility これは、さまざまな MIME 関連機能を提供するユーティリティクラスです。NewsAddress このクラスは、RFC1036 ニュースグループアドレスをモデル化します。ParameterList このクラスは、MIME パラメーター(属性と値のペア)を保持します。PreencodedMimeBodyPart すでにエンコードされているデータを処理する MimeBodyPart。例外のサマリー 例外 説明 AddressException 誤った形式のアドレスが検出されたときにスローされる例外。ParseException マルチパート本文を含む RFC822 または MIME ヘッダーの解析エラーのためにスローされた例外。