<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 at 2022-07-14 
 | Rendered using Apache Maven Fluido Skin 1.6
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20220714" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Axis2 &#x2013; Mail transport</title>
    <link rel="stylesheet" href="../css/apache-maven-fluido-1.6.min.css" />
    <link rel="stylesheet" href="../css/site.css" />
    <link rel="stylesheet" href="../css/print.css" media="print" />
      <script type="text/javascript" src="../js/apache-maven-fluido-1.6.min.js"></script>
      </head>
    <body class="topBarDisabled">
      <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><a href="http://www.apache.org/" id="bannerLeft"><img src="http://www.apache.org/images/asf_logo_wide.png"  alt="Apache Axis2"/></a></div>
        <div class="pull-right"><a href=".././" id="bannerRight"><img src="../images/axis.jpg" /></a></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        <li id="publishDate">Last Published: 2022-07-14<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.8.2<span class="divider">|</span></li>
        <li class=""><a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
      <li class=""><a href="../index.html" title="Axis2/Java">Axis2/Java</a><span class="divider">/</span></li>
    <li class="active ">Mail transport</li>
        </ul>
      </div>
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
<ul class="nav nav-list">
          <li class="nav-header">Axis2/Java</li>
    <li><a href="../index.html" title="Home"><span class="none"></span>Home</a>  </li>
    <li><a href="../download.html" title="Downloads"><span class="none"></span>Downloads</a>  </li>
    <li><a href="javascript:void(0)" title="Release Notes"><span class="icon-chevron-down"></span>Release Notes</a>
      <ul class="nav nav-list">
    <li><a href="../release-notes/1.6.1.html" title="1.6.1"><span class="none"></span>1.6.1</a>  </li>
    <li><a href="../release-notes/1.6.2.html" title="1.6.2"><span class="none"></span>1.6.2</a>  </li>
    <li><a href="../release-notes/1.6.3.html" title="1.6.3"><span class="none"></span>1.6.3</a>  </li>
    <li><a href="../release-notes/1.6.4.html" title="1.6.4"><span class="none"></span>1.6.4</a>  </li>
    <li><a href="../release-notes/1.7.0.html" title="1.7.0"><span class="none"></span>1.7.0</a>  </li>
    <li><a href="../release-notes/1.7.1.html" title="1.7.1"><span class="none"></span>1.7.1</a>  </li>
    <li><a href="../release-notes/1.7.2.html" title="1.7.2"><span class="none"></span>1.7.2</a>  </li>
    <li><a href="../release-notes/1.7.3.html" title="1.7.3"><span class="none"></span>1.7.3</a>  </li>
    <li><a href="../release-notes/1.7.4.html" title="1.7.4"><span class="none"></span>1.7.4</a>  </li>
    <li><a href="../release-notes/1.7.5.html" title="1.7.5"><span class="none"></span>1.7.5</a>  </li>
    <li><a href="../release-notes/1.7.6.html" title="1.7.6"><span class="none"></span>1.7.6</a>  </li>
    <li><a href="../release-notes/1.7.7.html" title="1.7.7"><span class="none"></span>1.7.7</a>  </li>
    <li><a href="../release-notes/1.7.8.html" title="1.7.8"><span class="none"></span>1.7.8</a>  </li>
    <li><a href="../release-notes/1.7.9.html" title="1.7.9"><span class="none"></span>1.7.9</a>  </li>
    <li><a href="../release-notes/1.8.0.html" title="1.8.0"><span class="none"></span>1.8.0</a>  </li>
      </ul>
  </li>
    <li><a href="../modules/index.html" title="Modules"><span class="none"></span>Modules</a>  </li>
    <li><a href="../tools/index.html" title="Tools"><span class="none"></span>Tools</a>  </li>
          <li class="nav-header">Documentation</li>
    <li><a href="../docs/toc.html" title="Table of Contents"><span class="none"></span>Table of Contents</a>  </li>
    <li><a href="../docs/installationguide.html" title="Installation Guide"><span class="none"></span>Installation Guide</a>  </li>
    <li><a href="../docs/quickstartguide.html" title="QuickStart Guide"><span class="none"></span>QuickStart Guide</a>  </li>
    <li><a href="../docs/userguide.html" title="User Guide"><span class="none"></span>User Guide</a>  </li>
    <li><a href="../docs/jaxws-guide.html" title="JAXWS Guide"><span class="none"></span>JAXWS Guide</a>  </li>
    <li><a href="../docs/pojoguide.html" title="POJO Guide"><span class="none"></span>POJO Guide</a>  </li>
    <li><a href="../docs/spring.html" title="Spring Guide"><span class="none"></span>Spring Guide</a>  </li>
    <li><a href="../docs/webadminguide.html" title="Web Administrator's Guide"><span class="none"></span>Web Administrator's Guide</a>  </li>
    <li><a href="../docs/migration.html" title="Migration Guide (from Axis1)"><span class="none"></span>Migration Guide (from Axis1)</a>  </li>
          <li class="nav-header">Resources</li>
    <li><a href="../faq.html" title="FAQ"><span class="none"></span>FAQ</a>  </li>
    <li><a href="../articles.html" title="Articles"><span class="none"></span>Articles</a>  </li>
    <li><a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="Wiki"><span class="none"></span>Wiki</a>  </li>
    <li><a href="../refLib.html" title="Reference Library"><span class="none"></span>Reference Library</a>  </li>
    <li><a href="../apidocs/index.html" title="Online Java Docs"><span class="none"></span>Online Java Docs</a>  </li>
          <li class="nav-header">Get Involved</li>
    <li><a href="../overview.html" title="Overview"><span class="none"></span>Overview</a>  </li>
    <li><a href="../git.html" title="Checkout the Source"><span class="none"></span>Checkout the Source</a>  </li>
    <li><a href="../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a>  </li>
    <li><a href="../release-process.html" title="Release Process"><span class="none"></span>Release Process</a>  </li>
    <li><a href="../guidelines.html" title="Developer Guidelines"><span class="none"></span>Developer Guidelines</a>  </li>
    <li><a href="../siteHowTo.html" title="Build the Site"><span class="none"></span>Build the Site</a>  </li>
          <li class="nav-header">Project Information</li>
    <li><a href="../team-list.html" title="Project Team"><span class="none"></span>Project Team</a>  </li>
    <li><a href="../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a>  </li>
    <li><a href="http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/" class="externalLink" title="Source Code"><span class="none"></span>Source Code</a>  </li>
    <li><a href="../thanks.html" title="Acknowledgements"><span class="none"></span>Acknowledgements</a>  </li>
          <li class="nav-header">Apache</li>
    <li><a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License"><span class="none"></span>License</a>  </li>
    <li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a>  </li>
    <li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a>  </li>
    <li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a>  </li>
  </ul>
          <hr />
          <div id="poweredBy">
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
  <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
              </div>
          </div>
        </div>
        <div id="bodyColumn"  class="span10" >

    
        <section>
