Package org.apache.commons.mail

# Class Email

java.lang.Object
org.apache.commons.mail.Email

Direct Known Subclasses:
  `MultiPartEmail`, `SimpleEmail`

public abstract class Email extends Object
The abstract class for all email messages. This class sets the sender's email, name, receiver's email, name, subject, and send date.

Subclasses are responsible for setting the message body.

Since:
  1.0

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `ATTACHMENTS`
  Deprecated.
  since 1.3, use `EmailConstants.ATTACHMENTS` instead
  `protected Authenticator`
  `authenticator`
  Deprecated.
  Use getters and getters.
  `protected List<InternetAddress>`
  `bccList`
  Deprecated.
  Use getters and getters.
  `protected String`
  `bounceAddress`
  Deprecated.
  Use getters and getters.
  `protected List<InternetAddress>`
  `ccList`
  Deprecated.
  Use getters and getters.
  `protected String`
  `charset`
  Deprecated.
  Use getters and getters.
  `protected Object`
  `content`
  Deprecated.
  Use getters and getters.
  `static final String`
  `CONTENT_TYPE`
  Deprecated.
  since 1.3, use `EmailConstants.CONTENT_TYPE` instead
  `protected String`
  `contentType`
  Deprecated.
  Use getters and getters.
  `protected boolean`
  `debug`
  Deprecated.
  Use getters and getters.
  `static final String`
  `EMAIL_BODY`
  Deprecated.
  since 1.3, use `EmailConstants.EMAIL_BODY` instead
  `static final String`
  `EMAIL_SUBJECT`
  Deprecated.
  since 1.3, use `EmailConstants.EMAIL_SUBJECT` instead
  `protected MimeMultipart`
  `emailBody`
  Deprecated.
  Use getters and getters.
  `static final String`
  `FILE_SERVER`
  Deprecated.
  since 1.3, use `EmailConstants.FILE_SERVER` instead
  `protected InternetAddress`
  `fromAddress`
  Deprecated.
  Use getters and getters.
  `protected Map<String,String>`
  `headers`
  Deprecated.
  Use getters and getters.
  `protected String`
  `hostName`
  Deprecated.
  Use getters and getters.
  `static final String`
  `ISO_8859_1`
  Deprecated.
  since 1.3, use `EmailConstants.ISO_8859_1` instead
  `static final String`
  `KOI8_R`
  Deprecated.
  since 1.3, use `EmailConstants.KOI8_R` instead
  `static final String`
  `MAIL_DEBUG`
  Deprecated.
  since 1.3, use `EmailConstants.MAIL_DEBUG` instead
  `static final String`
  `MAIL_HOST`
  Deprecated.
  since 1.3, use `EmailConstants.MAIL_HOST` instead
  `static final String`
  `MAIL_PORT`
  Deprecated.
  since 1.3, use `EmailConstants.MAIL_PORT` instead
  `static final String`
  `MAIL_SMTP_AUTH`
  Deprecated.
  since 1.3, use `EmailConstants.MAIL_SMTP_AUTH` instead
  `static final String`
  `MAIL_SMTP_CONNECTIONTIMEOUT`
  Deprecated.
  since 1.3, use `EmailConstants.MAIL_SMTP_CONNECTIONTIMEOUT` instead
  `static final String`
  `MAIL_SMTP_FROM`
  Deprecated.
  since 1.3, use `EmailConstants.MAIL_SMTP_FROM` instead
  `static final String`
  `MAIL_SMTP_PASSWORD`
  Deprecated.
  since 1.3, use `EmailConstants.MAIL_SMTP_PASSWORD` instead
  `static final String`
  `MAIL_SMTP_SOCKET_FACTORY_CLASS`
  Deprecated.
  since 1.3, use `EmailConstants.MAIL_SMTP_SOCKET_FACTORY_CLASS` instead
  `static final String`
  `MAIL_SMTP_SOCKET_FACTORY_FALLBACK`
  Deprecated.
  since 1.3, use `EmailConstants.MAIL_SMTP_SOCKET_FACTORY_FALLBACK` instead
  `static final String`
  `MAIL_SMTP_SOCKET_FACTORY_PORT`
  Deprecated.
  since 1.3, use `EmailConstants.MAIL_SMTP_SOCKET_FACTORY_PORT` instead
  `static final String`
  `MAIL_SMTP_TIMEOUT`
  Deprecated.
  since 1.3, use `EmailConstants.MAIL_SMTP_TIMEOUT` instead
  `static final String`
  `MAIL_SMTP_USER`
  Deprecated.
  since 1.3, use `EmailConstants.MAIL_SMTP_USER` instead
  `static final String`
  `MAIL_TRANSPORT_PROTOCOL`
  Deprecated.
  since 1.3, use `EmailConstants.MAIL_TRANSPORT_PROTOCOL` instead
  `static final String`
  `MAIL_TRANSPORT_TLS`
  Deprecated.
  since 1.3, use `EmailConstants.MAIL_TRANSPORT_TLS` instead
  `protected MimeMessage`
  `message`
  Deprecated.
  Use getters and getters.
  `protected boolean`
  `popBeforeSmtp`
  Deprecated.
  Use getters and getters.
  `protected String`
  `popHost`
  Deprecated.
  Use getters and getters.
  `protected String`
  `popPassword`
  Deprecated.
  Use getters and getters.
  `protected String`
  `popUsername`
  Deprecated.
  Use getters and getters.
  `static final String`
  `RECEIVER_EMAIL`
  Deprecated.
  since 1.3, use `EmailConstants.RECEIVER_EMAIL` instead
  `static final String`
  `RECEIVER_NAME`
  Deprecated.
  since 1.3, use `EmailConstants.RECEIVER_NAME` instead
  `protected List<InternetAddress>`
  `replyList`
  Deprecated.
  Use getters and getters.
  `static final String`
  `SENDER_EMAIL`
  Deprecated.
  since 1.3, use `EmailConstants.SENDER_EMAIL` instead
  `static final String`
  `SENDER_NAME`
  Deprecated.
  since 1.3, use `EmailConstants.SENDER_NAME` instead
  `protected Date`
  `sentDate`
  Deprecated.
  Use getters and getters.
  `static final String`
  `SMTP`
  Deprecated.
  since 1.3, use `EmailConstants.SMTP` instead
  `protected String`
  `smtpPort`
  Deprecated.
  Use getters and getters.
  `protected int`
  `socketConnectionTimeout`
  Deprecated.
  Use `getSocketConnectionTimeout()` and `setSocketConnectionTimeout(Duration)`.
  `protected int`
  `socketTimeout`
  Deprecated.
  Use `getSocketTimeout()` and `setSocketTimeout(Duration)`.
  `protected boolean`
  `ssl`
  Deprecated.
  since 1.3, use setSSLOnConnect() instead
  `protected String`
  `sslSmtpPort`
  Deprecated.
  Use getters and getters.
  `protected String`
  `subject`
  Deprecated.
  Use getters and getters.
  `static final String`
  `TEXT_HTML`
  Deprecated.
  since 1.3, use `EmailConstants.TEXT_HTML` instead
  `static final String`
  `TEXT_PLAIN`
  Deprecated.
  since 1.3, use `EmailConstants.TEXT_PLAIN` instead
  `protected boolean`
  `tls`
  Deprecated.
  since 1.3, use setStartTLSEnabled() instead
  `protected List<InternetAddress>`
  `toList`
  Deprecated.
  Use getters and getters.
  `static final String`
  `US_ASCII`
  Deprecated.
  since 1.3, use `EmailConstants.US_ASCII` instead

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Email()`
  Constructs a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Email`
  `addBcc(String email)`
  Adds a blind BCC recipient to the email.
  `Email`
  `addBcc(String... emails)`
  Adds an array of blind BCC recipients to the email.
  `Email`
  `addBcc(String email, String name)`
  Adds a blind BCC recipient to the email using the specified address and the specified personal name.
  `Email`
  `addBcc(String email, String name, String charset)`
  Adds a blind BCC recipient to the email using the specified address, personal name, and charset encoding for the name.
  `Email`
  `addCc(String email)`
  Adds a recipient CC to the email.
  `Email`
  `addCc(String... emails)`
  Adds an array of CC recipients to the email.
  `Email`
  `addCc(String email, String name)`
  Adds a recipient CC to the email using the specified address and the specified personal name.
  `Email`
  `addCc(String email, String name, String charset)`
  Adds a recipient CC to the email using the specified address, personal name, and charset encoding for the name.
  `void`
  `addHeader(String name, String value)`
  Adds a header ( name, value ) to the headers Map.
  `Email`
  `addReplyTo(String email)`
  Adds a reply to address to the email.
  `Email`
  `addReplyTo(String email, String name)`
  Adds a reply to address to the email using the specified address and the specified personal name.
  `Email`
  `addReplyTo(String email, String name, String charset)`
  Adds a reply to address to the email using the specified address, personal name, and charset encoding for the name.
  `Email`
  `addTo(String email)`
  Adds a recipient TO to the email.
  `Email`
  `addTo(String... emails)`
  Adds a list of TO recipients to the email.
  `Email`
  `addTo(String email, String name)`
  Adds a recipient TO to the email using the specified address and the specified personal name.
  `Email`
  `addTo(String email, String name, String charset)`
  Adds a recipient TO to the email using the specified address, personal name, and charset encoding for the name.
  `void`
  `buildMimeMessage()`
  Builds the MimeMessage.
  `protected MimeMessage`
  `createMimeMessage(Session aSession)`
  Creates a customized MimeMessage which can be implemented by a derived class, e.g.
  `Authenticator`
  `getAuthenticator()`
  Gets the authenticator.
  `List<InternetAddress>`
  `getBccAddresses()`
  Gets the list of "Bcc" addresses.
  `String`
  `getBounceAddress()`
  Gets the "bounce address" of this email.
  `List<InternetAddress>`
  `getCcAddresses()`
  Gets the list of "CC" addresses.
  `String`
  `getCharsetName()`
  Gets the Charset.
  `Object`
  `getContent()`
  Gets the content.
  `String`
  `getContentType()`
  Gets the content type.
  `MimeMultipart`
  `getEmailBody()`
  Gets the email body.
  `InternetAddress`
  `getFromAddress()`
  Gets the sender of the email.
  `String`
  `getHeader(String header)`
  Gets the specified header.
  `Map<String,String>`
  `getHeaders()`
  Gets all headers on an Email.
  `String`
  `getHostName()`
  Gets the host name of the SMTP server,
  `Session`
  `getMailSession()`
  Gets the mail session used when sending this Email, creating the Session if necessary.
  `MimeMessage`
  `getMessage()`
  Gets the message.
  `MimeMessage`
  `getMimeMessage()`
  Gets the internal MimeMessage.
  `String`
  `getPopHost()`
  Gets the POP3 host.
  `String`
  `getPopPassword()`
  Gets the POP3 password.
  `String`
  `getPopUserName()`
  Gets the POP3 user name.
  `List<InternetAddress>`
  `getReplyToAddresses()`
  Gets the list of "Reply-To" addresses.
  `Date`
  `getSentDate()`
  Gets the sent date for the email.
  `String`
  `getSmtpPort()`
  Gets the listening port of the SMTP server.
  `int`
  `getSocketConnectionTimeout()`
  Gets the socket connection timeout value in milliseconds.
  `int`
  `getSocketTimeout()`
  Gets the socket I/O timeout value in milliseconds.
  `String`
  `getSslSmtpPort()`
  Gets the current SSL port used by the SMTP transport.
  `String`
  `getSubject()`
  Gets the subject of the email.
  `List<InternetAddress>`
  `getToAddresses()`
  Gets the list of "To" addresses.
  `boolean`
  `isDebug()`
  Tests whether debug is on.
  `boolean`
  `isPopBeforeSmtp()`
  Tests whether to use POP3 before SMTP, and if so the settings.
  `boolean`
  `isSendPartial()`
  Tests whether partial sending of email is enabled.
  `boolean`
  `isSSL()`
  Deprecated.
  since 1.3, use `isSSLOnConnect()` instead.
  `boolean`
  `isSSLCheckServerIdentity()`
  Tests whether the server identity checked as specified by RFC 2595
  `boolean`
  `isSSLOnConnect()`
  Tests whether SSL/TLS encryption for the transport is currently enabled (SMTPS/POPS).
  `boolean`
  `isStartTLSEnabled()`
  Tests whether the client is configured to try to enable STARTTLS.
  `boolean`
  `isStartTLSRequired()`
  Tests whether the client is configured to require STARTTLS.
  `boolean`
  `isTLS()`
  Deprecated.
  since 1.3, use `isStartTLSEnabled()` instead.
  `String`
  `send()`
  Sends the email.
  `String`
  `sendMimeMessage()`
  Sends the previously created MimeMessage to the SMTP server.
  `void`
  `setAuthentication(String userName, String password)`
  Sets the userName and password if authentication is needed.
  `void`
  `setAuthenticator(Authenticator authenticator)`
  Sets the `Authenticator` to be used when authentication is requested from the mail server.
  `Email`
  `setBcc(Collection<InternetAddress> collection)`
  Sets a list of "BCC" addresses.
  `Email`
  `setBounceAddress(String email)`
  Sets the "bounce address" - the address to which undeliverable messages will be returned.
  `Email`
  `setCc(Collection<InternetAddress> collection)`
  Sets a list of "CC" addresses.
  `void`
  `setCharset(String charset)`
  Sets the charset of the message.
  `Email`
  `setContent(Object content)`
  Sets the content.
  `void`
  `setContent(Object content, String contentType)`
  Sets the content and contentType.
  `void`
  `setContent(MimeMultipart mimeMultipart)`
  Sets the emailBody to a MimeMultiPart
  `Email`
  `setContentType(String contentType)`
  Sets the content type.
  `void`
  `setDebug(boolean debug)`
  Sets the display of debug information.
  `Email`
  `setFrom(String email)`
  Sets the FROM field of the email to use the specified address.
  `Email`
  `setFrom(String email, String name)`
  Sets the FROM field of the email to use the specified address and the specified personal name.
  `Email`
  `setFrom(String email, String name, String charset)`
  Sets the FROM field of the email to use the specified address, personal name, and charset encoding for the name.
  `Email`
  `setFromAddress(InternetAddress fromAddress)`
  Sets the From address.
  `void`
  `setHeaders(Map<String,String> map)`
  Sets the mail headers.
  `void`
  `setHostName(String hostName)`
  Sets the hostname of the outgoing mail server.
  `void`
  `setMailSession(Session session)`
  Sets a mail Session object to use.
  `void`
  `setMailSessionFromJNDI(String jndiName)`
  Sets a mail Session object from a JNDI directory.
  `void`
  `setMessage(MimeMessage message)`
  Sets the MIME message.
  `abstract Email`
  `setMsg(String msg)`
  Sets the content of the mail.
  `Email`
  `setPopBeforeSmtp(boolean popBeforeSmtp)`
  Sets whether to use POP3 before SMTP, and if so the settings.
  `void`
  `setPopBeforeSmtp(boolean popBeforeSmtp, String popHost, String popUserName, String popPassword)`
  Sets details regarding "POP3 before SMTP" authentication.
  `Email`
  `setPopHost(String popHost)`
  Sets the POP3 host.
  `Email`
  `setPopPassword(String popPassword)`
  Sets the POP3 password.
  `Email`
  `setPopUsername(String popUserName)`
  Sets the POP3 user name.
  `Email`
  `setReplyTo(Collection<InternetAddress> collection)`
  Sets a list of reply to addresses.
  `Email`
  `setSendPartial(boolean sendPartial)`
  Sets whether the email is partially send in case of invalid addresses.
  `void`
  `setSentDate(Date date)`
  Sets the sent date for the email.
  `void`
  `setSmtpPort(int portNumber)`
  Sets the non-SSL port number of the outgoing mail server.
  `void`
  `setSocketConnectionTimeout(int socketConnectionTimeout)`
  Deprecated.
  Use `setSocketConnectionTimeout(Duration)`.
  `void`
  `setSocketConnectionTimeout(Duration socketConnectionTimeout)`
  Sets the socket connection timeout value in milliseconds.
  `void`
  `setSocketTimeout(int socketTimeout)`
  Deprecated.
  Use `setSocketTimeout(Duration)`.
  `void`
  `setSocketTimeout(Duration socketTimeout)`
  Sets the socket I/O timeout value in milliseconds.
  `void`
  `setSSL(boolean ssl)`
  Deprecated.
  since 1.3, use `setSSLOnConnect(boolean)` instead.
  `Email`
  `setSSLCheckServerIdentity(boolean sslCheckServerIdentity)`
  Sets whether the server identity is checked as specified by RFC 2595
  `Email`
  `setSSLOnConnect(boolean ssl)`
  Sets whether SSL/TLS encryption should be enabled for the SMTP transport upon connection (SMTPS/POPS).
  `void`
  `setSslSmtpPort(String sslSmtpPort)`
  Sets the SSL port to use for the SMTP transport.
  `Email`
  `setStartTLSEnabled(boolean startTlsEnabled)`
  Sets or disable the STARTTLS encryption.
  `Email`
  `setStartTLSRequired(boolean startTlsRequired)`
  Sets or disable the required STARTTLS encryption.
  `Email`
  `setSubject(String aSubject)`
  Sets the email subject.
  `void`
  `setTLS(boolean withTLS)`
  Deprecated.
  since 1.3, use `setStartTLSEnabled(boolean)` instead.
  `Email`
  `setTo(Collection<InternetAddress> collection)`
  Sets a list of "TO" addresses.
  `protected InternetAddress[]`
  `toInternetAddressArray(List<InternetAddress> list)`
  Converts to copy List of known InternetAddress objects into an array.
  `void`
  `updateContentType(String contentType)`
  Updates the contentType.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### SENDER_EMAIL

    @Deprecated public static final String SENDER_EMAIL
    Deprecated.
    since 1.3, use `EmailConstants.SENDER_EMAIL` instead
    See Also:
      - Constant Field Values

  - ### SENDER_NAME

    @Deprecated public static final String SENDER_NAME
    Deprecated.
    since 1.3, use `EmailConstants.SENDER_NAME` instead
    See Also:
      - Constant Field Values

  - ### RECEIVER_EMAIL

    @Deprecated public static final String RECEIVER_EMAIL
    Deprecated.
    since 1.3, use `EmailConstants.RECEIVER_EMAIL` instead
    See Also:
      - Constant Field Values

  - ### RECEIVER_NAME

    @Deprecated public static final String RECEIVER_NAME
    Deprecated.
    since 1.3, use `EmailConstants.RECEIVER_NAME` instead
    See Also:
      - Constant Field Values

  - ### EMAIL_SUBJECT

    @Deprecated public static final String EMAIL_SUBJECT
    Deprecated.
    since 1.3, use `EmailConstants.EMAIL_SUBJECT` instead
    See Also:
      - Constant Field Values

  - ### EMAIL_BODY

    @Deprecated public static final String EMAIL_BODY
    Deprecated.
    since 1.3, use `EmailConstants.EMAIL_BODY` instead
    See Also:
      - Constant Field Values

  - ### CONTENT_TYPE

    @Deprecated public static final String CONTENT_TYPE
    Deprecated.
    since 1.3, use `EmailConstants.CONTENT_TYPE` instead
    See Also:
      - Constant Field Values

  - ### ATTACHMENTS

    @Deprecated public static final String ATTACHMENTS
    Deprecated.
    since 1.3, use `EmailConstants.ATTACHMENTS` instead
    See Also:
      - Constant Field Values

  - ### FILE_SERVER

    @Deprecated public static final String FILE_SERVER
    Deprecated.
    since 1.3, use `EmailConstants.FILE_SERVER` instead
    See Also:
      - Constant Field Values

  - ### KOI8_R

    @Deprecated public static final String KOI8_R
    Deprecated.
    since 1.3, use `EmailConstants.KOI8_R` instead
    See Also:
      - Constant Field Values

  - ### ISO_8859_1

    @Deprecated public static final String ISO_8859_1
    Deprecated.
    since 1.3, use `EmailConstants.ISO_8859_1` instead

  - ### US_ASCII

    @Deprecated public static final String US_ASCII
    Deprecated.
    since 1.3, use `EmailConstants.US_ASCII` instead

  - ### MAIL_DEBUG

    @Deprecated public static final String MAIL_DEBUG
    Deprecated.
    since 1.3, use `EmailConstants.MAIL_DEBUG` instead
    See Also:
      - Constant Field Values

  - ### MAIL_HOST

    @Deprecated public static final String MAIL_HOST
    Deprecated.
    since 1.3, use `EmailConstants.MAIL_HOST` instead
    See Also:
      - Constant Field Values

  - ### MAIL_PORT

    @Deprecated public static final String MAIL_PORT
    Deprecated.
    since 1.3, use `EmailConstants.MAIL_PORT` instead
    See Also:
      - Constant Field Values

  - ### MAIL_SMTP_FROM

    @Deprecated public static final String MAIL_SMTP_FROM
    Deprecated.
    since 1.3, use `EmailConstants.MAIL_SMTP_FROM` instead
    See Also:
      - Constant Field Values

  - ### MAIL_SMTP_AUTH

    @Deprecated public static final String MAIL_SMTP_AUTH
    Deprecated.
    since 1.3, use `EmailConstants.MAIL_SMTP_AUTH` instead
    See Also:
      - Constant Field Values

  - ### MAIL_SMTP_USER

    @Deprecated public static final String MAIL_SMTP_USER
    Deprecated.
    since 1.3, use `EmailConstants.MAIL_SMTP_USER` instead
    See Also:
      - Constant Field Values

  - ### MAIL_SMTP_PASSWORD

    @Deprecated public static final String MAIL_SMTP_PASSWORD
    Deprecated.
    since 1.3, use `EmailConstants.MAIL_SMTP_PASSWORD` instead
    See Also:
      - Constant Field Values

  - ### MAIL_TRANSPORT_PROTOCOL

    @Deprecated public static final String MAIL_TRANSPORT_PROTOCOL
    Deprecated.
    since 1.3, use `EmailConstants.MAIL_TRANSPORT_PROTOCOL` instead
    See Also:
      - Constant Field Values

  - ### SMTP

    @Deprecated public static final String SMTP
    Deprecated.
    since 1.3, use `EmailConstants.SMTP` instead
    See Also:
      - Constant Field Values

  - ### TEXT_HTML

    @Deprecated public static final String TEXT_HTML
    Deprecated.
    since 1.3, use `EmailConstants.TEXT_HTML` instead
    See Also:
      - Constant Field Values

  - ### TEXT_PLAIN

    @Deprecated public static final String TEXT_PLAIN
    Deprecated.
    since 1.3, use `EmailConstants.TEXT_PLAIN` instead
    See Also:
      - Constant Field Values

  - ### MAIL_TRANSPORT_TLS

    @Deprecated public static final String MAIL_TRANSPORT_TLS
    Deprecated.
    since 1.3, use `EmailConstants.MAIL_TRANSPORT_TLS` instead
    See Also:
      - Constant Field Values

  - ### MAIL_SMTP_SOCKET_FACTORY_FALLBACK

    @Deprecated public static final String MAIL_SMTP_SOCKET_FACTORY_FALLBACK
    Deprecated.
    since 1.3, use `EmailConstants.MAIL_SMTP_SOCKET_FACTORY_FALLBACK` instead
    See Also:
      - Constant Field Values

  - ### MAIL_SMTP_SOCKET_FACTORY_CLASS

    @Deprecated public static final String MAIL_SMTP_SOCKET_FACTORY_CLASS
    Deprecated.
    since 1.3, use `EmailConstants.MAIL_SMTP_SOCKET_FACTORY_CLASS` instead
    See Also:
      - Constant Field Values

  - ### MAIL_SMTP_SOCKET_FACTORY_PORT

    @Deprecated public static final String MAIL_SMTP_SOCKET_FACTORY_PORT
    Deprecated.
    since 1.3, use `EmailConstants.MAIL_SMTP_SOCKET_FACTORY_PORT` instead
    See Also:
      - Constant Field Values

  - ### MAIL_SMTP_CONNECTIONTIMEOUT

    @Deprecated public static final String MAIL_SMTP_CONNECTIONTIMEOUT
    Deprecated.
    since 1.3, use `EmailConstants.MAIL_SMTP_CONNECTIONTIMEOUT` instead
    See Also:
      - Constant Field Values

  - ### MAIL_SMTP_TIMEOUT

    @Deprecated public static final String MAIL_SMTP_TIMEOUT
    Deprecated.
    since 1.3, use `EmailConstants.MAIL_SMTP_TIMEOUT` instead
    See Also:
      - Constant Field Values

  - ### message

    @Deprecated protected MimeMessage message
    Deprecated.
    Use getters and getters.
    The email message to send.

  - ### charset

    @Deprecated protected String charset
    Deprecated.
    Use getters and getters.
    The charset to use for this message.

  - ### fromAddress

    @Deprecated protected InternetAddress fromAddress
    Deprecated.
    Use getters and getters.
    The Address of the sending party, mandatory.

  - ### subject

    @Deprecated protected String subject
    Deprecated.
    Use getters and getters.
    The Subject.

  - ### emailBody

    @Deprecated protected MimeMultipart emailBody
    Deprecated.
    Use getters and getters.
    An attachment.

  - ### content

    @Deprecated protected Object content
    Deprecated.
    Use getters and getters.
    The content.

  - ### contentType

    @Deprecated protected String contentType
    Deprecated.
    Use getters and getters.
    The content type.

  - ### debug

    @Deprecated protected boolean debug
    Deprecated.
    Use getters and getters.
    Set session debugging on or off.

  - ### sentDate

    @Deprecated protected Date sentDate
    Deprecated.
    Use getters and getters.
    Sent date.

  - ### authenticator

    @Deprecated protected Authenticator authenticator
    Deprecated.
    Use getters and getters.
    Instance of an `Authenticator` object that will be used when authentication is requested from the mail server.

  - ### hostName

    @Deprecated protected String hostName
    Deprecated.
    Use getters and getters.
    The hostname of the mail server with which to connect. If null will try to get property from system.properties. If still null, quit.

  - ### smtpPort

    @Deprecated protected String smtpPort
    Deprecated.
    Use getters and getters.
    The port number of the mail server to connect to. Defaults to the standard port ( 25 ).

  - ### sslSmtpPort

    @Deprecated protected String sslSmtpPort
    Deprecated.
    Use getters and getters.
    The port number of the SSL enabled SMTP server; defaults to the standard port, 465.

  - ### toList

    @Deprecated protected List<InternetAddress> toList
    Deprecated.
    Use getters and getters.
    List of "to" email addresses.

  - ### ccList

    @Deprecated protected List<InternetAddress> ccList
    Deprecated.
    Use getters and getters.
    List of "cc" email addresses.

  - ### bccList

    @Deprecated protected List<InternetAddress> bccList
    Deprecated.
    Use getters and getters.
    List of "bcc" email addresses.

  - ### replyList

    @Deprecated protected List<InternetAddress> replyList
    Deprecated.
    Use getters and getters.
    List of "replyTo" email addresses.

  - ### bounceAddress

    @Deprecated protected String bounceAddress
    Deprecated.
    Use getters and getters.
    Address to which undeliverable mail should be sent. Because this is handled by JavaMail as a String property in the mail session, this property is of type `String` rather than `InternetAddress`.

  - ### headers

    @Deprecated protected Map<String,String> headers
    Deprecated.
    Use getters and getters.
    Used to specify the mail headers. Example: X-Mailer: Sendmail, X-Priority: 1( highest ) or 2( high ) 3( normal ) 4( low ) and 5( lowest ) Disposition-Notification-To: user@domain.net

  - ### popBeforeSmtp

    @Deprecated protected boolean popBeforeSmtp
    Deprecated.
    Use getters and getters.
    Whether to use POP3 before SMTP, and if so the settings.

  - ### popHost

    @Deprecated protected String popHost
    Deprecated.
    Use getters and getters.
    The host name of the POP3 server.

  - ### popUsername

    @Deprecated protected String popUsername
    Deprecated.
    Use getters and getters.
    The user name to log into the POP3 server.

  - ### popPassword

    @Deprecated protected String popPassword
    Deprecated.
    Use getters and getters.
    The password to log into the POP3 server.

  - ### tls

    @Deprecated protected boolean tls
    Deprecated.
    since 1.3, use setStartTLSEnabled() instead
    Does server require TLS encryption for authentication?

  - ### ssl

    @Deprecated protected boolean ssl
    Deprecated.
    since 1.3, use setSSLOnConnect() instead
    Does the current transport use SSL/TLS encryption upon connection?

  - ### socketTimeout

    @Deprecated protected int socketTimeout
    Deprecated.
    Use `getSocketTimeout()` and `setSocketTimeout(Duration)`.
    Socket I/O timeout value in milliseconds.

  - ### socketConnectionTimeout

    @Deprecated protected int socketConnectionTimeout
    Deprecated.
    Use `getSocketConnectionTimeout()` and `setSocketConnectionTimeout(Duration)`.
    Socket connection timeout value in milliseconds.

