This documentation is for WSO2 ESB version 4.5.1. View documentation for the latest release.

Converting the SOAP Messages to Plain Text Mail

Follow the instructions below to convert a SOAP message to a plain text mail (without any XML in it).

1. Download and set up WSO2 ESB using instructions given in section Installation Guide. We refer to the distribution home as ESB_HOME.

2. Uncomment the mail TransportSender and TransportReceiver from ESB_HOME/repository/conf/axis2/axis2.xml file.

<transportSender name="mailto">
   <parameter name="mail.smtp.host">smtp.gmail.com</parameter>
   <parameter name="mail.smtp.port">587</parameter>
   <parameter name="mail.smtp.starttls.enable">true</parameter>
   <parameter name="mail.smtp.auth">true</parameter>
   <parameter name="mail.smtp.user">synapse.demo.0</parameter>
   <parameter name="mail.smtp.password">mailpassword</parameter>
   <parameter name="mail.smtp.from">synapse.demo.0@gmail.com</parameter>
</transportSender>

<transportReceiver name="mailto">
</transportReceiver>

3) Add the following line to axis2.xml files's MessageFormatters.

<messageFormatter contentType="text/plain"/>

4) Build the SimpleStockQuote service and run the sample Axis2 Server (ESB_HOME\samples\axis2Server>axis2server.bat). For instructions, go to ESB Samples Setup and then select the sub heading Starting Sample Back-End Services.

5) Start the ESB server by running,

  • ESB_HOME/bin/ wso2server.bat for windows
  • ESB_HOME/bin/wso2server.sh for linux

6) Go to the ESB management console UI (https://localhost:9443/carbon) and log in to it using credentials admins/admin.

7) Create a Proxy Service using the following Proxy configuration. For instructions on creating proxy services, refer to Adding a Proxy Service.

<!-- 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"/>
      <property name="messageType" value="text/plain" scope="axis2-client"/>
    <script language="js"><![CDATA[
              mc.setPayloadXML(<ns:text xmlns:ns="http://ws.apache.org/commons/ns/payload">Plain text received!</ns:text>);
       ]]></script>
            <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>

8) Send an email to synapse.demo.1@gmail.com.

9) Verify that you receive the response in plain text.