<h2><a name="Introduction"></a>Introduction</h2>
            
<p>The mail transport allows to send and receive messages using MIME compliant mail messages. The transport sender
            transmits outgoing messages using SMTP, while the transport listener connects to one or more mail accounts
            and periodically polls these accounts for new incoming messages. The implementation is based on
            <a class="externalLink" href="http://java.sun.com/products/javamail/">JavaMail</a> and therefore supports any mail store protocol
            for which a JavaMail provider is available.</p>
        </section>
        <section>
<h2><a name="Transport_listener"></a>Transport listener</h2>
          <section>
<h3><a name="Configuration"></a>Configuration</h3>
            
<div>
<pre>    &lt;transportReceiver name=&quot;mailto&quot; class=&quot;org.apache.axis2.transport.mail.MailTransportListener&quot;/&gt;</pre></div>
          </section>
          <section>
<h3><a name="Endpoint_configuration"></a>Endpoint configuration</h3>
            
<p>Endpoints can be configured both at the transport level and at the service level. In order to receive messages using
            the mail transport, the listener or the service must be configured with a set of parameters
            to access the corresponding mailbox account. If messages from the mail account should be
            directly dispatched to a given service, than the parameters must be specified on that service.
            If on the other hand messages from that account can't be pre-dispatched to a specific service
            (e.g. because the account is used to receive responses to outgoing messages), then the parameters
            must be added to the <code>transportReceiver</code> element in <code>axis2.xml</code>.</p>
            
