arjuns71585267
arjuns71585267
13-12-2018
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
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.
Arun_Patidar
MVP
Arun_Patidar
MVP
13-12-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>
smacdonald2008
smacdonald2008
13-12-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 -
smacdonald2008
smacdonald2008
13-12-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);
arjuns71585267
arjuns71585267
14-12-2018
I didn't build it using maven. just configured the day.cq.mail service
Feike_Visser1
Employee
Feike_Visser1
Employee
14-12-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
smacdonald2008
14-12-2018
I find the MessageGatewayService API very reliable to use and do not see issues when using it.
Feike is correct - in your example - the error means that com.adobe.acs.commons.email.EmailService is not found. Ensure that this bundle is in active state.
Or write your own bundle using the API I referred to.
arjuns71585267
arjuns71585267
17-12-2018
I cannot find the service under the services. Attaching the screenshot for your reference.
KetkiNeema16
KetkiNeema16
29-11-2019
Hi smacdonald2008, Can we track bounced mails from MessageGateway API ?
Arun_Patidar
MVP
Arun_Patidar
MVP
30-11-2019
I believe you can get bounceback mail information from SMTP server.
for example, google SMTP server provides feeds for a bounce-back and other kinds of emails.