- ## Constructor Details

  - ### Email

    public Email()
    Constructs a new instance.

- ## Method Details

  - ### addBcc

    public Email addBcc(String email) throws EmailException
    Adds a blind BCC recipient to the email. The email address will also be used as the personal name. The name will be encoded by the charset of `setCharset(String)`. If it is not set, it will be encoded using the Java platform's default charset (UTF-16) if it contains non-ASCII characters; otherwise, it is used as is.
    Parameters:
      `email` - A String.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address
    Since:
      1.0

  - ### addBcc

    public Email addBcc(String... emails) throws EmailException
    Adds an array of blind BCC recipients to the email. The email addresses will also be used as the personal name. The names will be encoded by the charset of `setCharset(String)`. If it is not set, it will be encoded using the Java platform's default charset (UTF-16) if it contains non-ASCII characters; otherwise, it is used as is.
    Parameters:
      `emails` - A String array.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address
    Since:
      1.3

  - ### addBcc

    public Email addBcc(String email, String name) throws EmailException
    Adds a blind BCC recipient to the email using the specified address and the specified personal name. The name will be encoded by the charset of `setCharset(String)`. If it is not set, it will be encoded using the Java platform's default charset (UTF-16) if it contains non-ASCII characters; otherwise, it is used as is.
    Parameters:
      `email` - A String.
      `name` - A String.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address
    Since:
      1.0

  - ### addBcc

    public Email addBcc(String email, String name, String charset) throws EmailException
    Adds a blind BCC recipient to the email using the specified address, personal name, and charset encoding for the name.
    Parameters:
      `email` - A String.
      `name` - A String.
      `charset` - The charset to encode the name with.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address
    Since:
      1.1

  - ### addCc

    public Email addCc(String email) throws EmailException
    Adds a recipient CC to the email. The email address will also be used as the personal name. The name will be encoded by the charset of `setCharset(String)`. If it is not set, it will be encoded using the Java platform's default charset (UTF-16) if it contains non-ASCII characters; otherwise, it is used as is.
    Parameters:
      `email` - A String.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address.
    Since:
      1.0

  - ### addCc

    public Email addCc(String... emails) throws EmailException
    Adds an array of CC recipients to the email. The email addresses will also be used as the personal name. The names will be encoded by the charset of `setCharset(String)`. If it is not set, it will be encoded using the Java platform's default charset (UTF-16) if it contains non-ASCII characters; otherwise, it is used as is.
    Parameters:
      `emails` - A String array.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address.
    Since:
      1.3

  - ### addCc

    public Email addCc(String email, String name) throws EmailException
    Adds a recipient CC to the email using the specified address and the specified personal name. The name will be encoded by the charset of `setCharset(String)`. If it is not set, it will be encoded using the Java platform's default charset (UTF-16) if it contains non-ASCII characters; otherwise, it is used as is.
    Parameters:
      `email` - A String.
      `name` - A String.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address.
    Since:
      1.0

  - ### addCc

    public Email addCc(String email, String name, String charset) throws EmailException
    Adds a recipient CC to the email using the specified address, personal name, and charset encoding for the name.
    Parameters:
      `email` - A String.
      `name` - A String.
      `charset` - The charset to encode the name with.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address or charset.
    Since:
      1.1

  - ### addHeader

    public void addHeader(String name, String value)
    Adds a header ( name, value ) to the headers Map.
    Parameters:
      `name` - A String with the name.
      `value` - A String with the value.
    Throws:
      `IllegalArgumentException` - if either `name` or `value` is null or empty
    Since:
      1.0

  - ### addReplyTo

    public Email addReplyTo(String email) throws EmailException
    Adds a reply to address to the email. The email address will also be used as the personal name. The name will be encoded by the charset of `setCharset(String)`. If it is not set, it will be encoded using the Java platform's default charset (UTF-16) if it contains non-ASCII characters; otherwise, it is used as is.
    Parameters:
      `email` - A String.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address
    Since:
      1.0

  - ### addReplyTo

    public Email addReplyTo(String email, String name) throws EmailException
    Adds a reply to address to the email using the specified address and the specified personal name. The name will be encoded by the charset of `setCharset(String)`. If it is not set, it will be encoded using the Java platform's default charset (UTF-16) if it contains non-ASCII characters; otherwise, it is used as is.
    Parameters:
      `email` - A String.
      `name` - A String.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address
    Since:
      1.0

  - ### addReplyTo

    public Email addReplyTo(String email, String name, String charset) throws EmailException
    Adds a reply to address to the email using the specified address, personal name, and charset encoding for the name.
    Parameters:
      `email` - A String.
      `name` - A String.
      `charset` - The charset to encode the name with.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address or charset.
    Since:
      1.1

  - ### addTo

    public Email addTo(String email) throws EmailException
    Adds a recipient TO to the email. The email address will also be used as the personal name. The name will be encoded by the charset of `setCharset(String)`. If it is not set, it will be encoded using the Java platform's default charset (UTF-16) if it contains non-ASCII characters; otherwise, it is used as is.
    Parameters:
      `email` - A String.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address.
    Since:
      1.0

  - ### addTo

    public Email addTo(String... emails) throws EmailException
    Adds a list of TO recipients to the email. The email addresses will also be used as the personal names. The names will be encoded by the charset of `setCharset(String)`. If it is not set, it will be encoded using the Java platform's default charset (UTF-16) if it contains non-ASCII characters; otherwise, it is used as is.
    Parameters:
      `emails` - A String array.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address.
    Since:
      1.3

  - ### addTo

    public Email addTo(String email, String name) throws EmailException
    Adds a recipient TO to the email using the specified address and the specified personal name. The name will be encoded by the charset of `setCharset(String)`. If it is not set, it will be encoded using the Java platform's default charset (UTF-16) if it contains non-ASCII characters; otherwise, it is used as is.
    Parameters:
      `email` - A String.
      `name` - A String.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address.
    Since:
      1.0

  - ### addTo

    public Email addTo(String email, String name, String charset) throws EmailException
    Adds a recipient TO to the email using the specified address, personal name, and charset encoding for the name.
    Parameters:
      `email` - A String.
      `name` - A String.
      `charset` - The charset to encode the name with.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address or charset.
    Since:
      1.1

  - ### buildMimeMessage

    public void buildMimeMessage() throws EmailException
    Builds the MimeMessage. Please note that a user rarely calls this method directly and only if he/she is interested in the sending the underlying MimeMessage without commons-email.
    Throws:
      `IllegalStateException` - if the MimeMessage was already built
      `EmailException` - if there was an error.
    Since:
      1.0

  - ### createMimeMessage

    protected MimeMessage createMimeMessage(Session aSession)
    Creates a customized MimeMessage which can be implemented by a derived class, e.g. to set the message id.
    Parameters:
      `aSession` - mail session to be used
    Returns:
      the newly created message

  - ### getAuthenticator

    public Authenticator getAuthenticator()
    Gets the authenticator.
    Returns:
      the authenticator.
    Since:
      1.6.0

  - ### getBccAddresses

    public List<InternetAddress> getBccAddresses()
    Gets the list of "Bcc" addresses.
    Returns:
      List addresses

  - ### getBounceAddress

    public String getBounceAddress()
    Gets the "bounce address" of this email.
    Returns:
      the bounce address as string
    Since:
      1.4

  - ### getCcAddresses

    public List<InternetAddress> getCcAddresses()
    Gets the list of "CC" addresses.
    Returns:
      List addresses

  - ### getCharsetName

    public String getCharsetName()
    Gets the Charset.
    Returns:
      the Charset.
    Since:
      1.6.0

  - ### getContent

    public Object getContent()
    Gets the content.
    Returns:
      the content.
    Since:
      1.6.0

  - ### getContentType

    public String getContentType()
    Gets the content type.
    Returns:
      the content type.
    Since:
      1.6.0

  - ### getEmailBody

    public MimeMultipart getEmailBody()
    Gets the email body.
    Returns:
      the email body.
    Since:
      1.6.0

  - ### getFromAddress

    public InternetAddress getFromAddress()
    Gets the sender of the email.
    Returns:
      from address

  - ### getHeader

    public String getHeader(String header)
    Gets the specified header.
    Parameters:
      `header` - A string with the header.
    Returns:
      The value of the header, or null if no such header.
    Since:
      1.5

  - ### getHeaders

    public Map<String,String> getHeaders()
    Gets all headers on an Email.
    Returns:
      a Map of all headers.
    Since:
      1.5

  - ### getHostName

    public String getHostName()
    Gets the host name of the SMTP server,
    Returns:
      host name

  - ### getMailSession

    public Session getMailSession() throws EmailException
    Gets the mail session used when sending this Email, creating the Session if necessary. When a mail session is already initialized setting the session related properties will cause an IllegalStateException.
    Returns:
      A Session.
    Throws:
      `EmailException` - if the host name was not set
    Since:
      1.0

  - ### getMessage

    public MimeMessage getMessage()
    Gets the message.
    Returns:
      the message.
    Since:
      1.6.0

  - ### getMimeMessage

    public MimeMessage getMimeMessage()
    Gets the internal MimeMessage. Please note that the MimeMessage is built by the buildMimeMessage() method.
    Returns:
      the MimeMessage

  - ### getPopHost

    public String getPopHost()
    Gets the POP3 host.
    Returns:
      the POP3 host.
    Since:
      1.6.0

  - ### getPopPassword

    public String getPopPassword()
    Gets the POP3 password.
    Returns:
      the POP3 password.
    Since:
      1.6.0

  - ### getPopUserName

    public String getPopUserName()
    Gets the POP3 user name.
    Returns:
      the POP3 user name.
    Since:
      1.6.0

  - ### getReplyToAddresses

    public List<InternetAddress> getReplyToAddresses()
    Gets the list of "Reply-To" addresses.
    Returns:
      List addresses

  - ### getSentDate

    public Date getSentDate()
    Gets the sent date for the email.
    Returns:
      date to be used as the sent date for the email
    Since:
      1.0

  - ### getSmtpPort

    public String getSmtpPort()
    Gets the listening port of the SMTP server.
    Returns:
      SMTP port

  - ### getSocketConnectionTimeout

    public int getSocketConnectionTimeout()
    Gets the socket connection timeout value in milliseconds.
    Returns:
      the timeout in milliseconds.
    Since:
      1.2

  - ### getSocketTimeout

    public int getSocketTimeout()
    Gets the socket I/O timeout value in milliseconds.
    Returns:
      the socket I/O timeout
    Since:
      1.2

  - ### getSslSmtpPort

    public String getSslSmtpPort()
    Gets the current SSL port used by the SMTP transport.
    Returns:
      the current SSL port used by the SMTP transport

  - ### getSubject

    public String getSubject()
    Gets the subject of the email.
    Returns:
      email subject

  - ### getToAddresses

    public List<InternetAddress> getToAddresses()
    Gets the list of "To" addresses.
    Returns:
      List addresses

  - ### isDebug

    public boolean isDebug()
    Tests whether debug is on.
    Returns:
      whether debug is on.
    Since:
      1.6.0

  - ### isPopBeforeSmtp

    public boolean isPopBeforeSmtp()
    Tests whether to use POP3 before SMTP, and if so the settings.
    Returns:
      whether to use POP3 before SMTP, and if so the settings.
    Since:
      1.6.0

  - ### isSendPartial

    public boolean isSendPartial()
    Tests whether partial sending of email is enabled.
    Returns:
      true if sending partial email is enabled.
    Since:
      1.3.2

  - ### isSSL

    @Deprecated public boolean isSSL()
    Deprecated.
    since 1.3, use `isSSLOnConnect()` instead.
    Tests whether SSL/TLS encryption for the transport is currently enabled (SMTPS/POPS). See EMAIL-105 for reason of deprecation.
    Returns:
      true if SSL enabled for the transport.

  - ### isSSLCheckServerIdentity

    public boolean isSSLCheckServerIdentity()
    Tests whether the server identity checked as specified by RFC 2595
    Returns:
      true if the server identity is checked.
    Since:
      1.3

  - ### isSSLOnConnect

    public boolean isSSLOnConnect()
    Tests whether SSL/TLS encryption for the transport is currently enabled (SMTPS/POPS).
    Returns:
      true if SSL enabled for the transport.
    Since:
      1.3

  - ### isStartTLSEnabled

    public boolean isStartTLSEnabled()
    Tests whether the client is configured to try to enable STARTTLS.
    Returns:
      true if using STARTTLS for authentication, false otherwise.
    Since:
      1.3

  - ### isStartTLSRequired

    public boolean isStartTLSRequired()
    Tests whether the client is configured to require STARTTLS.
    Returns:
      true if using STARTTLS for authentication, false otherwise.
    Since:
      1.3

  - ### isTLS

    @Deprecated public boolean isTLS()
    Deprecated.
    since 1.3, use `isStartTLSEnabled()` instead.
    Tests whether the client is configured to try to enable STARTTLS. See EMAIL-105 for reason of deprecation.
    Returns:
      true if using STARTTLS for authentication, false otherwise.
    Since:
      1.1

  - ### send

    public String send() throws EmailException
    Sends the email. Internally we build a MimeMessage which is afterwards sent to the SMTP server.
    Returns:
      the message id of the underlying MimeMessage
    Throws:
      `IllegalStateException` - if the MimeMessage was already built, that is, `buildMimeMessage()` was already called
      `EmailException` - the sending failed

  - ### sendMimeMessage

    public String sendMimeMessage() throws EmailException
    Sends the previously created MimeMessage to the SMTP server.
    Returns:
      the message id of the underlying MimeMessage
    Throws:
      `IllegalArgumentException` - if the MimeMessage has not been created
      `EmailException` - the sending failed

  - ### setAuthentication

    public void setAuthentication(String userName, String password)
    Sets the userName and password if authentication is needed. If this method is not used, no authentication will be performed.

    This method will create a new instance of `DefaultAuthenticator` using the supplied parameters.

    Parameters:
      `userName` - User name for the SMTP server
      `password` - password for the SMTP server
    Since:
      1.0
    See Also:
      - `DefaultAuthenticator`
      - `setAuthenticator(javax.mail.Authenticator)`

  - ### setAuthenticator

    public void setAuthenticator(Authenticator authenticator)
    Sets the `Authenticator` to be used when authentication is requested from the mail server.

    This method should be used when your outgoing mail server requires authentication. Your mail server must also support RFC2554.

    Parameters:
      `authenticator` - the `Authenticator` object.
    Since:
      1.0
    See Also:
      - `Authenticator`

  - ### setBcc

    public Email setBcc(Collection<InternetAddress> collection) throws EmailException
    Sets a list of "BCC" addresses. All elements in the specified `Collection` are expected to be of type `java.mail.internet.InternetAddress`.
    Parameters:
      `collection` - collection of `InternetAddress` objects
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address
    Since:
      1.0
    See Also:
      - `InternetAddress`

  - ### setBounceAddress

    public Email setBounceAddress(String email)
    Sets the "bounce address" - the address to which undeliverable messages will be returned. If this value is never set, then the message will be sent to the address specified with the System property "mail.smtp.from", or if that value is not set, then to the "from" address.
    Parameters:
      `email` - A String.
    Returns:
      An Email.
    Throws:
      `IllegalStateException` - if the mail session is already initialized
    Since:
      1.0

  - ### setCc

    public Email setCc(Collection<InternetAddress> collection) throws EmailException
    Sets a list of "CC" addresses. All elements in the specified `Collection` are expected to be of type `java.mail.internet.InternetAddress`.
    Parameters:
      `collection` - collection of `InternetAddress` objects.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address.
    Since:
      1.0
    See Also:
      - `InternetAddress`

  - ### setCharset

    public void setCharset(String charset)
    Sets the charset of the message. Please note that you should set the charset before adding the message content.
    Parameters:
      `charset` - A String.
    Throws:
      `IllegalCharsetNameException` - if the charset name is invalid
      `UnsupportedCharsetException` - if no support for the named charset exists in the current JVM
    Since:
      1.0

  - ### setContent

    public void setContent(MimeMultipart mimeMultipart)
    Sets the emailBody to a MimeMultiPart
    Parameters:
      `mimeMultipart` - aMimeMultipart
    Since:
      1.0

  - ### setContent

    public Email setContent(Object content)
    Sets the content.
    Parameters:
      `content` - the content.
    Returns:
      this.
    Since:
      1.6.0

  - ### setContent

    public void setContent(Object content, String contentType)
    Sets the content and contentType.
    Parameters:
      `content` - content.
      `contentType` - content type.
    Since:
      1.0

  - ### setContentType

    public Email setContentType(String contentType)
    Sets the content type.
    Parameters:
      `contentType` - the content type.
    Returns:
      this.
    Since:
      1.6.0

  - ### setDebug

    public void setDebug(boolean debug)
    Sets the display of debug information.
    Parameters:
      `debug` - A boolean.
    Since:
      1.0

  - ### setFrom

    public Email setFrom(String email) throws EmailException
    Sets the FROM field of the email to use the specified address. The email address will also be used as the personal name. The name will be encoded by the charset of `setCharset(String)`. If it is not set, it will be encoded using the Java platform's default charset (UTF-16) if it contains non-ASCII characters; otherwise, it is used as is.
    Parameters:
      `email` - A String.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address.
    Since:
      1.0

  - ### setFrom

    public Email setFrom(String email, String name) throws EmailException
    Sets the FROM field of the email to use the specified address and the specified personal name. The name will be encoded by the charset of `setCharset(String)`. If it is not set, it will be encoded using the Java platform's default charset (UTF-16) if it contains non-ASCII characters; otherwise, it is used as is.
    Parameters:
      `email` - A String.
      `name` - A String.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address.
    Since:
      1.0

  - ### setFrom

    public Email setFrom(String email, String name, String charset) throws EmailException
    Sets the FROM field of the email to use the specified address, personal name, and charset encoding for the name.
    Parameters:
      `email` - A String.
      `name` - A String.
      `charset` - The charset to encode the name with.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address or charset.
    Since:
      1.1

  - ### setFromAddress

    public Email setFromAddress(InternetAddress fromAddress)
    Sets the From address.
    Parameters:
      `fromAddress` - the From address.
    Returns:
      this.
    Since:
      1.6.0

  - ### setHeaders

    public void setHeaders(Map<String,String> map)
    Sets the mail headers. Example: X-Mailer: Sendmail, X-Priority: 1( highest ) or 2( high ) 3( normal ) 4( low ) and 5( lowest ) Disposition-Notification-To: user@domain.net
    Parameters:
      `map` - A Map.
    Throws:
      `IllegalArgumentException` - if either of the provided header / value is null or empty
    Since:
      1.0

  - ### setHostName

    public void setHostName(String hostName)
    Sets the hostname of the outgoing mail server.
    Parameters:
      `hostName` - aHostName
    Throws:
      `IllegalStateException` - if the mail session is already initialized
    Since:
      1.0

  - ### setMailSession

    public void setMailSession(Session session)
    Sets a mail Session object to use. Please note that passing a user name and password (in the case of mail authentication) will create a new mail session with a DefaultAuthenticator. This is a convenience but might come unexpected. If mail authentication is used but NO user name and password is supplied the implementation assumes that you have set a authenticator and will use the existing mail session (as expected).
    Parameters:
      `session` - mail session to be used
    Throws:
      `NullPointerException` - if `aSession` is `null`
    Since:
      1.0

  - ### setMailSessionFromJNDI

    public void setMailSessionFromJNDI(String jndiName) throws NamingException
    Sets a mail Session object from a JNDI directory.
    Parameters:
      `jndiName` - name of JNDI resource (javax.mail.Session type), resource if searched in java:comp/env if name does not start with "java:"
    Throws:
      `IllegalArgumentException` - if the JNDI name is null or empty
      `NamingException` - if the resource cannot be retrieved from JNDI directory
    Since:
      1.1

  - ### setMessage

    public void setMessage(MimeMessage message)
    Sets the MIME message.
    Parameters:
      `message` - the MIME message.

  - ### setMsg

    public abstract Email setMsg(String msg) throws EmailException
    Sets the content of the mail. It should be overridden by the subclasses.
    Parameters:
      `msg` - A String.
    Returns:
      An Email.
    Throws:
      `EmailException` - generic exception.
    Since:
      1.0

  - ### setPopBeforeSmtp

    public Email setPopBeforeSmtp(boolean popBeforeSmtp)
    Sets whether to use POP3 before SMTP, and if so the settings.
    Parameters:
      `popBeforeSmtp` - whether to use POP3 before SMTP, and if so the settings.
    Returns:
      this.
    Since:
      1.6.0

  - ### setPopBeforeSmtp

    public void setPopBeforeSmtp(boolean popBeforeSmtp, String popHost, String popUserName, String popPassword)
    Sets details regarding "POP3 before SMTP" authentication.
    Parameters:
      `popBeforeSmtp` - Whether or not to log into POP3 server before sending mail.
      `popHost` - The POP3 host to use.
      `popUserName` - The POP3 user name.
      `popPassword` - The POP3 password.
    Since:
      1.0

  - ### setPopHost

    public Email setPopHost(String popHost)
    Sets the POP3 host.
    Parameters:
      `popHost` - The POP3 host.
    Returns:
      this.
    Since:
      1.6.0

  - ### setPopPassword

    public Email setPopPassword(String popPassword)
    Sets the POP3 password.
    Parameters:
      `popPassword` - the POP3 password.
    Returns:
      this.
    Since:
      1.6.0

  - ### setPopUsername

    public Email setPopUsername(String popUserName)
    Sets the POP3 user name.
    Parameters:
      `popUserName` - the POP3 user name.
    Returns:
      this.
    Since:
      1.6.0

  - ### setReplyTo

    public Email setReplyTo(Collection<InternetAddress> collection) throws EmailException
    Sets a list of reply to addresses. All elements in the specified `Collection` are expected to be of type `java.mail.internet.InternetAddress`.
    Parameters:
      `collection` - collection of `InternetAddress` objects
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address
    Since:
      1.1
    See Also:
      - `InternetAddress`

  - ### setSendPartial

    public Email setSendPartial(boolean sendPartial)
    Sets whether the email is partially send in case of invalid addresses.

    In case the mail server rejects an address as invalid, the call to `send()` may throw a `SendFailedException`, even if partial send mode is enabled (emails to valid addresses will be transmitted). In case the email server does not reject invalid addresses immediately, but return a bounce message, no exception will be thrown by the `send()` method.

    Parameters:
      `sendPartial` - whether to enable partial send mode
    Returns:
      An Email.
    Throws:
      `IllegalStateException` - if the mail session is already initialized
    Since:
      1.3.2

  - ### setSentDate

    public void setSentDate(Date date)
    Sets the sent date for the email. The sent date will default to the current date if not explicitly set.
    Parameters:
      `date` - Date to use as the sent date on the email
    Since:
      1.0

  - ### setSmtpPort

    public void setSmtpPort(int portNumber)
    Sets the non-SSL port number of the outgoing mail server.
    Parameters:
      `portNumber` - aPortNumber
    Throws:
      `IllegalArgumentException` - if the port number is < 1
      `IllegalStateException` - if the mail session is already initialized
    Since:
      1.0
    See Also:
      - `setSslSmtpPort(String)`

  - ### setSocketConnectionTimeout

    public void setSocketConnectionTimeout(Duration socketConnectionTimeout)
    Sets the socket connection timeout value in milliseconds. Default is a 60 second timeout.
    Parameters:
      `socketConnectionTimeout` - the connection timeout
    Throws:
      `IllegalStateException` - if the mail session is already initialized
    Since:
      1.6.0

  - ### setSocketConnectionTimeout

    @Deprecated public void setSocketConnectionTimeout(int socketConnectionTimeout)
    Deprecated.
    Use `setSocketConnectionTimeout(Duration)`.
    Sets the socket connection timeout value in milliseconds. Default is a 60 second timeout.
    Parameters:
      `socketConnectionTimeout` - the connection timeout
    Throws:
      `IllegalStateException` - if the mail session is already initialized
    Since:
      1.2

  - ### setSocketTimeout

    public void setSocketTimeout(Duration socketTimeout)
    Sets the socket I/O timeout value in milliseconds. Default is 60 second timeout.
    Parameters:
      `socketTimeout` - the socket I/O timeout
    Throws:
      `IllegalStateException` - if the mail session is already initialized
    Since:
      1.6.0

  - ### setSocketTimeout

    @Deprecated public void setSocketTimeout(int socketTimeout)
    Deprecated.
    Use `setSocketTimeout(Duration)`.
    Sets the socket I/O timeout value in milliseconds. Default is 60 second timeout.
    Parameters:
      `socketTimeout` - the socket I/O timeout
    Throws:
      `IllegalStateException` - if the mail session is already initialized
    Since:
      1.2

  - ### setSSL

    @Deprecated public void setSSL(boolean ssl)
    Deprecated.
    since 1.3, use `setSSLOnConnect(boolean)` instead.
    Sets whether SSL/TLS encryption should be enabled for the SMTP transport upon connection (SMTPS/POPS). See EMAIL-105 for reason of deprecation.
    Parameters:
      `ssl` - whether to enable the SSL transport

  - ### setSSLCheckServerIdentity

    public Email setSSLCheckServerIdentity(boolean sslCheckServerIdentity)
    Sets whether the server identity is checked as specified by RFC 2595
    Parameters:
      `sslCheckServerIdentity` - whether to enable server identity check
    Returns:
      An Email.
    Throws:
      `IllegalStateException` - if the mail session is already initialized
    Since:
      1.3

  - ### setSSLOnConnect

    public Email setSSLOnConnect(boolean ssl)
    Sets whether SSL/TLS encryption should be enabled for the SMTP transport upon connection (SMTPS/POPS). Takes precedence over `setStartTLSRequired(boolean)`

    Defaults to `sslSmtpPort`; can be overridden by using `setSslSmtpPort(String)`

    Parameters:
      `ssl` - whether to enable the SSL transport
    Returns:
      An Email.
    Throws:
      `IllegalStateException` - if the mail session is already initialized
    Since:
      1.3

  - ### setSslSmtpPort

    public void setSslSmtpPort(String sslSmtpPort)
    Sets the SSL port to use for the SMTP transport. Defaults to the standard port, 465.
    Parameters:
      `sslSmtpPort` - the SSL port to use for the SMTP transport
    Throws:
      `IllegalStateException` - if the mail session is already initialized
    See Also:
      - `setSmtpPort(int)`

  - ### setStartTLSEnabled

    public Email setStartTLSEnabled(boolean startTlsEnabled)
    Sets or disable the STARTTLS encryption.
    Parameters:
      `startTlsEnabled` - true if STARTTLS requested, false otherwise
    Returns:
      An Email.
    Throws:
      `IllegalStateException` - if the mail session is already initialized
    Since:
      1.3

  - ### setStartTLSRequired

    public Email setStartTLSRequired(boolean startTlsRequired)
    Sets or disable the required STARTTLS encryption.

    Defaults to `smtpPort`; can be overridden by using `setSmtpPort(int)`

    Parameters:
      `startTlsRequired` - true if STARTTLS requested, false otherwise
    Returns:
      An Email.
    Throws:
      `IllegalStateException` - if the mail session is already initialized
    Since:
      1.3

  - ### setSubject

    public Email setSubject(String aSubject)
    Sets the email subject. Replaces end-of-line characters with spaces.
    Parameters:
      `aSubject` - A String.
    Returns:
      An Email.
    Since:
      1.0

  - ### setTLS

    @Deprecated public void setTLS(boolean withTLS)
    Deprecated.
    since 1.3, use `setStartTLSEnabled(boolean)` instead.
    Sets or disable the STARTTLS encryption. Please see EMAIL-105 for the reasons of deprecation.
    Parameters:
      `withTLS` - true if STARTTLS requested, false otherwise
    Since:
      1.1

  - ### setTo

    public Email setTo(Collection<InternetAddress> collection) throws EmailException
    Sets a list of "TO" addresses. All elements in the specified `Collection` are expected to be of type `java.mail.internet.InternetAddress`.
    Parameters:
      `collection` - collection of `InternetAddress` objects.
    Returns:
      An Email.
    Throws:
      `EmailException` - Indicates an invalid email address.
    Since:
      1.0
    See Also:
      - `InternetAddress`

  - ### toInternetAddressArray

    protected InternetAddress[] toInternetAddressArray(List<InternetAddress> list)
    Converts to copy List of known InternetAddress objects into an array.
    Parameters:
      `list` - A List.
    Returns:
      An InternetAddress[].
    Since:
      1.0

  - ### updateContentType

    public void updateContentType(String contentType)
    Updates the contentType.
    Parameters:
      `contentType` - aContentType
    Since:
      1.2