<?xml version="1.0" encoding="UTF-8"?>
<!--
  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.    
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia at Apr 12, 2012 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>James Server - 
    Overview</title>
    <style type="text/css" media="all">
      @import url("./css/james.css");
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
      @import url("./js/jquery/css/custom-theme/jquery-ui-1.8.5.custom.css");
      @import url("./js/jquery/css/print.css");
      @import url("./js/fancybox/jquery.fancybox-1.3.4.css");
    </style>
    <script type="text/javascript" src="./js/jquery/js/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="./js/jquery/js/jquery-ui-1.8.5.custom.min.js"></script>
    <script type="text/javascript" src="./js/fancybox/jquery.fancybox-1.3.4.js"></script>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
      <meta name="author" content="James Project Team" />
    <meta name="Date-Revision-yyyymmdd" content="20120412" />
    <meta http-equiv="Content-Language" content="en" />
        <script type="text/javascript" src="./js/index.js"></script>
          <!-- Google Analytics -->
    <script type="text/javascript">
    
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-1384591-1']);
      _gaq.push(['_trackPageview']);

      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script').item(0); s.parentNode.insertBefore(ga, s);
      })();

    </script>
    </head>
  <body class="composite">
    <div id="banner">
                                      <a href="index.html" id="bannerLeft" title="james-server-logo.gif">
              
                                                                            
        <img src="images/logos/james-server-logo.gif" alt="James Server" />
                </a>
                              <a href="http://www.apache.org/" id="bannerRight">
              
                                        
        <img src="images/logos/asf-logo-reduced.gif" alt="The Apache Software Foundation" />
                </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
        
                <div class="xleft">
        <span id="publishDate">Last Published: 2012-04-12</span>
                  &nbsp;| <span id="projectVersion">Version: 1.6</span>
                      </div>
            <div class="xright">                    <a href="../index.html" title="Home">Home</a>
            |
                        <a href="index.html" title="Server">Server</a>
            |
                        <a href="../hupa/index.html" title="Hupa">Hupa</a>
            |
                        <a href="../protocols/index.html" title="Protocols">Protocols</a>
            |
                        <a href="../imap/index.html" title="IMAP">IMAP</a>
            |
                        <a href="../mailet/index.html" title="Mailets">Mailets</a>
            |
                        <a href="../mailbox/index.html" title="Mailbox">Mailbox</a>
            |
                        <a href="../mime4j/index.html" title="Mime4J">Mime4J</a>
            |
                        <a href="../jsieve/index.html" title="jSieve">jSieve</a>
            |
                        <a href="../jspf/index.html" title="jSPF">jSPF</a>
            |
                        <a href="../jdkim/index.html" title="jDKIM">jDKIM</a>
            |
                        <a href="../mpt/index.html" title="MPT">MPT</a>
            |
                        <a href="../postage/index.html" title="Postage">Postage</a>
              
        
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
        
                                <h5>James Server</h5>
                  <ul>
                  <li class="none">
            <strong>Overview</strong>
          </li>
                  <li class="none">
                          <a href="design_objectives.html" title="Objectives">Objectives</a>
            </li>
                  <li class="none">
                          <a href="FAQ.html" title="Server FAQ">Server FAQ</a>
            </li>
                  <li class="none">
                          <a href="rfclist.html" title="Useful RFCs">Useful RFCs</a>
            </li>
                  <li class="none">
                          <a href="http://issues.apache.org/jira/browse/JAMES" title="Issue Tracker">Issue Tracker</a>
            </li>
                  <li class="none">
                          <a href="http://svn.apache.org/viewvc/james/server/" title="Source">Source</a>
            </li>
          </ul>
                       <h5>Documentation</h5>
                  <ul>
                  <li class="none">
                          <a href="3/index.html" title="Server v3">Server v3</a>
            </li>
                  <li class="none">
                          <a href="2/index.html" title="Server v2">Server v2</a>
            </li>
                  <li class="none">
                          <a href="archive/document_archive.html" title="Archive">Archive</a>
            </li>
          </ul>
                       <h5>About James</h5>
                  <ul>
                  <li class="none">
                          <a href="../index.html" title="Overview">Overview</a>
            </li>
                  <li class="none">
                          <a href="../newsarchive.html" title="News">News</a>
            </li>
                  <li class="none">
                          <a href="../mail.html" title="Mailing Lists">Mailing Lists</a>
            </li>
                  <li class="none">
                          <a href="../contribute.html" title="Contributing">Contributing</a>
            </li>
                  <li class="none">
                          <a href="../guidelines.html" title="Guidelines">Guidelines</a>
            </li>
                  <li class="none">
                          <a href="http://wiki.apache.org/james" title="Wiki">Wiki</a>
            </li>
                  <li class="none">
                          <a href="../weare.html" title="Who We Are">Who We Are</a>
            </li>
                  <li class="none">
                          <a href="../license.html" title="License">License</a>
            </li>
          </ul>
                       <h5>Download</h5>
                  <ul>
                  <li class="none">
                          <a href="../download.cgi" title="Releases">Releases</a>
            </li>
                  <li class="none">
                          <a href="http://people.apache.org/builds/james/nightly/" title=""></a>
            </li>
          </ul>
        <h5>Apache Software Foundation</h5>
  <ul>
    <li>
      <strong>
        <a title="ASF" href="http://www.apache.org/">ASF</a>
      </strong>
    </li>
    <li>
      <a title="Get Involved" href="http://www.apache.org/foundation/getinvolved.html">Get Involved</a>
    </li>
    <li>
      <a title="FAQ" href="http://www.apache.org/foundation/faq.html">FAQ</a>
    </li>
    <li>
      <a title="License" href="http://www.apache.org/licenses/" >License</a>
    </li>
    <li>
      <a title="Sponsorship" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
    </li>
    <li>
      <a title="Thanks" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
    </li>
    <li>
      <a title="Security" href="http://www.apache.org/security/">Security</a>
    </li>
  </ul>
                       <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
                   
        
            </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <!-- 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. -->

  
  
  <table border="0" class="bodyTable"><tr class="a"><td>

    <div id="tabs" style="min-width:550px;">
    
      <ul>
        <li><a href="#tabs-1">Server</a></li>
        <li><a href="#tabs-2">Releases</a></li>
        <li><a href="#tabs-3">Features</a></li>
      </ul>

     <div id="tabs-1">
      
     <div class="section"><h3>What's Apache James Server?<a name="Whats_Apache_James_Server"></a></h3>
    
       <div class="ui-widget">
		 <div class="ui-state-highlight ui-corner-all" style="margin-top: 20px; padding: 0 .7em;"> 
			<p><span class="ui-icon ui-icon-info" style="float: left; margin-right: .3em;"></span>
			<b>Hey!</b> James Server 3.0-beta4 is out - <a href="3/">Read more</a>.</p>
	     </div>
       </div>
      
       <p>Apache James Server is a 100% pure JAVA capable Mail Server running on Java 1.5 onwards.
          James integrates emailing protocols such as:</p>

       <ul>
        <li><a class="externalLink" href="http://james.apache.org/server/rfclist/smtp/rfc0821.txt">
            <abbr title="Simple Mail Transport Protocol">SMTP</abbr></a>.</li>
        <li><a class="externalLink" href="http://james.apache.org/server/rfclist/lmtp/rfc2033.txt">
            <abbr title="Local Mail Transfer Protocol">LMTP</abbr></a> (only with Server V3).</li>
        <li><a class="externalLink" href="http://james.apache.org/server/rfclist/pop3/rfc1725.txt">
           <abbr title="Post Office Protocol">POP3</abbr></a></li>
        <li><a class="externalLink" href="http://james.apache.org/server/rfclist/imap4/rfc2060.txt">
            <abbr title="Internet Message Access Protocol">IMAP</abbr></a> (only with Server V3).</li>
        <li><a class="externalLink" href="http://james.apache.org/jsieve">Sieve</a> 
            filtering into mailboxes for incoming mail.</li>
        <li>FetchMail from POP3 and IMAP accounts.</li>
        <li><a class="externalLink" href="http://james.apache.org/server/rfclist/nntp/rfc0977.txt">
            <abbr title="Network News Transfer Protocol">NNTP</abbr></a> (better known as news) 
            (only with Server V2, support is discontinuated in Server V3).</li>
      </ul>

        <p>Download James Mail Server.</p>
        <p>
          <span class="minibutton btn-download">
            <a class="externalLink" href="javascript:window.location=&apos;http://james.apache.org/download.cgi#Apache_James_Server&apos;;">
              <span><span class="icon"></span>Early James Server 3.0-beta4</span>
            </a>
          </span>
        </p>
        <p>
          <span class="minibutton btn-download">
            <a class="externalLink" href="javascript:window.location=&apos;http://james.apache.org/download.cgi#Apache_James_2.3.2_is_the_stable_version&apos;;">
              <span><span class="icon"></span>Stable James Server 2.3.2</span>
            </a>
          </span>
        </p>
        
      <p>James Server provides a mailet container: the email processing is delegated to independent, extensible, pluggable agents
      specified by the <a class="externalLink" href="http://james.apache.org/mailet/api">Mailet API</a>. Any function
      which is not already available (from <a class="externalLink" href="http://james.apache.org/mailet">James</a>
      or from a third party) can be developed.</p>
      
      <p>James Server's architecture is modular, component based and offers a <a class="externalLink" href="http://martinfowler.com/articles/injection.html">Inversion of Control</a> 
         mail platform. All developments and implementations are based on open technical standards.</p>
      
      <p>You can have also have a look on our <a href="todo.html">to do</a> list and
         join the community via the <a class="externalLink" href="http://james.apache.org/mail.html">mailing list</a> 
         and <a class="externalLink" href="http://twitter.com/ApacheJames">@ApacheJames</a> on Twitter.</p>
      
     </div>
    
    </div>
    
    <div id="tabs-2">
      
      <div class="section"><h3>James 3.0 Beta 4<a name="James_3.0_Beta_4"></a></h3>

        <p>James 3.0 Beta 4 is a proposed beta release allowing a preview of the James 3.0 features.
           We strongly encourage to download and test it.</p>
        
        <p>
          <span class="minibutton btn-download">
            <a class="externalLink" href="javascript:window.location=&apos;http://james.apache.org/download.cgi#Apache_James_Server&apos;;">
              <span><span class="icon"></span>Early James Server 3.0-beta4</span>
            </a>
          </span>
        </p>

        <p>Feedback welcomed either through the <a class="externalLink" href="http://james.apache.org/mail.html">mailing lists</a>
           or <a class="externalLink" href="http://issues.apache.org/jira/browse/JAMES">JIRA</a>.</p>

      </div>

      <div class="section"><h3>James 3.0 Development<a name="James_3.0_Development"></a></h3>

        <p>The <a class="externalLink" href="http://james.apache.org/server/3">James 3</a> code base has many 
           <a class="externalLink" href="http://james.apache.org/server/3/release_notes.html">new features</a>
           and major revisions compared to the 2.3.x architecture have been implemented.
           <a class="externalLink" href="http://james.apache.org/server/3">James 3</a> (development) 
           supports Spring and is moving towards OSGI.</p>

        <p>
          <span class="minibutton btn-download">
            <a class="externalLink" href="javascript:window.location=&apos;http://people.apache.org/builds/james/nightly/&apos;;">
              <span><span class="icon"></span>Snapshot James Server 3.0 SNAPSHOT</span>
            </a>
          </span>
        </p>

        <p>It is recommended only for advanced users who are willing to accept that
           development is ongoing and that they may need to participate actively.
           Users are strongly recommended to subscribe to the server-dev 
           <a class="externalLink" href="http://james.apache.org/mail.html">mailing list</a>.</p>
        
      </div>

      <div class="section"><h3>James 2.3.2<a name="James_2.3.2"></a></h3>
      
        <p>James 2.3.2 is a mature, production ready code stream with minimal development
           and is still the official stable release.  James 3.0 will soon replace 2.3.2 
           as recommended release.</p>
        <p>
          <span class="minibutton btn-download">
            <a class="externalLink" href="javascript:window.location=&apos;http://james.apache.org/download.cgi#Apache_James_2.3.2_is_the_stable_version&apos;;">
              <span><span class="icon"></span>Stable James Server 2.3.2</span>
            </a>
          </span>
        </p>
           
        <p>James 2.3.2 uses the <a class="externalLink" href="http://avalon.apache.org">Avalon</a> framework. Avalon 
           development has now stopped but the framework is mature, stable and of proved production quality.
           See also the <a href="2/release-notes.html">release notes</a> for details on 
           2.3.2 bug fixes.</p>


