## Package javax.mail.internet

Classes specific to Internet mail systems.

See:
Description

Interface Summary
MimePart: The MimePart interface models an Entity as defined by MIME (RFC2045, Section 2.4).
SharedInputStream: An InputStream that is backed by data that can be shared by multiple readers may implement this interface.

Class Summary
ContentDisposition: This class represents a MIME ContentDisposition value.
ContentType: This class represents a MIME ContentType value.
HeaderTokenizer: This class tokenizes RFC822 and MIME headers into the basic symbols specified by RFC822 and MIME.
HeaderTokenizer.Token: The Token class represents tokens returned by the HeaderTokenizer.
InternetAddress: This class represents an Internet email address using the syntax of RFC822.
InternetHeaders: InternetHeaders is a utility class that manages RFC822 style headers.
InternetHeaders.InternetHeader: An individual internet header.
MailDateFormat: Formats and parses date specification based on the draft-ietf-drums-msg-fmt-08 dated January 26, 2000.
MimeBodyPart: This class represents a MIME body part.
MimeMessage: This class represents a MIME style email message.
MimeMessage.RecipientType: This inner class extends the javax.mail.Message.RecipientType class to add additional RecipientTypes.
MimeMultipart: The MimeMultipart class is an implementation of the abstract Multipart class that uses MIME conventions for the multipart data.
MimePartDataSource: A utility class that implements a DataSource out of a MimePart.
MimeUtility: This is a utility class that provides various MIME related functionality.
NewsAddress: This class models an RFC1036 newsgroup address.
ParameterList: This class holds MIME parameters (attribute-value pairs).
PreencodedMimeBodyPart: A MimeBodyPart that handles data that has already been encoded.

Exception Summary
AddressException: The exception thrown when a wrongly formatted address is encountered.
ParseException: The exception thrown due to an error in parsing RFC822 or MIME headers

## Package javax.mail.internet Description

Classes specific to Internet mail systems. This package supports features that are specific to Internet mail systems based on the MIME standard (RFC 2045, RFC 2046, and RFC 2047). The IMAP, SMTP, and POP3 protocols use `MimeMessages`.

The JavaMail API specification requires support for the following properties, which must be set in the `System` properties. The properties are always set as strings; the Type column describes how the string is interpreted. For example, use (in J2SE 1.2 and newer)

            System.setProperty("mail.mime.address.strict", "false");

to set the `mail.mime.address.strict` property, which is of type boolean.

Name | Type | Description
--- | --- | ---
mail.mime.address.strict | boolean | The `mail.mime.address.strict` session property controls the parsing of address headers. By default, strict parsing of address headers is done. If this property is set to `"false"`, strict parsing is not done and many illegal addresses that sometimes occur in real messages are allowed. See the `InternetAddress` class for details.

mail.mime.charset

String

The `mail.mime.charset` System property can be used to specify the default MIME charset to use for encoded words and text parts that don't otherwise specify a charset. Normally, the default MIME charset is derived from the default Java charset, as specified in the `file.encoding` System property. Most applications will have no need to explicitly set the default MIME charset. In cases where the default MIME charset to be used for mail messages is different than the charset used for files stored on the system, this property should be set.

mail.mime.decodetext.strict

boolean

The `mail.mime.decodetext.strict` property controls decoding of MIME encoded words. The MIME spec requires that encoded words start at the beginning of a whitespace separated word. Some mailers incorrectly include encoded words in the middle of a word. If the `mail.mime.decodetext.strict` System property is set to `"false"`, an attempt will be made to decode these illegal encoded words. The default is true.

mail.mime.encodeeol.strict

boolean

The `mail.mime.encodeeol.strict` property controls the choice of Content-Transfer-Encoding for MIME parts that are not of type "text". Often such parts will contain textual data for which an encoding that allows normal end of line conventions is appropriate. In rare cases, such a part will appear to contain entirely textual data, but will require an encoding that preserves CR and LF characters without change. If the `mail.mime.encodeeol.strict` System property is set to `"true"`, such an encoding will be used when necessary. The default is false.

mail.mime.decodefilename | boolean | If set to `"true"`, the `getFileName` method uses the `MimeUtility` method `decodeText` to decode any non-ASCII characters in the filename. Note that this decoding violates the MIME specification, but is useful for interoperating with some mail clients that use this convention. The default is false.
mail.mime.encodefilename | boolean | If set to `"true"`, the `setFileName` method uses the `MimeUtility` method `encodeText` to encode any non-ASCII characters in the filename. Note that this encoding violates the MIME specification, but is useful for interoperating with some mail clients that use this convention. The default is false.
mail.mime.decodeparameters | boolean | If set to `"true"`, non-ASCII parameters in a `ParameterList`, e.g., in a Content-Type header, will be encoded as specified by RFC 2231. The default is false.
mail.mime.encodeparameters | boolean | If set to `"true"`, non-ASCII parameters in a `ParameterList`, e.g., in a Content-Type header, will be decoded as specified by RFC 2231. The default is false.

mail.mime.multipart. ignoremissingendboundary

boolean

Normally, when parsing a multipart MIME message, a message that is missing the final end boundary line is not considered an error. The data simply ends at the end of the input. Note that messages of this form violate the MIME specification. If the property `mail.mime.multipart.ignoremissingendboundary` is set to `false`, such messages are considered an error and a `MesagingException` will be thrown when parsing such a message.

mail.mime.multipart. ignoremissingboundaryparameter

boolean

If the Content-Type header for a multipart content does not have a `boundary` parameter, the multipart parsing code will look for the first line in the content that looks like a boundary line and extract the boundary parameter from the line. If this property is set to `"false"`, a `MessagingException` will be thrown if the Content-Type header doesn't specify a boundary parameter. The default is true.

The following properties are supported by Sun's implementation of JavaMail, but are not currently a required part of the specification. As above, these must be set as `System` properties. The names, types, defaults, and semantics of these properties may change in future releases.

Name | Type | Description
--- | --- | ---

mail.mime.base64.ignoreerrors

boolean

If set to `"true"`, the BASE64 decoder will ignore errors in the encoded data, returning EOF. This may be useful when dealing with improperly encoded messages that contain extraneous data at the end of the encoded stream. Note however that errors anywhere in the stream will cause the decoder to stop decoding so this should be used with extreme caution. The default is false.

mail.mime.foldtext | boolean | If set to `"true"`, header fields containing just text such as the `Subject` and `Content-Description` header fields, and long parameter values in structured headers such as `Content-Type` will be folded (broken into 76 character lines) when set and unfolded when read. The default is true.
mail.mime.setcontenttypefilename | boolean | If set to `"true"`, the `setFileName` method will also set the `name` parameter on the `Content-Type` header to the specified filename. This supports interoperability with some old mail clients. The default is true.
mail.mime.setdefaulttextcharset | boolean | When updating the headers of a message, a body part with a `text` content type but no `charset` parameter will have a `charset` parameter added to it if this property is set to `"true"`. The default is true.
mail.mime.applefilenames | boolean | Apple Mail incorrectly encodes filenames that contain spaces, forgetting to quote the parameter value. If this property is set to `"true"`, JavaMail will try to detect this situation when parsing parameters and work around it. The default is false.
mail.alternates | String | A string containing other email addresses that the current user is known by. The `MimeMessage` `reply` method will eliminate any of these addresses from the recipient list in the message it constructs, to avoid sending the reply back to the sender.
mail.replyallcc | boolean | If set to `"true"`, the `MimeMessage` `reply` method will put all recipients except the original sender in the `Cc` list of the newly constructed message. Normally, recipients in the `To` header of the original message will also appear in the `To` list of the newly constructed message.