Tuesday, 13 December 2016

Creating Adobe Experience Manager HTL Components that send Email messages based on templates

You can create an Adobe Experience Manager (AEM) HTML Template Language (HTL) component that lets web site visitors populate a form and submit the data. The OSGi bundle contains a Sling  Servlet that sends an email message to email recipients. The email message is based on an AEM email template that is located in the AEM JCR repository.

An email template is simply a text file located in the AEM JCR. For example, consider the following template.

<html> 

<body>
<p> 
<b>Time:</b> ${time}
Forum URL: ${host.prefix}${forum.url}
</p>
A new reply was posted by ${modifiedBy.fullname} for CQ Forum topic "${topic.subject}".
-------------------------------------------------------------------------------------
${post.message} 
-------------------------------------------------------------------------------------
This is an automatically generated message. Please do not reply. 
Please follow this link to view all replies to this topic.
${host.prefix}${topic.url}
</body>
</html>


Email templates are located at the following JCR location: 

/etc/notification/email


An email template is a JCR node of type nt:file. Each node has a text file as shown in the following illustration. 



This development article discusses how to programmatically send an AEM email message that is based on a template. Futhermore, it also discusses how to populate the variables in the template with values. To send email messages that are based on AEM email templates, you use the MessageGatewayService API.  


Video



Join the Adobe Experience Cloud Community 

Join the Adobe Experience Cloud Community by clicking this banner




I (Scott Macdonald) am a Senior Digital Marketing Community Manager at Adobe Systems with 20 years in the high tech industry. I am also a programmer with knowledge in Java, JavaScript, C#,C++, HTML, XML and ActionScript. If  you would like to see more CQ or other Adobe Digital Marketing end to end articles like this, then leave a comment and let me know what content you would like to see.


TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel



TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeMktgCare.




TwitterFollow me on Twitter @smac2020  

2 comments:

  1. Hi Scott,

    Is there a way to auto populate all the form fields automatically. Say tomorrow I add a new field is form, then I simply dont want to go and add a new parameter in the email templates.

    Can I use something like a for loop inside the Email template.

    Please advice.

    Thanks
    Punth

    ReplyDelete
  2. I really appreciate information shared above. It’s of great help. If someone want to learn Online (Virtual) instructor lead live training in Adobe Experience Manager
    , kindly contact us http://www.maxmunus.com/contact
    MaxMunus Offer World Class Virtual Instructor led training on Adobe Experience Manager . We have industry expert trainer. We provide Training Material and Software Support. MaxMunus has successfully conducted 100000+ trainings in India, USA, UK, Australlia, Switzerland, Qatar, Saudi Arabia, Bangladesh, Bahrain and UAE etc.
    For Demo Contact us:
    Name : Arunkumar U
    Email : arun@maxmunus.com
    Skype id: training_maxmunus
    Contact No.-+91-9738507310
    Company Website –http://www.maxmunus.com



    ReplyDelete