Objective: Using the Mail transport with Proxy Services.
Prerequisites
- You will need access an e-mail account.
- Start the Axis2 server and deploy the
SimpleStockQuoteService
if not already done. - Enable mail transport listener in the ESB
axis2.xml
. Simply uncomment the relevant transport receiver entry in the file. - Enable mail transport sender in the ESB
axis2.xml
. See Setting up mail transport sender. - Enable mail transport receiver in the ESB
axis2.xml
. See Setting up mail transport listener. - Start the Synapse configuration numbered 256:
wso2esb-samples.sh -sn 256
. Send a plain/text e-mail with the following body and any custom Subject from your mail account.
Code Block theme Eclipse language html/xml <m0:getQuote xmlns:m0="http://services.samples"><m0:request><m0> <m0:request> <m0:symbol>IBM</m0:symbol><symbol> </m0:request><request> </m0:getQuote>
- After a few seconds (for example 30 seconds), you should receive a POX response in your e-mail account with the stock quote reply.
Code Block | ||||
---|---|---|---|---|
| ||||
<!-- Using the mail transport --> <definitions xmlns="http://ws.apache.org/ns/synapse"> <proxy name="StockQuoteProxy" transports="mailto"> <parameter name="transport.mail.Address">synapse.demo.1@gmail.com</parameter> <parameter name="transport.mail.Protocol">pop3</parameter> <parameter name="transport.PollInterval">5</parameter> <parameter name="mail.pop3.host">pop.gmail.com</parameter> <parameter name="mail.pop3.port">995</parameter> <parameter name="mail.pop3.user">synapse.demo.1</parameter> <parameter name="mail.pop3.password">mailpassword</parameter> <parameter name="mail.pop3.socketFactory.class">javax.net.ssl.SSLSocketFactory</parameter> <parameter name="mail.pop3.socketFactory.fallback">false</parameter> <parameter name="mail.pop3.socketFactory.port">995</parameter> <parameter name="transport.mail.ContentType">application/xml</parameter> <target> <inSequence> <property name="senderAddress" expression="get-property('transport', 'From')"/> <log level="full"> <property name="Sender Address" expression="get-property('senderAddress')"/> </log> <send> <endpoint> <address uri="http://localhost:9000/services/SimpleStockQuoteService"/> </endpoint> </send> </inSequence> <outSequence> <property name="Subject" value="Custom Subject for Response" scope="transport"/> <header name="To" expression="fn:concat('mailto:', get-property('senderAddress'))"/> <log level="full"> <property name="message" value="Response message"/> <property name="Sender Address" expression="get-property('senderAddress')"/> </log> <send/> </outSequence> </target> <publishWSDL uri="file:repository/samples/resources/proxy/sample_proxy_1.wsdl"/> </proxy> </definitions> |
...