Aem cq mail service | Community
Skip to main content
arjuns71585267
Level 4
December 13, 2018

Aem cq mail service

  • December 13, 2018
  • 2 replies
  • 10105 views

Was trying to send email using cq mail service by creating a test email component. I have created  a jsp for the same. But the component shows error on rendering

<%@include file="/libs/foundation/global.jsp"%>

<%@page import="com.adobe.acs.commons.email.EmailService,java.util.*"%><%

// Get the OSGi Email Service

EmailService emailService = sling.getService(EmailService.class);

// Specify the template file to use (this is an absolute path in the JCR)

String templatePath = "/etc/notification/email/default/emailTemplate.txt";

//Set the dynamic variables of your email template

Map<String, String> emailParams = new HashMap<String,String>();

emailParams.put("body","hello there");

//  Customize the sender email address - if required

emailParams.put("senderEmailAddress","abcd@example.com");

emailParams.put("senderName","David Smith");

// Array of email recipients

String[] recipients = { "s.arjun36@gmail.com"};

// emailService.sendEmail(..) returns a list of all the recipients that could not be sent the email

// An empty list indicates 100% success

List<String> failureList = emailService.sendEmail(templatePath, emailParams, recipients);

if (failureList.isEmpty()) {

out.println("Email sent successfully to the recipients");

} else {

out.println("Email sent failed");

}

%>

This is my code and the following is the error message I receive on rendering the component

Error during include of component '/apps/emailtest/text'

Error Message:

org.apache.sling.api.scripting.ScriptEvaluationException: org.apache.sling.scripting.jsp.jasper.JasperException: Unable to compile class for JSP:  An error occurred at line: 19 in the generated java file Only a type can be imported. com.adobe.acs.commons.email.EmailService resolves to a package  An error occurred at line: 5 in the jsp file: /apps/emailtest/text/text.jsp EmailService cannot be resolved to a type 2:      <%@page import="com.adobe.acs.commons.email.EmailService,java.util.*"%><% 3: 4:      // Get the OSGi Email Service 5:      EmailService emailService = sling.getService(EmailService.class); 6: 7:      // Specify the template file to use (this is an absolute path in the JCR) 8:      String templatePath = "/etc/notification/email/default/emailTemplate.txt";   An error occurred at line: 5 in the jsp file: /apps/emailtest/text/text.jsp EmailService cannot be resolved to a type 2:      <%@page import="com.adobe.acs.commons.email.EmailService,java.util.*"%><% 3: 4:      // Get the OSGi Email Service 5:      EmailService emailService = sling.getService(EmailService.class); 6: 7:      // Specify the template file to use (this is an absolute path in the JCR) 8:      String templatePath = "/etc/notification/email/default/emailTemplate.txt";

Could anyone please help me out for this? Thanks in advance.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

2 replies

arunpatidar
Community Advisor
Community Advisor
December 13, 2018

Do you have ACS Common package/dependancy in place?

<!-- https://mvnrepository.com/artifact/com.adobe.acs/acs-aem-commons-bundle -->

<dependency>

    <groupId>com.adobe.acs</groupId>

    <artifactId>acs-aem-commons-bundle</artifactId>

    <version>2.1.0</version>

</dependency>

Arun Patidar
arjuns71585267
Level 4
December 14, 2018

I didn't build it using maven. just configured the day.cq.mail service

Feike_Visser1
Adobe Employee
Adobe Employee
December 14, 2018

the error indicates that the class can't found. Either the code is not deployed, or the bundle is not active.

can you check at /system/console/services whether the service is available?

smacdonald2008
Level 10
December 13, 2018

Write a custom Service that uses the MessageGatewayService. Its quite easy to use. See this article where we use it within a workflow step -

Adobe Experience Manager Help | Creating an Adobe Experience Manager 6.4 custom workflow step that uses the MessageGatew…

smacdonald2008
Level 10
December 13, 2018

Java code:

MessageGateway<Email> messageGateway;

             

        //Set up the Email message

        Email email = new SimpleEmail();

             

        //Set the mail values

        String emailToRecipients = "scottm@adobe.com";

        String emailCcRecipients = "ratna1.kumar@gmail.com";

         

        email.addTo(emailToRecipients);

        email.addCc(emailCcRecipients);

        email.setSubject("AEM Custom Step");

        email.setFrom("scottm@adobe.com");

        email.setMsg("This message is to inform you that the AEM content has been deleted");

         

        //Inject a MessageGateway Service and send the message

        messageGateway = messageGatewayService.getGateway(Email.class);

     

        // Check the logs to see that messageGateway is not null

        messageGateway.send((Email) email);