public class MailMessage extends Base
There are two general approaches to doing this. Here is the first one:
MailMessage message = new MailMessage();
message.setFrom("me@my.address");
message.addRecipients("friend1@his.address, friend2@her.address");
message.setSubject("Greetings");
message.setBody("Hello everyone!");
message.send();
Here is the second approach:
MailMessage message = new MailMessage();
message.parse("From: me@my.address\n"
+ "To: friend1@his.address, friend2@her.address\n"
+ "Subject: Greetings\n"
+ "Hello everyone!\n");
message.send();
You may mix and match the two approaches as desired. For example, you could use the parse
method, then the addRecipient
method.
Note: You must add your mail subsystem information to your server.properties
file. An example follows:
#=======================================================
# Mail subsystem
#=======================================================
# Comma-delimited list of all smtp servers capable of
# relaying mail to the internet
mail.system.mail.smtp.host: mail
# What port is the MTA listening on
mail.system.mail.smtp.port: 25
# Number of milliseconds to socket connet timeout. When
# this limit is reached, we try the next mail server.
mail.system.mail.smtp.connectiontimeout: 2000
# Base mail template directory
mail.templateRoot: $webRoot/config/mailTemplates
# What email account to use when the system sends out
# mails
mail.systemFromAddress: website@companyName.com
mail.helpdeskAddress: support@companyName.com
mail.URLPrefix: http://www.companyName.com
Modifier and Type | Method and Description |
---|---|
void | addHeader(java.lang.String field, java.lang.String value) Adds a header to the email. |
void | addHeaders(java.util.Map headers) Adds a set of headers to the email. |
void | addRecipient(java.lang.String recipient) Adds a recipient to the email. |
void | addRecipient(java.lang.String recipient, Message.RecipientType type) Adds a recipient of the specified type to the email. |
void | addRecipients(java.util.List recipients) Adds a list of recipients to the email. |
void | addRecipients(java.util.List recipients, Message.RecipientType type) Adds a list of recipients of the specified type to the email. |
void | addRecipients(java.lang.String recipients) Adds a comma-delimited list of recipients to the email. |
void | addRecipients(java.lang.String recipients, Message.RecipientType type) Adds a comma-delimited list of recipients of the specified type to the email. |
void | addReplyTo(java.lang.String replyTo) Adds a "reply to" address to the email. |
java.io.Writer | getBodyWriter() Gets the Writer stream for the message body. |
void | reset() Resets MailMessage state. |
void | send() Sends the email message. |
void | setAuth(java.lang.String auth) Sets if SMTP connection should be authorized. |
void | setBody(java.lang.String newBody) Adds the message body to the email. |
void | setContextMap(java.util.Map value) Sets the context map to use with this message. |
void | setFrom(java.lang.String sender) Sets the "from" address of the email. |
void | setHost(java.lang.String host) Sets SMTP host or Velocity expression. |
void | setPassword(java.lang.String password) Sets SMTP connection password or Velocity expression. |
void | setPort(java.lang.String port) Sets SMTP port or Velocity expression. |
void | setProperty(java.lang.String name, java.lang.String value) Additional property that will be passed to jakarta.mail.Session class. |
void | setRecipient(java.lang.String recipient) Adds a recipient to the email. |
void | setReplyTo(java.util.List replyTo) Sets the parameter list of addresses passed in as the "reply to" addresses for the email. |
void | setReplyTo(java.lang.String replyTo) Sets the "reply to" address for the email. |
void | setSubject(java.lang.String subject) Sets the subject of the email. |
void | setUser(java.lang.String user) Sets SMTP connection user or Velocity expression. |
public void setContextMap(java.util.Map value)
value
- The new context mappublic void setFrom(java.lang.String sender)
sender
- the "from" addresspublic void addReplyTo(java.lang.String replyTo)
replyTo
- the "reply to" addresspublic void setReplyTo(java.lang.String replyTo)
replyTo
- the "reply to" addresspublic void setReplyTo(java.util.List replyTo)
replyTo
- the "reply to" addresspublic void setSubject(java.lang.String subject)
subject
- the subjectpublic void setHost(java.lang.String host)
host
- hostpublic void setPort(java.lang.String port)
port
- integer value as String
or Velocity expressionpublic void setAuth(java.lang.String auth)
auth
- boolean value as String
or Velocity expressionpublic void setUser(java.lang.String user)
user
- userpublic void setPassword(java.lang.String password)
password
- passwordpublic void addHeader(java.lang.String field, java.lang.String value)
field
- the name of the headervalue
- the header valuepublic void addHeaders(java.util.Map headers)
headers
- the set of headers to be addedpublic void addRecipient(java.lang.String recipient)
recipient
- the email address of the recipientpublic void setRecipient(java.lang.String recipient)
recipient
- the email address of the recipientpublic void addRecipients(java.util.List recipients)
recipients
- the list of email addresses of the recipientspublic void addRecipients(java.lang.String recipients)
recipients
- the comma-delimited list of email addresses of the recipientspublic void addRecipient(java.lang.String recipient, Message.RecipientType type)
recipient
- the email address of the recipienttype
- the type of recipient, for example, Message.RecipientType.TO
public void addRecipients(java.util.List recipients, Message.RecipientType type)
recipients
- the list of email addresses of the recipientstype
- the type of the recipientsfor example, Message.RecipientType.TO
public void addRecipients(java.lang.String recipients, Message.RecipientType type)
recipients
- the comma-delimited list of email addresses of the recipientstype
- the types of the recipients for example, Message.RecipientType.TO
public void setBody(java.lang.String newBody)
newBody
- the message bodypublic void setProperty(java.lang.String name, java.lang.String value)
jakarta.mail.Session
class. All properties set via setProperty
will override properties set by dedicated setters like setHost(...)
and any related properties configured in server.properties
. Note, that property values also support Velocity templates.name
- property name, omitting "mail.smtp."
prefixvalue
- property valuepublic java.io.Writer getBodyWriter()
Writer
stream for the message body.Writer
stream for the message bodypublic void send() throws java.lang.Exception
java.io.IOException
- if an I/O error occurs while trying to send the emailjava.lang.Exception
public void reset()