org.apache.commons.mail
Class Email

java.lang.Object
  extended by org.apache.commons.mail.Email
Direct Known Subclasses:
MultiPartEmail, SimpleEmail

public abstract class Email
extends Object

The base class for all email messages. This class sets the sender's email & name, receiver's email & name, subject, and the sent date. Subclasses are responsible for setting the message body.

Since:
1.0
Version:
$Revision: 783910 $ $Date: 2009-06-11 23:13:54 +0200 (Thu, 11 Jun 2009) $, $Id: Email.java 783910 2009-06-11 21:13:54Z sgoeschl $
Author:
Quinton McCombs, Jon S. Stevens, Frank Y. Kim, Brett McLaughlin, Greg Ritter, Regis Koenig, Colin Chalmers, Matthias Wessendorf, Corey Scott

Field Summary
static String ATTACHMENTS
           
protected  javax.mail.Authenticator authenticator
          Instance of an Authenticator object that will be used when authentication is requested from the mail server.
protected  List bccList
          List of "bcc" email adresses
protected  String bounceAddress
          Address to which undeliverable mail should be sent.
protected  List ccList
          List of "cc" email adresses
protected  String charset
          The charset to use for this message
protected  Object content
          The content
static String CONTENT_TYPE
           
protected  String contentType
          The content type
protected  boolean debug
          Set session debugging on or off
static String EMAIL_BODY
           
static String EMAIL_SUBJECT
           
protected  javax.mail.internet.MimeMultipart emailBody
          An attachment
static String FILE_SERVER
           
protected  javax.mail.internet.InternetAddress fromAddress
          The Address of the sending party, mandatory
protected  Map headers
          Used to specify the mail headers.
protected  String hostName
          The hostname of the mail server with which to connect.
static String ISO_8859_1
           
static String KOI8_R
           
static String MAIL_DEBUG
           
static String MAIL_HOST
           
static String MAIL_PORT
           
static String MAIL_SMTP_AUTH
           
static String MAIL_SMTP_CONNECTIONTIMEOUT
          Socket connection timeout value in milliseconds.
static String MAIL_SMTP_FROM
           
static String MAIL_SMTP_PASSWORD
           
static String MAIL_SMTP_SOCKET_FACTORY_CLASS
           
static String MAIL_SMTP_SOCKET_FACTORY_FALLBACK
           
static String MAIL_SMTP_SOCKET_FACTORY_PORT
           
static String MAIL_SMTP_TIMEOUT
          Socket I/O timeout value in milliseconds.
static String MAIL_SMTP_USER
           
static String MAIL_TRANSPORT_PROTOCOL
           
static String MAIL_TRANSPORT_TLS
           
protected  javax.mail.internet.MimeMessage message
          The email message to send.
protected  boolean popBeforeSmtp
          Used to determine whether to use pop3 before smtp, and if so the settings.
protected  String popHost
          the host name of the pop3 server
protected  String popPassword
          the password to log into the pop3 server
protected  String popUsername
          the user name to log into the pop3 server
static String RECEIVER_EMAIL
           
static String RECEIVER_NAME
           
protected  List replyList
          List of "replyTo" email adresses
static String SENDER_EMAIL
           
static String SENDER_NAME
           
protected  Date sentDate
          Sent date
static String SMTP
           
protected  String smtpPort
          The port number of the mail server to connect to.
protected  int socketConnectionTimeout
          socket connection timeout value in milliseconds
protected  int socketTimeout
          socket I/O timeout value in milliseconds
protected  boolean ssl
          does the current transport use SSL encryption?
protected  String sslSmtpPort
          The port number of the SSL enabled SMTP server; defaults to the standard port, 465.
protected  String subject
          The Subject
static String TEXT_HTML
           
static String TEXT_PLAIN
           
protected  boolean tls
          does server require TLS encryption for authentication
protected  List toList
          List of "to" email adresses
