In this Post I will explain How we can receive Emails through WSO2 ESB Mailto transport and perform some operations on it.
1. First lets Enable the transport. Open "repository/conf/axis2/axis2.xml" and uncomment the following section.
<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.MailTransportListener"> <!-- configure any optional POP3/IMAP properties check com.sun.mail.pop3 and com.sun.mail.imap package documentation for more details--> </transportReceiver>
2. Now lets create a proxy service to consumes the Emails. You can Copy and paste the following proxy service to source view to create the proxy. Make sure you change access parameters accordingly.
<?xml version="1.0" encoding="UTF-8"?> <proxy xmlns="http://ws.apache.org/ns/synapse" name="JasperEmailPOP3" transports="mailto" statistics="disable" trace="disable" startOnLoad="true"> <target> <inSequence> <property name="senderAddress" expression="get-property('transport', 'From')" scope="default" type="STRING"/> <log level="custom"> <property name="Date" expression="$trp:Date"/> <property name="Subject" expression="$trp:Subject"/> <property name="Content-Type" expression="$trp:Content-Type"/> <property name="From" expression="$trp:From"/> </log> <drop/> </inSequence> <outSequence> <send/> </outSequence> </target> <parameter name="mail.pop3.socketFactory.class">javax.net.ssl.SSLSocketFactory</parameter> <parameter name="transport.PollInterval">5</parameter> <parameter name="mail.pop3.host">pop.gmail.com</parameter> <parameter name="mail.pop3.user">ycwso2test</parameter> <parameter name="transport.mail.Protocol">pop3</parameter> <parameter name="mail.pop3.socketFactory.port">995</parameter> <parameter name="transport.mail.Address">ycwso2test@gmail.com</parameter> <parameter name="mail.pop3.password">wso2qa123</parameter> <parameter name="mail.pop3.port">995</parameter> <parameter name="mail.pop3.socketFactory.fallback">false</parameter> <description/> </proxy>
3. Now Send a Email to your Email account and you will see the following log in backlogs.
[2016-08-03 12:10:05,232] INFO - LogMediator Date = Wed, 3 Aug 2016 12:09:25 +0530, Subject = This is a Test, Content-Type = multipart/alternative; boundary=001a11402208fef0bb0539251978, From = Yasassri Ratnayake <ycrnet@gmail.com>
So thats it. If you cannot get this to work you can enable Debug logs and check whats wrong. To do this add the following line to repository/conf/log4j.properties and restart the ESB server.
log4j.logger.org.apache.axis2.transport.mail.MailTransportListener=DEBUG





