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

Aem cq mail service

  • December 13, 2018
  • 2 replies
  • 10097 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

arjuns71585267
Level 4
December 17, 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?


I cannot find the service under the services. Attaching the screenshot for your reference.

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);