static String US_ASCII
           
 
Constructor Summary
Email()
           
 
Method Summary
 Email addBcc(String email)
          Add a blind BCC recipient to the email.
 Email addBcc(String email, String name)
          Add a blind BCC recipient to the email using the specified address and the specified personal name.
 Email addBcc(String email, String name, String charset)
          Add a blind BCC recipient to the email using the specified address, personal name, and charset encoding for the name.
 Email addCc(String email)
          Add a recipient CC to the email.
 Email addCc(String email, String name)
          Add a recipient CC to the email using the specified address and the specified personal name.
 Email addCc(String email, String name, String charset)
          Add 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)
          Add a reply to address to the email.
 Email addReplyTo(String email, String name)
          Add a reply to address to the email using the specified address and the specified personal name.
 Email addReplyTo(String email, String name, String charset)
          Add a reply to address to the email using the specified address, personal name, and charset encoding for the name.
 Email addTo(String email)
          Add a recipient TO to the email.
 Email addTo(String email, String name)
          Add a recipient TO to the email using the specified address and the specified personal name.
 Email addTo(String email, String name, String charset)
          Add a recipient TO to the email using the specified address, personal name, and charset encoding for the name.
 void buildMimeMessage()
          Build the internal MimeMessage to be sent.
protected  javax.mail.internet.MimeMessage createMimeMessage(javax.mail.Session aSession)
          Factory method to create a customized MimeMessage which can be implemented by a derived class, e.g.
 List getBccAddresses()
          Get the list of "Bcc" addresses.
 List getCcAddresses()
          Get the list of "CC" addresses.
 javax.mail.internet.InternetAddress getFromAddress()
          Gets the sender of the email.
 String getHostName()
          Gets the host name of the SMTP server,
 javax.mail.Session getMailSession()
          Initialise a mailsession object
 javax.mail.internet.MimeMessage getMimeMessage()
          Returns the internal MimeMessage.
 List getReplyToAddresses()
          Get 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()
          Get the socket connection timeout value in milliseconds.
 int getSocketTimeout()
          Get the socket I/O timeout value in milliseconds.
 String getSslSmtpPort()
          Returns the current SSL port used by the SMTP transport.
 String getSubject()
          Gets the subject of the email.
 List getToAddresses()
          Get the list of "To" addresses.
 boolean isSSL()
          Returns whether SSL encryption for the transport is currently enabled.
 boolean isTLS()
          Gets encryption mode for authentication
 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(javax.mail.Authenticator newAuthenticator)
          Sets the Authenticator to be used when authentication is requested from the mail server.
 Email setBcc(Collection aCollection)
          Set a list of "BCC" addresses.
 Email setBounceAddress(String email)
          Set the "bounce address" - the address to which undeliverable messages will be returned.
 Email setCc(Collection aCollection)
          Set a list of "CC" addresses.
 void setCharset(String newCharset)
          Set the charset of the message.
 void setContent(javax.mail.internet.MimeMultipart aMimeMultipart)
          Set the emailBody to a MimeMultiPart
 void setContent(Object aObject, String aContentType)
          Set the content & contentType
 void setDebug(boolean d)
          Setting to true will enable the display of debug information.
 Email setFrom(String email)
          Set the FROM field of the email to use the specified address.
 Email setFrom(String email, String name)
          Set the FROM field of the email to use the specified address and the specified personal name.
 Email setFrom(String email, String name, String charset)
          Set the FROM field of the email to use the specified address, personal name, and charset encoding for the name.
 void setHeaders(Map map)
          Used to specify the mail headers.
 void setHostName(String aHostName)
          Set the hostname of the outgoing mail server
 void setMailSession(javax.mail.Session aSession)
          Supply a mail Session object to use.
 void setMailSessionFromJNDI(String jndiName)
          Supply a mail Session object from a JNDI directory