<p>All parameters starting with <code>mail.</code> are
            interpreted as JavaMail environment properties. The most relevant are <code>mail.<i>&lt;protocol&gt;</i>.host</code>
            and <code>mail.<i>&lt;protocol&gt;</i>.user</code>, where <code><i>&lt;protocol&gt;</i></code> is typically <code>pop3</code>
            or <code>imap</code>. Assuming that Sun's JavaMail implementation is used, the complete list of supported properties for these
            two protocols can be found <a class="externalLink" href="http://java.sun.com/products/javamail/javadocs/com/sun/mail/pop3/package-summary.html">here</a>
            and <a class="externalLink" href="http://java.sun.com/products/javamail/javadocs/com/sun/mail/imap/package-summary.html">here</a>.</p>
            
<p>In additional to the JavaMail environment properties, the following transport specific service parameters are
            used:</p>
            
<table border="0" class="table table-striped">
                
<tr class="a">
                    
<th>Parameter</th>
                    
<th>Required</th>
                    
<th>Description</th>
                </tr>
                
<tr class="b">
                    
<td align="left">transport.PollInterval</td>
                    
<td>No</td>
                    
<td>The poll interval in seconds.</td>
                </tr>
                
<tr class="a">
                    
<td align="left">transport.mail.Address</td>
                    
<td>Yes</td>
                    
<td>The address used to calculate the endpoint reference for the service. It is assumed that mails
                    sent to this address will be delivered to the mailbox account configured for the service.
                    Note that the transport has no means to validate this value and an incorrect address will not
                    be detected.</td>
                </tr>
                
<tr class="b">
                    
<td align="left">mail.<i>&lt;protocol&gt;</i>.password</td>
                    
<td>Yes</td>
                    
<td>The password for the mailbox account.</td>
                </tr>
                
<tr class="a">
                    
<td align="left">transport.mail.Protocol</td>
                    
<td>Yes</td>
                    
<td>The mail store protocol to be used. The value must be protocol identifier recognized by JavaMail.
                    Usual values are <code>pop3</code> and <code>imap</code>. Note that the SSL variants of these two protocols
                    are not considered as distinct protocols. Rather, SSL is configured using the appropriate JavaMail
                    environment properties.</td>
                </tr>
                
<tr class="b">
                    
<td align="left">transport.mail.ContentType</td>
                    
<td>No</td>
                    
<td>This parameter allows to override the content type of incoming messages. This parameter
                    is useful if the service can only receive messages of a single content type and the client
                    is known to send incorrect content type information. If this parameter is set, the
                    <code>Content-Type</code> MIME header in incoming messages is ignored.</td>
                </tr>
                
<tr class="a">
                    
<td align="left">transport.mail.ReplyAddress</td>
                    
<td>No</td>
                    
<td>The reply-to address to be used when no From or Reply-To header is present in the
                    request message.</td>
                </tr>
                
<tr class="b">
                    
<td align="left">transport.mail.Folder</td>
                    
<td>No</td>
                    
<td>The folder to read messages from. Defaults to <code>INBOX</code>.</td>
                </tr>
                
<tr class="a">
                    
<td align="left">transport.mail.PreserveHeaders, transport.mail.RemoveHeaders</td>
                    
<td>No</td>
                    
<td>These two properties control which MIME headers of the received message will be stored
                    in the <code>TRANSPORT_HEADERS</code> property of the message context. Both parameters expect a
                    comma separated list of header names as value. <code>transport.mail.PreserveHeaders</code> specifies
                    a whitelist of headers to retain, while <code>transport.mail.RemoveHeaders</code> specifies a
                    blacklist of headers to remove. Note that the two parameters should not be used simultaneously.</td>
                </tr>
                
<tr class="b">
                    
<td align="left">transport.mail.ActionAfterProcess</td>
                    
<td>No</td>
                    
<td>Determines what the transport should do with the message after successful processing.
                    Possible values are <code>MOVE</code> and <code>DELETE</code>. The default value is <code>DELETE</code>.</td>
                </tr>
                
<tr class="a">
                    
<td align="left">transport.mail.ActionAfterFailure</td>
                    
<td>No</td>
                    
<td>Determines what the transport should do with the message if processing fails.
                    Possible values are <code>MOVE</code> and <code>DELETE</code>. The default value is <code>DELETE</code>.
                    [FIXME: we should reconsider this; it is dangerous!]</td>
                </tr>
                
<tr class="b">
                    
<td align="left">transport.mail.MoveAfterProcess</td>
                    
<td>Conditional</td>
                    
<td>Specifies the destination folder if <code>transport.mail.ActionAfterProcess</code>
                    is <code>MOVE</code>.</td>
                </tr>
                
<tr class="a">
                    
