Expand my Community achievements bar.

SOLVED

How to post email in AEM

Avatar

Former Community Member

Hi there,

Today i try to use a OSGI to send email in AEM, below is code snippet:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <modelVersion>4.0.0</modelVersion> <!-- ====================================================================== --> <!-- P A R E N T P R O J E C T D E S C R I P T I O N --> <!-- ====================================================================== --> <parent> <groupId>com.adobe.cq</groupId> <artifactId>customer</artifactId> <version>1.0-SNAPSHOT</version> </parent> <!-- ====================================================================== --> <!-- P R O J E C T D E S C R I P T I O N --> <!-- ====================================================================== --> <artifactId>customer-bundle</artifactId> <packaging>bundle</packaging> <name>Customer Training Package Bundle</name> <!-- ====================================================================== --> <!-- B U I L D D E F I N I T I O N --> <!-- ====================================================================== --> <build> <plugins> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-scr-plugin</artifactId> <executions> <execution> <id>generate-scr-descriptor</id> <goals> <goal>scr</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <configuration> <instructions> <Bundle-SymbolicName>com.adobe.cq.customer-bundle</Bundle-SymbolicName> </instructions> </configuration> </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <configuration> <instructions> <Bundle-SymbolicName>com.adobe.cq.schedule-bundle</Bundle-SymbolicName> </instructions> </configuration> </plugin> <plugin> <groupId>org.apache.sling</groupId> <artifactId>maven-sling-plugin</artifactId> <configuration> <slingUrl>http://${crx.host}:${crx.port}/apps/customer-training/install</slingUrl> <usePut>true</usePut> </configuration> </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <configuration> <instructions> <Bundle-Category>cq5</Bundle-Category> <Embed-Dependency> dom4j, jaxen;scope=compile|runtime;inline=false </Embed-Dependency> <Embed-Transitive>true</Embed-Transitive> <Import-Package> com.sun.msv.*;resolution:=optional, nu.xom;resolution:=optional, org.gjt.xpp;resolution:=optional, org.jdom.*;resolution:=optional, org.relaxng.datatype;resolution:=optional, org.xmlpull.v1;resolution:=optional, * </Import-Package> </instructions> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.compendium</artifactId> </dependency> <dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.core</artifactId> </dependency> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.scr.annotations</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.osgi.core</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>org.apache.jackrabbit</groupId> <artifactId>jackrabbit-core</artifactId> <version>2.4.3</version> </dependency> <dependency> <groupId>org.apache.jackrabbit</groupId> <artifactId>jackrabbit-jcr-commons</artifactId> <version>2.4.3</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.api</artifactId> <version>2.2.4</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>javax.jcr</groupId> <artifactId>jcr</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>com.day.cq.wcm</groupId> <artifactId>cq-wcm-api</artifactId> <version>5.5.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.day.cq</groupId> <artifactId>cq-commons</artifactId> <version>5.5.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.commons.json</artifactId> <version>2.0.6</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.commons.scheduler</artifactId> <version>2.3.4</version> <scope>provided</scope> </dependency> <!-- HttpClient --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.2.1</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.2.1</version> </dependency> <!-- WSDL --> <dependency> <groupId>com.globalsight.jaxrpc</groupId> <artifactId>jaxrpc</artifactId> <version>1.0-SNAPSHOT</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.globalsight.log</groupId> <artifactId>log</artifactId> <version>1.0-SNAPSHOT</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.globalsight.mail</groupId> <artifactId>mail</artifactId> <version>1.4.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.globalsight.saaj</groupId> <artifactId>saaj</artifactId> <version>1.0-SNAPSHOT</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.globalsight.wsdl</groupId> <artifactId>wsdl</artifactId> <version>1.0-SNAPSHOT</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.axis</groupId> <artifactId>axis</artifactId> <version>1.4</version> <scope>provided</scope> </dependency> <dependency> <groupId>commons-discovery</groupId> <artifactId>commons-discovery</artifactId> <version>0.2</version> <scope>provided</scope> </dependency> <!-- dom4j --> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>1.1.1</version> </dependency> <!-- aem email --> <dependency> <groupId>com.day.cq</groupId> <artifactId>cq-mailer</artifactId> <version>5.6.2</version> <scope>provided</scope> </dependency> </dependencies> <repositories> <repository> <id>adobe</id> <name>Adobe Public Repository</name> <url>http://repo.adobe.com/nexus/content/groups/public/</url> <layout>default</layout> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>adobe</id> <name>Adobe Public Repository</name> <url>http://repo.adobe.com/nexus/content/groups/public/</url> <layout>default</layout> </pluginRepository> </pluginRepositories> </project>
String jobName = job.getJobName(); String target = job.getTarget(); logger.info("Done message: job " + jobName + " translated into " + target + " is completed."); try { MessageGateway<Email> messageGateway; Email email = new SimpleEmail(); String emailToRecipients = "brian.lei@163.com"; email.addTo(emailToRecipients); email.setSubject("Job Done Message"); email.setFrom("test@adobe.com"); email.setMsg("This message is to inform you that the job \'" + jobName  + "\' translated into language " + target + " has been completed!"); messageGateway = messageGatewayService.getGateway(Email.class); messageGateway.send((Email) email); }catch(Exception ex){ logger.error("Error post email: " +ex); }

 

But when i try to run command "mvn clean install" it appears error following:

[img]mailerror.png[/img]

 

Anyone knows how to manage to this problem?

Thanks a lot.

Best regards,

Brian

1 Accepted Solution

Avatar

Correct answer by
Level 10

See this community article. Covers your use case

https://helpx.adobe.com/experience-manager/using/creating-custom-cq-email-services.html

in this article, we use Java MAIL API and wrap the code into a bundle using Eclipse plugin project.

 

If you want to use Message Service Gateway, see

https://helpx.adobe.com/experience-manager/using/creating-custom-aem-workflow-steps.html

View solution in original post

5 Replies

Avatar

Correct answer by
Level 10

See this community article. Covers your use case

https://helpx.adobe.com/experience-manager/using/creating-custom-cq-email-services.html

in this article, we use Java MAIL API and wrap the code into a bundle using Eclipse plugin project.

 

If you want to use Message Service Gateway, see

https://helpx.adobe.com/experience-manager/using/creating-custom-aem-workflow-steps.html

Avatar

Level 9

can you share your settings.xml which comes with after installing maven??

Thanks,

Kishore

Avatar

Former Community Member

hi feike, thank you for your comments, and i try changing that but no help for that error.

I have to continue resarech it.

Avatar

Employee

what version of maven do you have installed?