abstract  Email setMsg(String msg)
          Define the content of the mail.
 void setPopBeforeSmtp(boolean newPopBeforeSmtp, String newPopHost, String newPopUsername, String newPopPassword)
          Set details regarding "pop3 before smtp" authentication.
 Email setReplyTo(Collection aCollection)
          Set a list of reply to addresses.
 void setSentDate(Date date)
          Sets the sent date for the email.
 void setSmtpPort(int aPortNumber)
          Set the port number of the outgoing mail server.
 void setSocketConnectionTimeout(int socketConnectionTimeout)
          Set the socket connection timeout value in milliseconds.
 void setSocketTimeout(int socketTimeout)
          Set the socket I/O timeout value in milliseconds.
 void setSSL(boolean ssl)
          Sets whether SSL encryption should be enabled for the SMTP transport.
 void setSslSmtpPort(String sslSmtpPort)
          Sets the SSL port to use for the SMTP transport.
 Email setSubject(String aSubject)
          Set the email subject.
 void setTLS(boolean withTLS)
          Set or disable the TLS encryption
 Email setTo(Collection aCollection)
          Set a list of "TO" addresses.
protected  javax.mail.internet.InternetAddress[] toInternetAddressArray(List list)
          Utility to copy List of known InternetAddress objects into an array.
 void updateContentType(String aContentType)
          Update the contentType.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SENDER_EMAIL

public static final String SENDER_EMAIL
See Also:
Constant Field Values

SENDER_NAME

public static final String SENDER_NAME
See Also:
Constant Field Values

RECEIVER_EMAIL

public static final String RECEIVER_EMAIL
See Also:
Constant Field Values

RECEIVER_NAME

public static final String RECEIVER_NAME
See Also:
Constant Field Values

EMAIL_SUBJECT

public static final String EMAIL_SUBJECT
See Also:
Constant Field Values

EMAIL_BODY

public static final String EMAIL_BODY
See Also:
Constant Field Values

CONTENT_TYPE

public static final String CONTENT_TYPE
See Also:
Constant Field Values

MAIL_HOST

public static final String MAIL_HOST
See Also:
Constant Field Values

MAIL_PORT

public static final String MAIL_PORT
See Also:
Constant Field Values

MAIL_SMTP_FROM

public static final String MAIL_SMTP_FROM
See Also:
Constant Field Values

MAIL_SMTP_AUTH

public static final String MAIL_SMTP_AUTH
See Also:
Constant Field Values

MAIL_SMTP_USER

public static final String MAIL_SMTP_USER
See Also:
Constant Field Values

MAIL_SMTP_PASSWORD

public static final String MAIL_SMTP_PASSWORD
See Also:
Constant Field Values

MAIL_TRANSPORT_PROTOCOL

public static final String MAIL_TRANSPORT_PROTOCOL
See Also:
Constant Field Values

MAIL_TRANSPORT_TLS

public static final String MAIL_TRANSPORT_TLS
Since:
1.1
See Also:
Constant Field Values

MAIL_SMTP_SOCKET_FACTORY_FALLBACK

public static final String MAIL_SMTP_SOCKET_FACTORY_FALLBACK
See Also:
Constant Field Values

MAIL_SMTP_SOCKET_FACTORY_CLASS

public static final String MAIL_SMTP_SOCKET_FACTORY_CLASS
See Also:
Constant Field Values

MAIL_SMTP_SOCKET_FACTORY_PORT

public static final String MAIL_SMTP_SOCKET_FACTORY_PORT
See Also:
Constant Field Values

MAIL_SMTP_CONNECTIONTIMEOUT

public static final String MAIL_SMTP_CONNECTIONTIMEOUT
Socket connection timeout value in milliseconds. Default is infinite timeout.

Since:
1.2
See Also:
Constant Field Values

MAIL_SMTP_TIMEOUT

public static final String MAIL_SMTP_TIMEOUT
Socket I/O timeout value in milliseconds. Default is infinite timeout.

Since:
1.2
See Also:
Constant Field Values

SMTP

public static final String SMTP
See Also:
Constant Field Values

