public class MailTemplate
extends java.lang.Object
MessageTemplate
class provides email text templating functionality. Templates are
nt:file
nodes in the repository representing a text file.
The text file contains the complete email. Email headers are defined as the first lines of the file in the format
Header-Name: Header-Value
, one header per line. Headers supporting multiple values can thus have several
header lines. The supported headers are the standard email headers.
After the last header line put an empty line and start the email body afterwards.
Within all of the text file, replacement variables can be used in the form of ${variable}
, e.g.
${payload.title}
. The available variables are defined by the variable resolver given in the getEmail(org.apache.commons.lang.text.StrLookup, Class)
method.
The getEmail
method returns the chosen (type
argument) email implementation, as long as the
type extends Email
and has a publically accessible default constructor. Out of the
box the three email implementations provided by the Apache Commons Email library can be used: SimpleEmail
, HtmlEmail
and MultiPartEmail
.
Constructor and Description |
---|
MailTemplate(java.io.InputStream inputStream,
java.lang.String encoding)
Constructs a new
MailTemplate with the template text given as the inputStream and the
encoding (may be null). |
Modifier and Type | Method and Description |
---|---|
static MailTemplate |
create(java.lang.String path,
Session session)
Convenience method to create a new
MailTemplate based on the path
identifying the location of the email template text in the repository. |
<T extends Email> |
getEmail(StrLookup lookup,
java.lang.Class<T> type)
Create an
Email based on the template text and replacing variables in the
template text using the given lookup implementation. |
public MailTemplate(java.io.InputStream inputStream, java.lang.String encoding) throws java.io.IOException
MailTemplate
with the template text given as the inputStream
and the
encoding (may be null).inputStream
- The template text.encoding
- The encoding of the input stream (may be null). If empty, UTF-8 will be used.java.io.IOException
- If an error occurs handling the input stream.public <T extends Email> T getEmail(StrLookup lookup, java.lang.Class<T> type) throws java.io.IOException, MessagingException, EmailException
Email
based on the template text and replacing variables in the
template text using the given lookup
implementation. Emails are constructed and returned with the
given type
. If the type
is HtmlEmail
(or a subclass),
and the template content appears to be HTML, it is used as the HTML part of the email message. The text part of
the email message is constructed from doing a basic HTML to plain text conversion.T
- The email type.lookup
- The StrLookup
implementation to use for variable lookup.type
- The class defining the email type.java.io.IOException
- If an error occurs handling the text template.MessagingException
- If an error occurs during building the email message.EmailException
- If an error occurs during building the email.public static MailTemplate create(java.lang.String path, Session session)
MailTemplate
based on the path
identifying the location of the email template text in the repository.path
- The location of the email template text in the repository. Must point to an nt:file node.session
- The session used for accessing the repository.null
if there was an error creating the template.Copyright © 2010 - 2020 Adobe. All Rights Reserved