You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by as...@apache.org on 2008/01/23 04:33:39 UTC

svn commit: r614414 [2/2] - in /webservices/synapse/branches/1.1.1: modules/transports/src/main/java/org/apache/synapse/transport/mail/ modules/transports/src/test/java/org/apache/synapse/transport/mail/ repository/conf/ repository/conf/sample/ reposit...

Added: webservices/synapse/branches/1.1.1/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailEchoRawXMLTest.java
URL: http://svn.apache.org/viewvc/webservices/synapse/branches/1.1.1/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailEchoRawXMLTest.java?rev=614414&view=auto
==============================================================================
--- webservices/synapse/branches/1.1.1/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailEchoRawXMLTest.java (added)
+++ webservices/synapse/branches/1.1.1/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailEchoRawXMLTest.java Tue Jan 22 19:33:36 2008
@@ -0,0 +1,487 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.synapse.transport.mail;
+
+import org.apache.synapse.transport.AbstractTransportTest;
+import org.apache.synapse.transport.base.BaseConstants;
+import org.apache.synapse.transport.mail.UtilsMailServer;
+import org.apache.synapse.transport.mail.MailTransportSender;
+import org.apache.axis2.client.Options;
+import org.apache.axis2.client.ServiceClient;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.Constants;
+import org.apache.axis2.description.TransportOutDescription;
+import org.apache.axis2.description.Parameter;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.log4j.Logger;
+import org.apache.log4j.Level;
+import org.apache.log4j.BasicConfigurator;
+import org.apache.axiom.om.util.UUIDGenerator;
+import org.apache.axiom.om.util.StAXUtils;
+import org.apache.axiom.om.*;
+import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.xpath.AXIOMXPath;
+import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAP12Constants;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.mail.*;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.InternetAddress;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.namespace.QName;
+import javax.activation.DataHandler;
+import javax.activation.CommandMap;
+import javax.activation.MailcapCommandMap;
+import java.util.Properties;
+import java.util.Arrays;
+import java.util.Date;
+import java.io.StringReader;
+
+public class MailEchoRawXMLTest extends AbstractTransportTest {
+
+    private static final Log log = LogFactory.getLog(MailEchoRawXMLTest.class);
+
+    private static final String KOREAN_TEXT = "\uc5ec\ubcf4\uc138\uc694 \uc138\uacc4!";
+    private static final String KOREAN_CHARSET = "ISO-2022-KR";
+    private static final String POX_MESSAGE =
+        "<my:echoOMElement xmlns:my=\"http://ws.apache.org/namespaces/axis2\">" +
+        "<my:myValue>omTextValue</my:myValue></my:echoOMElement>";
+
+    private Properties props = new Properties();
+    private String username = "synapse.test.0";
+    private String password = "mailpassword";
+
+    public MailEchoRawXMLTest() {
+        //Logger.getLogger("org.apache.synapse.transport.mail").setLevel(Level.TRACE);
+        server = new UtilsMailServer();
+
+        props.put("mail.pop3.host", "pop.gmail.com");
+        props.put("mail.pop3.port", "995");
+        props.put("mail.pop3.user", "synapse.test.0");
+
+        props.put("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
+        props.put("mail.pop3.socketFactory.fallback", "false");
+        props.put("mail.pop3.socketFactory.port", "995");
+
+        props.put("mail.smtp.host", "smtp.gmail.com");
+        props.put("mail.smtp.port", "587");
+        props.put("mail.smtp.starttls.enable", "true");
+        props.put("mail.smtp.user", "synapse.test.1");
+        props.put("mail.smtp.password", "mailpassword");
+        props.put("mail.smtp.auth", "true");
+    }
+
+    public void testRoundTripPOX() throws Exception {
+
+        String msgId = UUIDGenerator.getUUID();
+
+        Session session = Session.getInstance(props, new Authenticator() {
+            public PasswordAuthentication getPasswordAuthentication() {
+                return new PasswordAuthentication("synapse.test.1", "mailpassword");    
+            }
+        });
+        session.setDebug(log.isTraceEnabled());
+        
+        WSMimeMessage msg = new WSMimeMessage(session);
+	    msg.setFrom(new InternetAddress("synapse.test.0@gmail.com"));
+        msg.setReplyTo(InternetAddress.parse("synapse.test.0@gmail.com"));
+        InternetAddress[] address = {new InternetAddress("synapse.test.6@gmail.com")};
+	    msg.setRecipients(Message.RecipientType.TO, address);
+	    msg.setSubject("POX Roundtrip");
+        msg.setHeader(BaseConstants.SOAPACTION, Constants.AXIS2_NAMESPACE_URI + "/echoOMElement");
+        msg.setSentDate(new Date());
+        msg.setHeader(MailConstants.MAIL_HEADER_MESSAGE_ID, msgId);
+        msg.setHeader(MailConstants.MAIL_HEADER_X_MESSAGE_ID, msgId);
+        msg.setText(POX_MESSAGE);
+        Transport.send(msg);
+
+        Thread.yield();
+        Thread.sleep(1000 * 10);
+
+        Object reply = null;
+        boolean replyNotFound = true;
+        int retryCount = 3;
+        while (replyNotFound) {
+            log.debug("Checking for response ... with MessageID : " + msgId);
+            reply = getMessage(msgId);
+            if (reply != null) {
+                replyNotFound = false;
+            } else {
+                if (retryCount-- > 0) {
+                    Thread.sleep(10000);
+                } else {
+                    break;
+                }
+            }
+        }
+
+        if (reply != null && reply instanceof String) {
+            log.debug("Result Body : " + reply);
+            XMLStreamReader reader = StAXUtils.createXMLStreamReader(new StringReader((String) reply));
+            OMElement res = new StAXOMBuilder(reader).getDocumentElement();
+            if (res != null) {
+                AXIOMXPath xpath = new AXIOMXPath("//my:myValue");
+                xpath.addNamespace("my", "http://localhost/axis2/services/EchoXMLService");
+                Object result = xpath.evaluate(res);
+                if (result != null && result instanceof OMElement) {
+                    assertEquals("omTextValue", ((OMElement) result).getText());
+                }
+            }
+        } else {
+            fail("Did not receive the reply mail");
+        }
+    }
+
+    public void testRoundTripMultiPart() throws Exception {
+
+        String msgId = UUIDGenerator.getUUID();
+        Options options = new Options();
+        options.setTo(new EndpointReference("mailto:synapse.test.6@gmail.com"));
+        options.setReplyTo(new EndpointReference("mailto:synapse.test.0@gmail.com"));
+        options.setAction(Constants.AXIS2_NAMESPACE_URI + "/echoOMElement");
+        options.setMessageId(msgId);
+
+        options.setProperty(MailConstants.TRANSPORT_MAIL_FORMAT, MailConstants.TRANSPORT_FORMAT_MP);
+
+        ServiceClient sender = new ServiceClient(getClientCfgCtx(), null);
+        sender.setOptions(options);
+        sender.fireAndForget(createPayload());
+
+        Thread.yield();
+        Thread.sleep(1000 * 10);
+
+        Object reply = null;
+        boolean replyNotFound = true;
+        int retryCount = 3;
+        while (replyNotFound) {
+            log.debug("Checking for response ... with MessageID : " + msgId);
+            reply = getMessage(msgId);
+            if (reply != null) {
+                replyNotFound = false;
+            } else {
+                if (retryCount-- > 0) {
+                    Thread.sleep(10000);
+                } else {
+                    break;
+                }
+            }
+        }
+
+        if (reply != null && reply instanceof String) {
+            log.debug("Result Body : " + reply);
+            XMLStreamReader reader = StAXUtils.createXMLStreamReader(new StringReader((String) reply));
+            SOAPEnvelope env = new StAXSOAPModelBuilder(reader).getSOAPEnvelope();
+            if (env != null) {
+                AXIOMXPath xpath = new AXIOMXPath("//my:myValue");
+                xpath.addNamespace("my", "http://localhost/axis2/services/EchoXMLService");
+                Object result = xpath.evaluate(env);
+                if (result != null && result instanceof OMElement) {
+                    assertEquals("omTextValue", ((OMElement) result).getText());
+                }
+            }
+        } else {
+            fail("Did not receive the reply mail");
+        }
+    }
+
+    public void testRoundTripMultiPartKorean() throws Exception {
+
+        String msgId = UUIDGenerator.getUUID();
+        Options options = new Options();
+        options.setTo(new EndpointReference("mailto:synapse.test.6@gmail.com"));
+        options.setReplyTo(new EndpointReference("mailto:synapse.test.0@gmail.com"));
+        options.setAction(Constants.AXIS2_NAMESPACE_URI + "/echoOMElement");
+        options.setMessageId(msgId);
+
+        options.setProperty(MailConstants.TRANSPORT_MAIL_FORMAT, MailConstants.TRANSPORT_FORMAT_MP);
+
+        ServiceClient sender = new ServiceClient(getClientCfgCtx(), null);
+        sender.setOptions(options);
+        sender.fireAndForget(createKoreanPayload());
+
+        Thread.yield();
+        Thread.sleep(1000 * 10);
+
+        Object reply = null;
+        boolean replyNotFound = true;
+        int retryCount = 3;
+        while (replyNotFound) {
+            log.debug("Checking for response ... with MessageID : " + msgId);
+            reply = getMessage(msgId);
+            if (reply != null) {
+                replyNotFound = false;
+            } else {
+                if (retryCount-- > 0) {
+                    Thread.sleep(10000);
+                } else {
+                    break;
+                }
+            }
+        }
+
+        if (reply != null && reply instanceof String) {
+            log.debug("Result Body : " + reply);
+            XMLStreamReader reader = StAXUtils.createXMLStreamReader(new StringReader((String) reply));
+            SOAPEnvelope env = new StAXSOAPModelBuilder(reader).getSOAPEnvelope();
+            if (env != null) {
+                AXIOMXPath xpath = new AXIOMXPath("//my:myValue");
+                xpath.addNamespace("my", "http://localhost/axis2/services/EchoXMLService");
+                Object result = xpath.evaluate(env);
+                if (result != null && result instanceof OMElement) {
+                    assertEquals("omTextValue", ((OMElement) result).getText());
+                }
+            }
+        } else {
+            fail("Did not receive the reply mail");
+        }
+    }
+
+    public void testRoundTripPOPDefaultCharsetSOAP12() throws Exception {
+
+        String msgId = UUIDGenerator.getUUID();
+        Options options = new Options();
+        options.setTo(new EndpointReference("mailto:synapse.test.6@gmail.com"));
+        options.setReplyTo(new EndpointReference("mailto:synapse.test.0@gmail.com"));
+        options.setAction(Constants.AXIS2_NAMESPACE_URI + "/echoOMElement");
+        options.setSoapVersionURI(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
+        options.setMessageId(msgId);
+
+        ServiceClient sender = new ServiceClient(getClientCfgCtx(), null);
+        sender.setOptions(options);
+        sender.fireAndForget(createPayload());
+
+        Thread.yield();
+        Thread.sleep(1000 * 10);
+
+        Object reply = null;
+        boolean replyNotFound = true;
+        int retryCount = 3;
+        while (replyNotFound) {
+            log.debug("Checking for response ... with MessageID : " + msgId);
+            reply = getMessage(msgId);
+            if (reply != null) {
+                replyNotFound = false;
+            } else {
+                if (retryCount-- > 0) {
+                    Thread.sleep(10000);
+                } else {
+                    break;
+                }
+            }
+        }
+
+        if (reply != null && reply instanceof String) {
+            log.debug("Result Body : " + reply);
+            XMLStreamReader reader = StAXUtils.createXMLStreamReader(new StringReader((String) reply));
+            SOAPEnvelope env = new StAXSOAPModelBuilder(reader).getSOAPEnvelope();
+            if (env != null) {
+                AXIOMXPath xpath = new AXIOMXPath("//my:myValue");
+                xpath.addNamespace("my", "http://localhost/axis2/services/EchoXMLService");
+                Object result = xpath.evaluate(env);
+                if (result != null && result instanceof OMElement) {
+                    assertEquals("omTextValue", ((OMElement) result).getText());
+                }
+            }
+        } else {
+            fail("Did not receive the reply mail");
+        }
+    }
+
+    public void testRoundTripIMAPUTF8Charset() throws Exception {
+
+        String msgId = UUIDGenerator.getUUID();
+        Options options = new Options();
+        options.setTo(new EndpointReference("mailto:synapse.test.7@gmail.com"));
+        options.setReplyTo(new EndpointReference("mailto:synapse.test.0@gmail.com"));
+        options.setAction(Constants.AXIS2_NAMESPACE_URI + "/echoOMElement");
+        options.setMessageId(msgId);
+
+        ServiceClient sender = new ServiceClient(getClientCfgCtx(), null);
+        sender.setOptions(options);
+        sender.fireAndForget(createKoreanPayload());
+
+        Thread.yield();
+        Thread.sleep(1000 * 10);
+
+        Object reply = null;
+        boolean replyNotFound = true;
+        int retryCount = 3;
+        while (replyNotFound) {
+            log.debug("Checking for response ... with MessageID : " + msgId);
+            reply = getMessage(msgId);
+            if (reply != null) {
+                replyNotFound = false;
+            } else {
+                if (retryCount-- > 0) {
+                    Thread.sleep(10000);
+                } else {
+                    break;
+                }
+            }
+        }
+
+        if (reply != null && reply instanceof String) {
+            log.debug("Result Body : " + reply);
+            XMLStreamReader reader = StAXUtils.createXMLStreamReader(new StringReader((String) reply));
+            SOAPEnvelope env = new StAXSOAPModelBuilder(reader).getSOAPEnvelope();
+            if (env != null) {
+                AXIOMXPath xpath = new AXIOMXPath("//my:myValue");
+                xpath.addNamespace("my", "http://localhost/axis2/services/EchoXMLService");
+                Object result = xpath.evaluate(env);
+                if (result != null && result instanceof OMElement) {
+                    assertEquals(KOREAN_TEXT, ((OMElement) result).getText());
+                }
+            }
+        } else {
+            fail("Did not receive the reply mail");
+        }
+    }
+
+    public void testRoundTripIMAPKoreanCharset() throws Exception {
+
+        String msgId = UUIDGenerator.getUUID();
+        Options options = new Options();
+        options.setTo(new EndpointReference("mailto:synapse.test.7@gmail.com"));
+        options.setReplyTo(new EndpointReference("mailto:synapse.test.0@gmail.com"));
+        options.setAction(Constants.AXIS2_NAMESPACE_URI + "/echoOMElement");
+        options.setMessageId(msgId);
+        options.setProperty(Constants.Configuration. CHARACTER_SET_ENCODING, KOREAN_CHARSET);
+
+        ServiceClient sender = new ServiceClient(getClientCfgCtx(), null);
+        sender.setOptions(options);
+        sender.fireAndForget(createKoreanPayload());
+
+        Thread.yield();
+        Thread.sleep(1000 * 10);
+
+        Object reply = null;
+        boolean replyNotFound = true;
+        int retryCount = 3;
+        while (replyNotFound) {
+            log.debug("Checking for response ... with MessageID : " + msgId);
+            reply = getMessage(msgId);
+            if (reply != null) {
+                replyNotFound = false;
+            } else {
+                if (retryCount-- > 0) {
+                    Thread.sleep(10000);
+                } else {
+                    break;
+                }
+            }
+        }
+
+        if (reply != null && reply instanceof String) {
+            log.debug("Result Body : " + reply);
+            XMLStreamReader reader = StAXUtils.createXMLStreamReader(new StringReader((String) reply));
+            SOAPEnvelope env = new StAXSOAPModelBuilder(reader).getSOAPEnvelope();
+            if (env != null) {
+                AXIOMXPath xpath = new AXIOMXPath("//my:myValue");
+                xpath.addNamespace("my", "http://localhost/axis2/services/EchoXMLService");
+                Object result = xpath.evaluate(env);
+                if (result != null && result instanceof OMElement) {
+                    assertEquals(KOREAN_TEXT, ((OMElement) result).getText());
+                }
+            }
+        } else {
+            fail("Did not receive the reply mail");
+        }
+    }
+
+    private Object getMessage(String requestMsgId) {
+        Session session = Session.getInstance(props, null);
+        session.setDebug(log.isTraceEnabled());
+        Store store = null;
+
+        try {
+            store = session.getStore("pop3");
+            store.connect(username, password);
+            Folder folder = store.getFolder(MailConstants.DEFAULT_FOLDER);
+            folder.open(Folder.READ_WRITE);
+            Message[] msgs = folder.getMessages();
+            System.out.println(msgs.length + " replies in reply mailbox");
+            for (Message m:msgs) {
+                String[] inReplyTo = m.getHeader(MailConstants.MAIL_HEADER_IN_REPLY_TO);
+                System.out.println("Got reply to : " + Arrays.toString(inReplyTo));
+                if (inReplyTo != null && inReplyTo.length > 0) {
+                    for (int j=0; j<inReplyTo.length; j++) {
+                        if (requestMsgId.equals(inReplyTo[j])) {
+                            m.setFlag(Flags.Flag.DELETED, true);
+                            return m.getContent();
+                        }
+                    }
+                }
+                m.setFlag(Flags.Flag.DELETED, true);
+            }
+            folder.close(true);
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {    
+            if (store != null) {
+                try {
+                    store.close();
+                } catch (MessagingException ignore) {}
+                store = null;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Create a axis2 configuration context that 'knows' about the Mail transport
+     * @return
+     * @throws Exception
+     */
+    public ConfigurationContext getClientCfgCtx() throws Exception {
+
+        AxisConfiguration axisCfg = new AxisConfiguration();
+        TransportOutDescription trpOutDesc = new TransportOutDescription("mailto");
+
+        trpOutDesc.addParameter(new Parameter("mail.smtp.host", "smtp.gmail.com"));
+        trpOutDesc.addParameter(new Parameter("mail.smtp.port", "587"));
+        trpOutDesc.addParameter(new Parameter("mail.smtp.starttls.enable", "true"));
+        trpOutDesc.addParameter(new Parameter("mail.smtp.user", "synapse.test.1"));
+        trpOutDesc.addParameter(new Parameter("mail.smtp.password", "mailpassword"));
+        trpOutDesc.addParameter(new Parameter("mail.smtp.auth", "true"));
+
+        MailTransportSender trpSender = new MailTransportSender();
+        trpOutDesc.setSender(trpSender);
+
+        axisCfg.addTransportOut(trpOutDesc);
+        ConfigurationContext cfgCtx = new ConfigurationContext(axisCfg);
+
+        trpSender.init(cfgCtx, trpOutDesc);
+        return cfgCtx;
+    }
+
+    protected OMElement createKoreanPayload() {
+        OMFactory fac = OMAbstractFactory.getOMFactory();
+        OMNamespace omNs = fac.createOMNamespace("http://localhost/axis2/services/EchoXMLService", "my");
+        OMElement method = fac.createOMElement("echoOMElement", omNs);
+        OMElement value = fac.createOMElement("myValue", omNs);
+        value.addChild(fac.createOMText(value, KOREAN_TEXT));
+        method.addChild(value);
+        return method;
+    }
+}

Added: webservices/synapse/branches/1.1.1/modules/transports/src/test/java/org/apache/synapse/transport/mail/UtilsMailServer.java
URL: http://svn.apache.org/viewvc/webservices/synapse/branches/1.1.1/modules/transports/src/test/java/org/apache/synapse/transport/mail/UtilsMailServer.java?rev=614414&view=auto
==============================================================================
--- webservices/synapse/branches/1.1.1/modules/transports/src/test/java/org/apache/synapse/transport/mail/UtilsMailServer.java (added)
+++ webservices/synapse/branches/1.1.1/modules/transports/src/test/java/org/apache/synapse/transport/mail/UtilsMailServer.java Tue Jan 22 19:33:36 2008
@@ -0,0 +1,102 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.synapse.transport.mail;
+
+import org.apache.synapse.transport.UtilsTransportServer;
+import org.apache.synapse.transport.mail.MailTransportListener;
+import org.apache.synapse.transport.mail.MailTransportSender;
+import org.apache.axis2.description.TransportOutDescription;
+import org.apache.axis2.description.TransportInDescription;
+import org.apache.axis2.description.Parameter;
+
+import java.util.List;
+import java.util.ArrayList;
+
+
+public class UtilsMailServer extends UtilsTransportServer {
+
+    public void start() throws Exception {
+
+        TransportOutDescription trpOutDesc =
+            new TransportOutDescription(MailConstants.TRANSPORT_NAME);
+        // gmail
+        trpOutDesc.addParameter(new Parameter("mail.smtp.host", "smtp.gmail.com"));
+        trpOutDesc.addParameter(new Parameter("mail.smtp.port", "587"));
+        trpOutDesc.addParameter(new Parameter("mail.smtp.starttls.enable", "true"));
+        trpOutDesc.addParameter(new Parameter("mail.smtp.user", "synapse.test.1"));
+        trpOutDesc.addParameter(new Parameter("mail.smtp.from", "synapse.test.1@gmail.com"));
+        trpOutDesc.addParameter(new Parameter("mail.smtp.password", "mailpassword"));
+        trpOutDesc.addParameter(new Parameter("mail.smtp.auth", "true"));
+
+        trpOutDesc.setSender(new MailTransportSender());
+
+        TransportInDescription trpInDesc =
+            new TransportInDescription(MailConstants.TRANSPORT_NAME);
+        trpInDesc.setReceiver(new MailTransportListener());
+        super.start(trpInDesc, trpOutDesc);
+
+        // Service1 - polls synapse.test.6@gmail.com using POP3/SSL, and writes the response to
+        // synapse.test.1@gmail.com and deletes request on success. Polls every 5 secs
+        List parameters = new ArrayList();
+        //gmail
+        parameters.add(new Parameter("transport.mail.Address", "synapse.test.6@gmail.com"));
+        // local james
+        parameters.add(new Parameter("transport.mail.Address", "synapse.test.6@localhost"));
+        //parameters.add(new Parameter("transport.mail.ReplyAddress", "synapse.test.1@gmail.com"));
+        parameters.add(new Parameter("transport.mail.Protocol", "pop3"));
+        //parameters.add(new Parameter("transport.mail.ContentType", "text/xml"));
+        parameters.add(new Parameter("transport.mail.ActionAfterProcess", "DELETE"));
+        parameters.add(new Parameter("transport.PollInterval", "5"));
+
+        // gmail
+        parameters.add(new Parameter("mail.pop3.host", "pop.gmail.com"));
+        parameters.add(new Parameter("mail.pop3.port", "995"));
+        parameters.add(new Parameter("mail.pop3.user", "synapse.test.6"));
+        parameters.add(new Parameter("mail.pop3.password", "mailpassword"));
+
+        parameters.add(new Parameter("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory"));
+        parameters.add(new Parameter("mail.pop3.socketFactory.fallback", "false"));
+        parameters.add(new Parameter("mail.pop3.socketFactory.port", "995"));
+
+        deployEchoService("Service1", parameters);
+
+        // Service2 - polls synapse.test.7@gmail.com using IMAP/SSL, and writes the response to
+        // synapse.test.1@gmail.com and deletes request on success. Polls every 5 secs
+        parameters = new ArrayList();
+        parameters.add(new Parameter("transport.mail.Address", "synapse.test.7@gmail.com"));
+        //parameters.add(new Parameter("transport.mail.ReplyAddress", "synapse.test.1@gmail.com"));
+        parameters.add(new Parameter("transport.mail.Protocol", "imap"));
+        //parameters.add(new Parameter("transport.mail.ContentType", "text/xml"));
+        //parameters.add(new Parameter("transport.mail.ActionAfterProcess", "DELETE"));
+        parameters.add(new Parameter("transport.PollInterval", "5"));
+
+        parameters.add(new Parameter("mail.imap.host", "imap.gmail.com"));
+        parameters.add(new Parameter("mail.imap.port", "993"));
+        parameters.add(new Parameter("mail.imap.user", "synapse.test.7"));
+        parameters.add(new Parameter("mail.imap.password", "mailpassword"));
+
+        parameters.add(new Parameter("mail.imap.socketFactory.class", "javax.net.ssl.SSLSocketFactory"));
+        parameters.add(new Parameter("mail.imap.socketFactory.fallback", "false"));
+        parameters.add(new Parameter("mail.imap.socketFactory.port", "993"));
+
+        deployEchoService("Service2", parameters);
+    }
+
+}

Modified: webservices/synapse/branches/1.1.1/repository/conf/axis2.xml
URL: http://svn.apache.org/viewvc/webservices/synapse/branches/1.1.1/repository/conf/axis2.xml?rev=614414&r1=614413&r2=614414&view=diff
==============================================================================
--- webservices/synapse/branches/1.1.1/repository/conf/axis2.xml (original)
+++ webservices/synapse/branches/1.1.1/repository/conf/axis2.xml Tue Jan 22 19:33:36 2008
@@ -191,23 +191,10 @@
 
     <transportReceiver name="vfs" class="org.apache.synapse.transport.vfs.VFSTransportListener"/>
 
-    <!-- ================================================= -->
-    <!-- Mail Transport Listener  -->
-    <!-- This is a sample configuration. It assumes a mail server running in localhost.
-         Listener pops  messages that comes to the email address red@localhost. Users
-         password is red. Listener connect to the server every 3000 milliseconds.
-         Parameters with "transport." prefix is Axis2 specific. Others are all from Java Mail API. 
-         http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
-     -->
-    <!-- ================================================= -->
-    <!--<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
-        <parameter name="mail.pop3.host">localhost</parameter>
-        <parameter name="mail.pop3.user">red</parameter>
-        <parameter name="mail.store.protocol">pop3</parameter>
-        <parameter name="transport.mail.pop3.password">red</parameter>
-        <parameter name="transport.mail.replyToAddress">red@localhost</parameter>
-        <parameter name="transport.listener.interval">3000</parameter>
-    </transportReceiver>-->
+    <transportReceiver name="mailto" class="org.apache.synapse.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>
 
     <!-- ================================================= -->
     <!-- Transport Outs -->
@@ -240,7 +227,8 @@
     </transportSender>
     
     <transportSender name="jms" class="org.apache.synapse.transport.jms.JMSSender">
-        <!-- <parameter name="myTopicConnectionFactory">
+        <!-- uncomment this and configure to use connection pools for sending messages
+        <parameter name="myTopicConnectionFactory">
             <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
             <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
             <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
@@ -261,14 +249,16 @@
     
     <transportSender name="vfs" class="org.apache.synapse.transport.vfs.VFSTransportSender"/>
 
-    <!-- ================================================= -->
-    <!-- Mail Transport Sender  -->
-    <!--Only need to uncomment the sender. Configuration is achieved with every client.
-        At any instant mail host should be given. Sample configuration has been given.
-        http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html-->
-    <!-- ================================================= -->
-    <!--<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
-        <parameter name="mail.smtp.host">localhost</parameter>
+    <!-- Uncomment and configure the SMTP server information
+    check com.sun.mail.smtp package documentation for descriptions of properties
+    <transportSender name="mailto" class="org.apache.synapse.transport.mail.MailTransportSender">
+        <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>-->
 
     <!-- ================================================= -->

Modified: webservices/synapse/branches/1.1.1/repository/conf/sample/resources/misc/client/axis2.xml
URL: http://svn.apache.org/viewvc/webservices/synapse/branches/1.1.1/repository/conf/sample/resources/misc/client/axis2.xml?rev=614414&r1=614413&r2=614414&view=diff
==============================================================================
--- webservices/synapse/branches/1.1.1/repository/conf/sample/resources/misc/client/axis2.xml (original)
+++ webservices/synapse/branches/1.1.1/repository/conf/sample/resources/misc/client/axis2.xml Tue Jan 22 19:33:36 2008
@@ -187,23 +187,10 @@
         </parameter>
     </transportReceiver>-->
 
-    <!-- ================================================= -->
-    <!-- Mail Transport Listener  -->
-    <!-- This is a sample configuration. It assumes a mail server running in localhost.
-         Listener pops  messages that comes to the email address red@localhost. Users
-         password is red. Listener connect to the server every 3000 milliseconds.
-         Parameters with "transport." prefix is Axis2 specific. Others are all from Java Mail API. 
-         http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
-     -->
-    <!-- ================================================= -->
-    <!--<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
-        <parameter name="mail.pop3.host">localhost</parameter>
-        <parameter name="mail.pop3.user">red</parameter>
-        <parameter name="mail.store.protocol">pop3</parameter>
-        <parameter name="transport.mail.pop3.password">red</parameter>
-        <parameter name="transport.mail.replyToAddress">red@localhost</parameter>
-        <parameter name="transport.listener.interval">3000</parameter>
-    </transportReceiver>-->
+    <transportReceiver name="mailto" class="org.apache.synapse.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>
 
 	<!--Uncomment if you want to have TCP transport support-->
     <!--transportReceiver name="tcp"
@@ -239,16 +226,17 @@
     <transportSender name="jms"
                      class="org.apache.synapse.transport.jms.JMSSender"/>
 
-    <!-- ================================================= -->
-    <!-- Mail Transport Sender  -->
-    <!--Only need to uncomment the sender. Configuration is achieved with every client.
-        At any instant mail host should be given. Sample configuration has been given.
-        http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
-   -->
-    <!-- ================================================= -->
-   <!--<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
-        <parameter name="mail.smtp.host">localhost</parameter>
-    </transportSender>-->
+    <!-- configure the SMTP server information
+    check com.sun.mail.smtp package documentation for descriptions of properties-->
+    <transportSender name="mailto" class="org.apache.synapse.transport.mail.MailTransportSender">
+        <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>
 
     <!-- ================================================= -->
     <!-- Global Modules  -->

Modified: webservices/synapse/branches/1.1.1/repository/conf/sample/resources/misc/server/axis2.xml
URL: http://svn.apache.org/viewvc/webservices/synapse/branches/1.1.1/repository/conf/sample/resources/misc/server/axis2.xml?rev=614414&r1=614413&r2=614414&view=diff
==============================================================================
--- webservices/synapse/branches/1.1.1/repository/conf/sample/resources/misc/server/axis2.xml (original)
+++ webservices/synapse/branches/1.1.1/repository/conf/sample/resources/misc/server/axis2.xml Tue Jan 22 19:33:36 2008
@@ -189,23 +189,10 @@
         </parameter>
     </transportReceiver>-->
 
-    <!-- ================================================= -->
-    <!-- Mail Transport Listener  -->
-    <!-- This is a sample configuration. It assumes a mail server running in localhost.
-         Listener pops  messages that comes to the email address red@localhost. Users
-         password is red. Listener connect to the server every 3000 milliseconds.
-         Parameters with "transport." prefix is Axis2 specific. Others are all from Java Mail API. 
-         http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
-     -->
-    <!-- ================================================= -->
-    <!--<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
-        <parameter name="mail.pop3.host">localhost</parameter>
-        <parameter name="mail.pop3.user">red</parameter>
-        <parameter name="mail.store.protocol">pop3</parameter>
-        <parameter name="transport.mail.pop3.password">red</parameter>
-        <parameter name="transport.mail.replyToAddress">red@localhost</parameter>
-        <parameter name="transport.listener.interval">3000</parameter>
-    </transportReceiver>-->
+    <transportReceiver name="mailto" class="org.apache.synapse.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>
 
     <!-- ================================================= -->
     <!-- Transport Outs -->
@@ -241,14 +228,15 @@
     <transportSender name="jms"
                      class="org.apache.synapse.transport.jms.JMSSender"/>
 
-    <!-- ================================================= -->
-    <!-- Mail Transport Sender  -->
-    <!--Only need to uncomment the sender. Configuration is achieved with every client.
-        At any instant mail host should be given. Sample configuration has been given.
-        http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html-->
-    <!-- ================================================= -->
-    <!--<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
-        <parameter name="mail.smtp.host">localhost</parameter>
+    <!-- Uncomment and configure the SMTP server information
+    check com.sun.mail.smtp package documentation for descriptions of properties
+    <transportSender name="mailto" class="org.apache.synapse.transport.mail.MailTransportSender">
+        <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.user">synapse.test.0</parameter>
+        <parameter name="mail.smtp.password">mailpassword</parameter>
+        <parameter name="mail.smtp.auth">true</parameter>
     </transportSender>-->
 
     <!-- ================================================= -->

Added: webservices/synapse/branches/1.1.1/repository/conf/sample/synapse_sample_256.xml
URL: http://svn.apache.org/viewvc/webservices/synapse/branches/1.1.1/repository/conf/sample/synapse_sample_256.xml?rev=614414&view=auto
==============================================================================
--- webservices/synapse/branches/1.1.1/repository/conf/sample/synapse_sample_256.xml (added)
+++ webservices/synapse/branches/1.1.1/repository/conf/sample/synapse_sample_256.xml Tue Jan 22 19:33:36 2008
@@ -0,0 +1,59 @@
+<!--
+  ~  Licensed to the Apache Software Foundation (ASF) under one
+  ~  or more contributor license agreements.  See the NOTICE file
+  ~  distributed with this work for additional information
+  ~  regarding copyright ownership.  The ASF licenses this file
+  ~  to you under the Apache License, Version 2.0 (the
+  ~  "License"); you may not use this file except in compliance
+  ~  with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~  Unless required by applicable law or agreed to in writing,
+  ~  software distributed under the License is distributed on an
+  ~   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~  KIND, either express or implied.  See the License for the
+  ~  specific language governing permissions and limitations
+  ~  under the License.
+  -->
+
+<!-- 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>
+
+        <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/soap/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/conf/sample/resources/proxy/sample_proxy_1.wsdl"/>
+    </proxy>
+</definitions>
\ No newline at end of file

Modified: webservices/synapse/branches/1.1.1/src/main/release/docs/release_notes.txt
URL: http://svn.apache.org/viewvc/webservices/synapse/branches/1.1.1/src/main/release/docs/release_notes.txt?rev=614414&r1=614413&r2=614414&view=diff
==============================================================================
--- webservices/synapse/branches/1.1.1/src/main/release/docs/release_notes.txt (original)
+++ webservices/synapse/branches/1.1.1/src/main/release/docs/release_notes.txt Tue Jan 22 19:33:36 2008
@@ -68,6 +68,7 @@
     The 1.1.1 release
         * Clustering support for the Cache/Throttle Mediators
         * Maintainance mode support for the HTTP transport
+        * New Mail transport that supports POP3/IMAP/SMTP
         * JMX Monitoring support
         * Callout Mediator
         * Improved JMS/VFS transports

Modified: webservices/synapse/branches/1.1.1/src/site/resources/Synapse_Samples.html
URL: http://svn.apache.org/viewvc/webservices/synapse/branches/1.1.1/src/site/resources/Synapse_Samples.html?rev=614414&r1=614413&r2=614414&view=diff
==============================================================================
--- webservices/synapse/branches/1.1.1/src/site/resources/Synapse_Samples.html (original)
+++ webservices/synapse/branches/1.1.1/src/site/resources/Synapse_Samples.html Tue Jan 22 19:33:36 2008
@@ -215,6 +215,8 @@
         medium using VFS transport listener and sender</a></li>
       <li><a href="#Sample255">Sample 255: Switching from ftp transport
         listener to mail transport sender</a></li>
+      <li><a href="#Sample256">Sample 256: Proxy services with the mail
+        transport</a></li>
     </ul>
   </li>
   <li><a href="#Task">Introduction to synapse tasks</a> 
@@ -2971,6 +2973,71 @@
 server and send it to the Axis2 service. The file in the ftp directory will
 be deleted. The response will be sent to the given email address.</p>
 
+<h2><a name="Sample256">Sample 256: Proxy services with the mail transport
+</a></h2>
+<pre>&lt;!-- Using the mail transport --&gt;
+&lt;definitions xmlns="http://ws.apache.org/ns/synapse"&gt;
+    &lt;proxy name="StockQuoteProxy" transports="mailto"&gt;
+
+        &lt;parameter name="transport.mail.Address"&gt;synapse.demo.1@gmail.com&lt;/parameter&gt;
+        &lt;parameter name="transport.mail.Protocol"&gt;pop3&lt;/parameter&gt;
+        &lt;parameter name="transport.PollInterval"&gt;5&lt;/parameter&gt;
+        &lt;parameter name="mail.pop3.host"&gt;pop.gmail.com&lt;/parameter&gt;
+        &lt;parameter name="mail.pop3.port"&gt;995&lt;/parameter&gt;
+        &lt;parameter name="mail.pop3.user"&gt;synapse.demo.1&lt;/parameter&gt;
+        &lt;parameter name="mail.pop3.password"&gt;mailpassword&lt;/parameter&gt;
+        &lt;parameter name="mail.pop3.socketFactory.class"&gt;javax.net.ssl.SSLSocketFactory&lt;/parameter&gt;
+        &lt;parameter name="mail.pop3.socketFactory.fallback"&gt;false&lt;/parameter&gt;
+        &lt;parameter name="mail.pop3.socketFactory.port"&gt;995&lt;/parameter&gt;
+
+        &lt;target&gt;
+            &lt;inSequence&gt;
+                &lt;property name="senderAddress" expression="get-property('transport', 'From')"/&gt;
+                &lt;log level="full"&gt;
+                    &lt;property name="Sender Address" expression="get-property('senderAddress')"/&gt;
+                &lt;/log&gt;
+                &lt;send&gt;
+                    &lt;endpoint&gt;
+                        &lt;address uri="http://localhost:9000/soap/SimpleStockQuoteService"/&gt;
+                    &lt;/endpoint&gt;
+                &lt;/send&gt;
+            &lt;/inSequence&gt;
+            &lt;outSequence&gt;
+                &lt;property name="Subject" value="Custom Subject for Response" scope="transport"/&gt;
+                &lt;header name="To" expression="fn:concat('mailto:', get-property('senderAddress'))"/&gt;
+                &lt;log level="full"&gt;
+                    &lt;property name="message" value="Response message"/&gt;
+                    &lt;property name="Sender Address" expression="get-property('senderAddress')"/&gt;
+                &lt;/log&gt;
+                &lt;send/&gt;
+            &lt;/outSequence&gt;
+        &lt;/target&gt;
+        &lt;publishWSDL uri="file:repository/conf/sample/resources/proxy/sample_proxy_1.wsdl"/&gt;
+    &lt;/proxy&gt;
+&lt;/definitions&gt; </pre>
+
+<p><strong>Objective: Using the mail transport with Proxy
+services</strong></p>
+
+<p><strong>Prerequisites:</strong><br>
+You will need access to an email account</p>
+
+<p>Start the Axis2 server and deploy the SimpleStockQuoteService if not
+already done</p>
+
+<p>Enable mail transport sender in the Synapse axis2.xml. See <a
+href="Synapse_Samples_Setup.html#mailsender">Setting up mail transport
+sender</a> </p>
+
+<p>Start the Synapse configuration numbered 256: i.e. synapse -sample 256</p>
+
+<p>Send a plain/text email with the following body and any custom Subject
+from your mail account.</p>
+<pre>&lt;m0:getQuote xmlns:m0="http://services.samples/xsd"&gt;&lt;m0:request&gt;&lt;m0:symbol&gt;IBM&lt;/m0:symbol&gt;&lt;/m0:request&gt;&lt;/m0:getQuote&gt; </pre>
+
+<p>After a few seconds (e.g. 30s), you should receive a POX response in your email
+account with the stock quote reply.</p>
+
 <h1><a name="Task">Introduction to synapse tasks</a></h1>
 
 <h2><a name="Sample300">Sample 300: Introduction to tasks with simple
@@ -3650,8 +3717,7 @@
 
 <p></p>
 
-<h2><a name="Throttle">Throtteling messages (Throttle Mediator)</a></h2>
-<!-- TODO: any text to go in here??? -->
+<h2><a name="Throttle">Throttling messages (Throttle Mediator)</a></h2>
 
 <h2><a name="Sample370">Sample 370: Introduction to throttle mediator and
 concurrency throttling</a></h2>
@@ -4123,7 +4189,6 @@
 
 <h2><a name="XQuery">Evaluating XQuery for mediation (XQuery
 Mediator)</a></h2>
-<!-- TODO: what goes in herer -->
 
 <h2><a name="Sample390">Sample 390: Introduction to the XQuery
 mediator</a></h2>
@@ -4247,7 +4312,6 @@
 
 <h2><a name="Splitter">Splitting messages in to parts and process in parallel
 (Iterate / Clone)</a></h2>
-<!-- TODO: splitter declaration -->
 
 <h2><a name="Sample400">Sample 400: Message splitting and aggregating the
 responses</a></h2>
@@ -4383,7 +4447,7 @@
 to a local entry. For the target, this key refers to a message context
 property only. </p>
 
-<h2><a name="Sample430" id="Sample430">Sample 430: Simple Callout Mediator
+<h2><a name="Sample430">Sample 430: Simple Callout Mediator
 for synchronizing web service invocation</a></h2>
 
 <p>&#xa0;</p>

Modified: webservices/synapse/branches/1.1.1/src/site/resources/Synapse_Samples_Setup.html
URL: http://svn.apache.org/viewvc/webservices/synapse/branches/1.1.1/src/site/resources/Synapse_Samples_Setup.html?rev=614414&r1=614413&r2=614414&view=diff
==============================================================================
--- webservices/synapse/branches/1.1.1/src/site/resources/Synapse_Samples_Setup.html (original)
+++ webservices/synapse/branches/1.1.1/src/site/resources/Synapse_Samples_Setup.html Tue Jan 22 19:33:36 2008
@@ -443,17 +443,18 @@
 
 <h2 id="mailsender">Setting up Mail Transport Sender</h2>
 
-<p>To enable the mail transport, you need to uncomment the mail transport
-sender configuration in the repository/conf/axis2.xml. Change the
-mail.smtp.host parameter value to a working SMTP host.</p>
-<pre>    &lt;!-- ================================================= --&gt;
-    &lt;!-- Mail Transport Sender  --&gt;
-    &lt;!--Only need to uncomment the sender. Configuration is achieved with every client.
-        At any instant mail host should be given. Sample configuration has been given.
-        http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html--&gt;
-    &lt;!-- ================================================= --&gt;
-    &lt;transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender"&gt;
-        &lt;parameter name="mail.smtp.host"&gt;localhost&lt;/parameter&gt;
+<p>To enable the mail transport for samples, you need to uncomment the mail transport
+sender configuration in the repository/conf/axis2.xml. Uncomment the
+MailTransportSender sample configuration and make sure it points to a valid
+SMTP configuration for any actual scenarios.</p>
+<pre>    &lt;transportSender name="mailto" class="org.apache.synapse.transport.mail.MailTransportSender"&gt;
+        &lt;parameter name="mail.smtp.host"&gt;smtp.gmail.com&lt;/parameter&gt;
+        &lt;parameter name="mail.smtp.port"&gt;587&lt;/parameter&gt;
+        &lt;parameter name="mail.smtp.starttls.enable"&gt;true&lt;/parameter&gt;
+        &lt;parameter name="mail.smtp.auth"&gt;true&lt;/parameter&gt;
+        &lt;parameter name="mail.smtp.user"&gt;synapse.demo.0&lt;/parameter&gt;
+        &lt;parameter name="mail.smtp.password"&gt;mailpassword&lt;/parameter&gt;
+        &lt;parameter name="mail.smtp.from"&gt;synapse.demo.0@gmail.com&lt;/parameter&gt;
     &lt;/transportSender&gt;</pre>
 
 <p></p>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org