TEXT_HTML

public static final String TEXT_HTML
See Also:
Constant Field Values

TEXT_PLAIN

public static final String TEXT_PLAIN
See Also:
Constant Field Values

ATTACHMENTS

public static final String ATTACHMENTS
See Also:
Constant Field Values

FILE_SERVER

public static final String FILE_SERVER
See Also:
Constant Field Values

MAIL_DEBUG

public static final String MAIL_DEBUG
See Also:
Constant Field Values

KOI8_R

public static final String KOI8_R
See Also:
Constant Field Values

ISO_8859_1

public static final String ISO_8859_1
See Also:
Constant Field Values

US_ASCII

public static final String US_ASCII
See Also:
Constant Field Values

message

protected javax.mail.internet.MimeMessage message
The email message to send.


charset

protected String charset
The charset to use for this message


fromAddress

protected javax.mail.internet.InternetAddress fromAddress
The Address of the sending party, mandatory


subject

protected String subject
The Subject


emailBody

protected javax.mail.internet.MimeMultipart emailBody
An attachment


content

protected Object content
The content


contentType

protected String contentType
The content type


debug

protected boolean debug
Set session debugging on or off


sentDate

protected Date sentDate
Sent date


authenticator

protected javax.mail.Authenticator authenticator
Instance of an Authenticator object that will be used when authentication is requested from the mail server.


hostName

protected String hostName
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

protected String smtpPort
The port number of the mail server to connect to. Defaults to the standard port ( 25 ).


sslSmtpPort

protected String sslSmtpPort
The port number of the SSL enabled SMTP server; defaults to the standard port, 465.


toList

protected List toList
List of "to" email adresses


ccList

protected List ccList
List of "cc" email adresses


bccList

protected List bccList
List of "bcc" email adresses


replyList

protected List replyList
List of "replyTo" email adresses


bounceAddress

protected String bounceAddress
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

protected Map headers
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

protected boolean popBeforeSmtp
Used to determine whether to use pop3 before smtp, and if so the settings.


popHost

protected String popHost
the host name of the pop3 server


popUsername

protected String popUsername
the user name to log into the pop3 server


popPassword

protected String popPassword
the password to log into the pop3 server


tls

protected boolean tls
does server require TLS encryption for authentication


ssl

protected boolean ssl
does the current transport use SSL encryption?


socketTimeout

protected int socketTimeout
socket I/O timeout value in milliseconds


socketConnectionTimeout

protected int socketConnectionTimeout
socket connection timeout value in milliseconds

Constructor Detail

Email

public Email()
Method Detail

setDebug

public void setDebug(boolean d)
Setting to true will enable the display of debug information.

Parameters:
d - A boolean.
Since:
1.0

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(javax.mail.Authenticator newAuthenticator)
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:
newAuthenticator - the Authenticator object.
Since:
1.0
See Also:
Authenticator

setCharset

public void setCharset(String newCharset)
Set the charset of the message.

Parameters:
newCharset - 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(javax.mail.internet.MimeMultipart aMimeMultipart)
Set the emailBody to a MimeMultiPart

Parameters:
aMimeMultipart - aMimeMultipart
Since:
1.0

setContent

public void setContent(Object aObject,
                       String aContentType)
Set the content & contentType

Parameters:
aObject - aObject
aContentType - aContentType
Since:
1.0

updateContentType

public void updateContentType(String aContentType)
Update the contentType.

Parameters:
aContentType - aContentType
Since:
1.2

setHostName

public void setHostName(String aHostName)
Set the hostname of the outgoing mail server

Parameters:
aHostName - aHostName
Since:
1.0

setTLS

public void setTLS(boolean withTLS)
Set or disable the TLS encryption

Parameters:
withTLS - true if TLS needed, false otherwise
Since:
1.1

setSmtpPort

public void setSmtpPort(int aPortNumber)
Set the port number of the outgoing mail server.

Parameters:
aPortNumber - aPortNumber
Since:
1.0

