Class MailTemplate


  • public class MailTemplate
    extends java.lang.Object
    The 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 Summary

      Constructors 
      Constructor 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).
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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>
      T
      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.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MailTemplate

        public MailTemplate​(java.io.InputStream inputStream,
                            java.lang.String encoding)
                     throws java.io.IOException
        Constructs a new MailTemplate with the template text given as the inputStream and the encoding (may be null).
        Parameters:
        inputStream - The template text.
        encoding - The encoding of the input stream (may be null). If empty, UTF-8 will be used.
        Throws:
        java.io.IOException - If an error occurs handling the input stream.
    • Method Detail

      • getEmail

        public <T extends Email> T getEmail​(StrLookup lookup,
                                            java.lang.Class<T> type)
                                     throws java.io.IOException,
                                            MessagingException,
                                            EmailException
        Create an 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.
        Type Parameters:
        T - The email type.
        Parameters:
        lookup - The StrLookup implementation to use for variable lookup.
        type - The class defining the email type.
        Returns:
        An email based on the template text and the variable resolver.
        Throws:
        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.
      • create

        public 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.
        Parameters:
        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.
        Returns:
        A mail template or null if there was an error creating the template.