<td align="left">transport.mail.MoveAfterFailure</td>
                    
<td>Conditional</td>
                    
<td>Specifies the destination folder if <code>transport.mail.ActionAfterFailure</code>
                    is <code>MOVE</code>.</td>
                </tr>
                
<tr class="b">
                    
<td align="left">transport.mail.MaxRetryCount</td>
                    
<td>No</td>
                    
<td>The number of connection attempts. When the maximum number of retries is
                    exceeded, a new poll is scheduled after the normal poll interval.
                    The default value is 0, i.e. connection failures are simply ignored.</td>
                </tr>
                
<tr class="a">
                    
<td align="left">transport.mail.ReconnectTimeout</td>
                    
<td>No</td>
                    
<td>The interval between two connection attempts if the first failed.
                    The default value is 0, i.e. a new connection is attempted immediately.
                    [FIXME: either it is not implemented as intended or the name of the property is misleading; it is not a timeout, but an interval]</td>
                </tr>
            </table>
          </section>
          <section>
<h3><a name="Content_extraction"></a>Content extraction</h3>
            
<p>Content is extracted from incoming mails using the following rules:</p>
            
<ol style="list-style-type: decimal">
                
<li>If the content type of the message is not <code>multipart/mixed</code>, the message is extracted
                    from the body of the message.</li>
                
<li>If the content type of the message is <code>multipart/mixed</code>, the listener will attempt to
                    find a MIME part with a content type different from <code>text/plain</code> and for which a
                    message builder is registered. If a matching part is found, the message will be extracted
                    from that part. Otherwise, the listener will extract the message from
                    the last <code>text/plain</code> part if a message builder is registered for that content type.
                    Finally, if no message builder is registered for any of the content types appearing in the multipart
                    message, an error is triggered.</li>
            </ol>
            
<p>Note that these rules only apply if the content type has not been overridden using the
            <code>transport.mail.ContentType</code> property. If this property is set, the message will always be
            extracted from the body of the message and support for <code>multipart/mixed</code> is disabled.</p>
            
<p>In all cases the transport listener will use the corresponding message builder registered in the
            Axis configuration to build the SOAP infoset from the message.</p>
            
<p>The special rules for <code>multipart/mixed</code> are designed to enable the following use cases:</p>
            
<ul>
                
<li>Allow humans to send messages to a Web service using a standard mail client. The user
                    can do so by adding the message as attachment to the mail. Note that this only works
                    if the mail client correctly sets the <code>Content-Type</code> header on the attachment.
                    This works best for SOAP 1.1 messages: when attaching a file with suffix <code>.xml</code>,
                    most mail clients will set the content type to <code>text/xml</code>, exactly as required
                    for SOAP 1.1.</li>
                
<li>Allow clients to send a human readable message together with the actual message.
                    This is useful if the message may be read by a human before being processed.</li>
            </ul>
            
<p>Note that these rules don't interfere with the support for SOAP with Attachments, because
            SwA uses <code>multipart/related</code>.</p>
          </section>
        </section>
        <section>
<h2><a name="Transport_sender"></a>Transport sender</h2>
            <section>
<h3><a name="Configuration"></a>Configuration</h3>
    
<div>
<pre>    &lt;transportSender name=&quot;mailto&quot; class=&quot;org.apache.synapse.transport.mail.MailTransportSender&quot;&gt;
        &lt;parameter name=&quot;mail.smtp.host&quot;&gt;smtp.gmail.com&lt;/parameter&gt;
        &lt;parameter name=&quot;mail.smtp.port&quot;&gt;587&lt;/parameter&gt;
        &lt;parameter name=&quot;mail.smtp.starttls.enable&quot;&gt;true&lt;/parameter&gt;
        &lt;parameter name=&quot;mail.smtp.auth&quot;&gt;true&lt;/parameter&gt;
        &lt;parameter name=&quot;mail.smtp.user&quot;&gt;synapse.demo.0&lt;/parameter&gt;
        &lt;parameter name=&quot;mail.smtp.password&quot;&gt;mailpassword&lt;/parameter&gt;
        &lt;parameter name=&quot;mail.smtp.from&quot;&gt;synapse.demo.0@gmail.com&lt;/parameter&gt;
    &lt;/transportSender&gt;</pre></div>
            </section>
        </section>
    

        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2004&#x2013;2022
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
        </div>
        </div>
    </footer>
    </body>
</html>