setMailSession

public void setMailSession(javax.mail.Session aSession)
Supply a mail Session object to use. Please note that passing a username and password (in the case of mail authentication) will create a new mail session with a DefaultAuthenticator. This is a convience but might come unexpected. If mail authentication is used but NO username and password is supplied the implementation assumes that you have set a authenticator and will use the existing mail session (as expected).

Parameters:
aSession - mail session to be used
Since:
1.0

setMailSessionFromJNDI

public void setMailSessionFromJNDI(String jndiName)
                            throws NamingException
Supply a mail Session object from a JNDI directory

Parameters:
jndiName - name of JNDI ressource (javax.mail.Session type), ressource if searched in java:comp/env if name dont start with "java:"
Throws:
IllegalArgumentException - JNDI name null or empty
NamingException - ressource can be retrieved from JNDI directory
Since:
1.1

getMailSession

public javax.mail.Session getMailSession()
                                  throws EmailException
Initialise a mailsession object

Returns:
A Session.
Throws:
EmailException - thrown when host name was not set.
Since:
1.0

setFrom

public Email setFrom(String email)
              throws EmailException
Set 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(). 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
Set 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(). 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
Set 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

addTo

public Email addTo(String email)
            throws EmailException
Add 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(). 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 email,
                   String name)
            throws EmailException
Add 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(). 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
Add 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

setTo

public Email setTo(Collection aCollection)
            throws EmailException
Set a list of "TO" addresses. All elements in the specified Collection are expected to be of type java.mail.internet.InternetAddress.

Parameters:
aCollection - collection of InternetAddress objects.
Returns:
An Email.
Throws:
EmailException - Indicates an invalid email address.
Since:
1.0
See Also:
InternetAddress

addCc

public Email addCc(String email)
            throws EmailException
Add 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(). 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 email,
                   String name)
            throws EmailException
Add 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(). 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
Add 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

setCc

public Email setCc(Collection aCollection)
            throws EmailException
Set a list of "CC" addresses. All elements in the specified Collection are expected to be of type java.mail.internet.InternetAddress.

Parameters:
aCollection - collection of InternetAddress objects.
Returns:
An Email.
Throws:
EmailException - Indicates an invalid email address.
Since:
1.0
See Also:
InternetAddress

addBcc

public Email addBcc(String email)
             throws EmailException
Add 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(). 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 email,
                    String name)
             throws EmailException
Add 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(). 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
Add 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

setBcc

public Email setBcc(Collection aCollection)
             throws EmailException
Set a list of "BCC" addresses. All elements in the specified Collection are expected to be of type java.mail.internet.InternetAddress.

Parameters:
aCollection - collection of InternetAddress objects
Returns:
An Email.
Throws:
EmailException - Indicates an invalid email address
Since:
1.0
See Also:
InternetAddress

addReplyTo

public Email addReplyTo(String email)
                 throws EmailException
Add 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(). 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
Add 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(). 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
Add 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

setReplyTo

public Email setReplyTo(Collection aCollection)
                 throws EmailException
Set a list of reply to addresses. All elements in the specified Collection are expected to be of type java.mail.internet.InternetAddress.

Parameters:
aCollection - collection of InternetAddress objects
Returns:
An Email.
Throws:
EmailException - Indicates an invalid email address
Since:
1.1
See Also:
InternetAddress

setHeaders

public void setHeaders(Map map)
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

Parameters:
map - A Map.
Since:
1.0

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.
Since:
1.0

setSubject

public Email setSubject(String aSubject)
Set the email subject.

Parameters:
aSubject - A String.
Returns:
An Email.
Since:
1.0

setBounceAddress

public Email setBounceAddress(String email)
Set 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.
Since:
1.0

setMsg

public abstract Email setMsg(String msg)
                      throws EmailException
Define the content of the mail. It should be overidden by the subclasses.

Parameters:
msg - A String.
Returns:
An Email.
Throws:
EmailException - generic exception.
Since:
1.0