<!-- 2.4.0 is no more in the pipe.

        <p>Proposal - James 2.4.0'</p>
          <ul>
          <li>Is a 
          <a href='http://issues.apache.org/jira/browse/JAMES/fixforversion/12313985'>Proposed</a> 
          minor revision upgrading to Java 1.5 and adding support for Java 1.6.
          </li><li>
          Some libraries developed for 
          <a href='http://james.apache.org/server/head'>James 3</a> may be added,
          allowing access to their features.
          </li><li>
          Feedback welcomed either through the <a href='http://james.apache.org/mail.html'>mailing lists</a>
          or <a href='http://issues.apache.org/jira/browse/JAMES'>JIRA</a>.
          </li>
          </ul> -->

        </div>
  
     </div>
  
     <div id="tabs-3">
     
       <p>
      
        </p><table border="0" class="bodyTable">
          <tr class="b">
            <th>Feature</th>
            <th>Status</th>
            <th>3.0</th>
            <th>2.3.x</th>
            <th>Since</th>
            <th>First released</th>
          </tr>
          <tr class="a">
            <td>SMTP</td>
            <td>Stable</td>
            <td>yes</td>
            <td>yes</td>
            <td>1.0</td>
            <td>0.95</td>
          </tr>
          <tr class="b">
            <td>POP3</td>
            <td>Stable</td>
            <td>yes</td>
            <td>yes</td>
            <td>1.1</td>
            <td>1.0</td>
          </tr>
          <tr class="a">
            <td>IMAP</td>
            <td>Experimental</td>
            <td>yes</td>
            <td>no</td>
            <td>3.0</td>
            <td>3.0</td>
          </tr>
            <tr class="b">
              <td>LMTP</td>
              <td>Experimental</td>
              <td>yes</td>
              <td>no</td>
              <td></td>
              <td></td>
            </tr>
          <tr class="a">
            <td>NNTP</td>
            <td>Experimental</td>
            <td>no</td>
            <td>yes</td>
            <td>1.2</td>
            <td>1.2</td>
          </tr>
          <tr class="b">
            <td>TLS POP3/SMTP</td>
            <td>Experimental</td>
            <td>yes</td>
            <td>yes</td>
            <td>1.2</td>
            <td>1.2</td>
          </tr>
            <tr class="a">
              <td>Mailing List</td>
              <td>Experimental</td>
              <td>no</td>
              <td>yes</td>
              <td></td>
              <td></td>
            </tr>
          <tr class="b">
            <td>FetchMail</td>
            <td>Stable</td>
            <td>yes</td>
            <td>yes</td>
            <td>2.2</td>
            <td>2.2</td>
          </tr>
          <tr class="a">
            <td>Mailet Container</td>
            <td>Stable</td>
            <td>yes</td>
            <td>yes</td>
            <td>2.3</td>
            <td>0.95</td>
          </tr>
          <tr class="b">
            <td>Remote Manager</td>
            <td>Stable</td>
            <td>yes</td>
            <td>yes</td>
            <td>1.0</td>
            <td>1.0</td>
          </tr>
            <tr class="a">
              <td>Management via JMX</td>
              <td>Experimental</td>
              <td>yes</td>
              <td>yes</td>
              <td></td>
              <td></td>
            </tr>
          <tr class="b">
            <td>TLS Remote Manager</td>
            <td>Stable</td>
            <td>yes</td>
            <td>yes</td>
            <td>1.2</td>
            <td>1.2</td>
          </tr>
            <tr class="a">
              <td>File Mail Store</td>
              <td>Stable</td>
              <td>yes</td>
              <td>yes</td>
              <td>1.2</td>
              <td>1.0</td>
            </tr>
            <tr class="b">
              <td>JDBC Database Mail Store</td>
              <td>Experimental</td>
              <td>yes</td>
              <td>yes</td>
              <td>1.2</td>
              <td>1.2</td>
            </tr>
            <tr class="a">
              <td>JPA Database Mail Store</td>
              <td>Experimental</td>
              <td>yes</td>
              <td>no</td>
              <td></td>
              <td></td>
            </tr>
            <tr class="b">
              <td>JCR (Jackrabbit) Database Mail Store</td>
              <td>Experimental</td>
              <td>yes</td>
              <td>no</td>
              <td></td>
              <td></td>
            </tr>
            <tr class="a">
              <td>Alternate Mail stores</td>
              <td>Experimental</td>
              <td>yes</td>
              <td>yes</td>
              <td></td>
              <td></td>
            </tr>
          <tr class="b">
            <td>JDBC Users</td>
            <td>Stable</td>
            <td>yes</td>
            <td>yes</td>
            <td>1.2.1</td>
            <td>1.2.1</td>
          </tr>
          <tr class="a">
            <td>JPA Users</td>
            <td>Stable</td>
            <td>yes</td>
            <td>no</td>
            <td>1.2.1</td>
            <td>1.2.1</td>
          </tr>
          <tr class="b">
            <td>JCR Users</td>
            <td>Stable</td>
            <td>yes</td>
            <td>no</td>
            <td>1.2.1</td>
            <td>1.2.1</td>
          </tr>
          <tr class="a">
            <td>LDAP Users</td>
            <td>Experimental</td>
            <td>yes</td>
            <td>yes</td>
            <td>1.2</td>
            <td>1.2</td>
          </tr>
            <tr class="b">
              <td>Alternate User Stores</td>
              <td>Experimental</td>
              <td>yes</td>
              <td>yes</td>
              <td></td>
              <td></td>
            </tr>
            <tr class="a">
              <td>Alternate Queue</td>
              <td>Experimental</td>
              <td>yes</td>
              <td>no</td>
              <td></td>
              <td></td>
            </tr>
            <tr class="b">
              <td>Integration with SpamAssassin</td>
              <td>Stable</td>
              <td>yes</td>
              <td>partial</td>
              <td></td>
              <td></td>
            </tr>
            <tr class="a">
              <td>Run-as-service scripts</td>
              <td>Stable</td>
              <td>yes</td>
              <td>no</td>
              <td></td>
              <td></td>
            </tr>
            <tr class="b">
              <td>Deployment in WEB container</td>
              <td>Experimental</td>
              <td>yes</td>
              <td>no</td>
              <td></td>
              <td></td>
            </tr>
            <tr class="a">
              <td>Deployment in OSGI container</td>
              <td>Planned</td>
              <td>planned</td>
              <td>no</td>
              <td></td>
              <td></td>
            </tr>
            <tr class="b">
              <td>Configuration Hot Reload</td>
              <td>Planned</td>
              <td>planned</td>
              <td>no</td>
              <td></td>
              <td></td>
            </tr>
            <tr class="a">
              <td>Monitoring via JMX</td>
              <td>Experimental</td>
              <td>yes</td>
              <td>yes</td>
              <td></td>
              <td></td>
            </tr>
            <tr class="b">
              <td>IP V6</td>
              <td>Experimental</td>
              <td>partial</td>
              <td>no</td>
              <td></td>
              <td></td>
            </tr>
            <tr class="a">
              <td>Java 1.6</td>
              <td><i>Requirement</i></td>
              <td>yes</td>
              <td>no</td>
              <td></td>
              <td></td>
            </tr>

         </table>
        
       

      </div>
      
    </div>

  </td></tr></table>

  
  

      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">Copyright &#169;                    2006-2012
                        <a href="http://www.apache.org">The Apache Software Foundation</a>.
            All Rights Reserved.      
        
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