buildMimeMessage

public void buildMimeMessage()
                      throws EmailException
Build the internal MimeMessage to be sent.

Throws:
EmailException - if there was an error.
Since:
1.0

createMimeMessage

protected javax.mail.internet.MimeMessage createMimeMessage(javax.mail.Session aSession)
Factory method to create 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

sendMimeMessage

public String sendMimeMessage()
                       throws EmailException
Sends the previously created MimeMessage to the SMTP server.

Returns:
the message id of the underlying MimeMessage
Throws:
EmailException - the sending failed

getMimeMessage

public javax.mail.internet.MimeMessage getMimeMessage()
Returns the internal MimeMessage. Please not that the MimeMessage is build by the buildMimeMessage() method.

Returns:
the MimeMessage

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:
EmailException - the sending failed

setSentDate

public void setSentDate(Date date)
Sets the sent date for the email. The sent date will default to the current date if not explictly set.

Parameters:
date - Date to use as the sent date on the email
Since:
1.0

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

getSubject

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

Returns:
email subject

getFromAddress

public javax.mail.internet.InternetAddress getFromAddress()
Gets the sender of the email.

Returns:
from address

getHostName

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

Returns:
host name

getSmtpPort

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

Returns:
smtp port

isTLS

public boolean isTLS()
Gets encryption mode for authentication

Returns:
true if using TLS for authentication, false otherwise
Since:
1.1

toInternetAddressArray

protected javax.mail.internet.InternetAddress[] toInternetAddressArray(List list)
Utility to copy List of known InternetAddress objects into an array.

Parameters:
list - A List.
Returns:
An InternetAddress[].
Since:
1.0

setPopBeforeSmtp

public void setPopBeforeSmtp(boolean newPopBeforeSmtp,
                             String newPopHost,
                             String newPopUsername,
                             String newPopPassword)
Set details regarding "pop3 before smtp" authentication.

Parameters:
newPopBeforeSmtp - Wether or not to log into pop3 server before sending mail.
newPopHost - The pop3 host to use.
newPopUsername - The pop3 username.
newPopPassword - The pop3 password.
Since:
1.0

isSSL

public boolean isSSL()
Returns whether SSL encryption for the transport is currently enabled.

Returns:
true if SSL enabled for the transport

setSSL

public void setSSL(boolean ssl)
Sets whether SSL encryption should be enabled for the SMTP transport.

Parameters:
ssl - whether to enable the SSL transport

getSslSmtpPort

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

Returns:
the current SSL port used by the SMTP transport

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

getToAddresses

public List getToAddresses()
Get the list of "To" addresses.

Returns:
List addresses

getCcAddresses

public List getCcAddresses()
Get the list of "CC" addresses.

Returns:
List addresses

getBccAddresses

public List getBccAddresses()
Get the list of "Bcc" addresses.

Returns:
List addresses

getReplyToAddresses

public List getReplyToAddresses()
Get the list of "Reply-To" addresses.

Returns:
List addresses

getSocketConnectionTimeout

public int getSocketConnectionTimeout()
Get the socket connection timeout value in milliseconds.

Returns:
the timeout in milliseconds.
Since:
1.2

setSocketConnectionTimeout

public void setSocketConnectionTimeout(int socketConnectionTimeout)
Set the socket connection timeout value in milliseconds. Default is infinite timeout.

Parameters:
socketConnectionTimeout - the connection timeout
Since:
1.2

getSocketTimeout

public int getSocketTimeout()
Get the socket I/O timeout value in milliseconds.

Returns:
the socket I/O timeout
Since:
1.2

setSocketTimeout

public void setSocketTimeout(int socketTimeout)
Set the socket I/O timeout value in milliseconds. Default is infinite timeout.

Parameters:
socketTimeout - the socket I/O timeout
Since:
1.2


Copyright © 2001-2010 The Apache Software Foundation. All Rights Reserved.