<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">










<html>
  <head>
    <title>James Server - 
  James 3 - Table of Contents</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
      </head>
  <body class="composite">
    <div id="banner">
                  <a href="http://james.apache.org/index.html" id="bannerLeft">
    
                                            <img src="images/james-server-logo.gif" alt="" />
    
            </a>
                        <a href="http://www.apache.org/index.html" id="bannerRight">
    
                                            <img src="images/asf-logo-reduced.gif" alt="" />
    
            </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
          
  

  
    
  
  
            <div class="xleft">
        Last Published: 05/28/2009
                      </div>
            <div class="xright">      <a href="../../index.html">JAMES Project</a>
          |
          <a href="../../server/index.html">Server</a>
          |
          <a href="../../mailet/index.html">Mailets</a>
          |
          <a href="../../jspf/index.html">jSPF</a>
          |
          <a href="../../mime4j/index.html">Mime4J</a>
          |
          <a href="../../jsieve/index.html">JSieve</a>
          |
          <a href="../../postage/index.html">Postage</a>
          
  

  
    
  
  
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
           
  

  
    
  
  
                   <h5>James Server</h5>
        <ul>
              
    <li class="none">
              <a href="../index.html">Overview</a>
        </li>
              
    <li class="none">
              <a href="../design_objectives.html">Objectives</a>
        </li>
              
          
              
      
              
        <li class="expanded">
              <a href="../FAQ.html">James FAQ</a>
                <ul>
                  
    <li class="none">
              <a href="../james_and_sendmail.html">James and Sendmail</a>
        </li>
              </ul>
        </li>
              
    <li class="none">
              <a href="http://wiki.apache.org/james">Wiki</a>
        </li>
              
    <li class="none">
              <a href="../rfclist.html">Useful RFCs</a>
        </li>
          </ul>
          <h5>Overview</h5>
        <ul>
              
    <li class="none">
              <strong>Introduction</strong>
        </li>
              
    <li class="none">
              <a href="release-notes.html">Release Notes</a>
        </li>
              
    <li class="none">
              <a href="jira-report.html">Changes</a>
        </li>
          </ul>
          <h5>Concepts</h5>
        <ul>
              
    <li class="none">
              <a href="summary.html">Summary</a>
        </li>
              
    <li class="none">
              <a href="spoolmanager.html">SpoolManager</a>
        </li>
              
    <li class="none">
              <a href="repositories.html">Repositories</a>
        </li>
              
    <li class="none">
              <a href="mailet_api.html">The Mailet API</a>
        </li>
          </ul>
          <h5>How to...</h5>
        <ul>
              
    <li class="none">
              <a href="build_instructions.html">Build James</a>
        </li>
              
    <li class="none">
              <a href="installation_instructions.html">Install James</a>
        </li>
          </ul>
          <h5>Mailets</h5>
        <ul>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/index.html">Overview</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/api/index.html">API</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/base/index.html">Basic Toolkit</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/crypto/index.html">Crypto</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/standard/index.html">Sieve</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/maven-mailetdocs-plugin/index.html">MailetDocs</a>
        </li>
              
    <li class="none">
              <a href="james-server-mailets-function/mailet-report.html">Server</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/standard/index.html">Standard</a>
        </li>
          </ul>
          <h5>Configuration</h5>
        <ul>
              
    <li class="none">
              <a href="dns_configuration.html">DNS Server</a>
        </li>
              
    <li class="none">
              <a href="pop3_configuration.html">POP3 Server</a>
        </li>
              
    <li class="none">
              <a href="smtp_configuration.html">SMTP Server</a>
        </li>
              
    <li class="none">
              <a href="nntp_configuration.html">NNTP Server</a>
        </li>
              
    <li class="none">
              <a href="fetchmail_configuration.html">FetchMail</a>
        </li>
              
    <li class="none">
              <a href="remotemanager_configuration.html">RemoteManager</a>
        </li>
              
    <li class="none">
              <a href="spoolmanager_configuration.html">SpoolManager</a>
        </li>
              
    <li class="none">
              <a href="serverwide_configuration.html">Server-wide</a>
        </li>
              
    <li class="none">
              <a href="adding_users.html">Adding Users</a>
        </li>
              
    <li class="none">
              <a href="provided_matchers.html">Provided Matchers</a>
        </li>
              
    <li class="none">
              <a href="provided_mailets.html">Provided Mailets</a>
        </li>
          </ul>
          <h5>Common Configurations</h5>
        <ul>
              
    <li class="none">
              <a href="smtp_auth.html">Using SMTP AUTH</a>
        </li>
              
    <li class="none">
              <a href="using_database.html">Using a Database with James</a>
        </li>
              
    <li class="none">
              <a href="usingTLS.html">Using TLS/SSL</a>
        </li>
              
    <li class="none">
              <a href="mailing_lists.html">Creating Mailing Lists</a>
        </li>
          </ul>
          <h5>Customization</h5>
        <ul>
              
    <li class="none">
              <a href="custom_matcher.html">How to write a custom Matcher</a>
        </li>
              
    <li class="none">
              <a href="custom_mailet.html">How to write a custom Mailet</a>
        </li>
          </ul>
          <h5>Project Documentation</h5>
        <ul>
              
                
              
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
              
        <li class="collapsed">
              <a href="project-info.html">Project Information</a>
              </li>
              
                
              
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
              
        <li class="collapsed">
              <a href="project-reports.html">Project Reports</a>
              </li>
          </ul>
          <h5>Project</h5>
        <ul>
              
    <li class="none">
              <a href="http://issues.apache.org/jira/browse/JAMES">Bug Database</a>
        </li>
              
    <li class="none">
              <a href="http://svn.apache.org/viewvc/james/server/">Source Code</a>
        </li>
              
    <li class="none">
              <a href="../todo.html">TODO</a>
        </li>
          </ul>
          <h5>Downloads</h5>
        <ul>
              
    <li class="none">
              <a href="../../download.cgi">Stable releases</a>
        </li>
              
    <li class="none">
              <a href="../../downloadunstable.cgi">Unstable releases</a>
        </li>
              
    <li class="none">
              <a href="http://people.apache.org/builds/james/nightly/">Nightly builds</a>
        </li>
          </ul>
                                       <a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
            <img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
          </a>
                       
  

  
    
  
  
        </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        

 


<a name="James 3 (Development)"></a><div class="section"><h2>James 3 (Development)</h2>
<subection name="Note">
<p>
James 3 represents the leading edge of development. This codestream has many more
features than the 2.x code, but is not as well tested in production. The internal APIs
are under current development and are expected to be subject to change. Reasonable
configuration compability has been retained with 2.3.
</p>
<p>
James 3 requires Java 1.5 but Java 1.6 is recommended.
</p>
</subection>
<p>
The Java Apache Mail Enterprise Server (a.k.a. Apache James) is a 100% pure Java SMTP and POP3 Mail 
server and NNTP News server designed to be a complete and portable enterprise mail engine 
solution.  James is based on currently available open protocols.
</p>
<p>
The James server also serves as a mail application platform.  The James project hosts the Apache Mailet API, 
and the James server is a Mailet container.  This feature makes it easy to design, write, and deploy 
custom applications for mail processing.  This modularity and ease of customization is one of James' 
strengths, and can allow administrators to produce powerful applications surprisingly easily.
</p>
<p>
James is built on top of trunk version of the <a href="http://avalon.apache.org/">Avalon Application Framework</a>.  This 
framework encourages a set of good development practices such as Component Oriented Programming and 
Inversion of Control.  The standard distribution of James includes  
<a href="http://avalon.apache.org/phoenix">Phoenix Avalon Framework container</a>.  This stable 
and robust container provides a strong foundation for the James server.
</p>
<p>
This documentation is intended to be an introduction to the concepts behind the James implementation, as well 
as a guide to installing, configuring, (and for developers) building the James server.
</p>
<a name="Table of Contents"></a><div class="section"><h3>Table of Contents</h3>
<p>
I. James Concepts
<ul>
<li><a href="summary.html">Summary</a></li>
<li><a href="spoolmanager.html">SpoolManager</a></li>
<li><a href="repositories.html">Repositories</a></li>
<li><a href="mailet_api.html">The Mailet API</a></li>
</ul>
II. How To Build James
<ul>
<li><a href="build_instructions.html">Building James</a></li>
</ul>
III. How To Install James
<ul>
<li><a href="installation_instructions.html">Installing James</a></li>
</ul>
IV. Configuring James
<ul>
<li><a href="dns_configuration.html">DNS Server Configuration</a></li>
<li><a href="pop3_configuration.html">POP3 Server Configuration</a></li>
<li><a href="smtp_configuration.html">SMTP Server Configuration</a></li>
<li><a href="nntp_configuration.html">NNTP Server Configuration</a></li>
<li><a href="fetchmail_configuration.html">fetchMail Configuration</a></li>
<li><a href="remotemanager_configuration.html">RemoteManager Configuration</a></li>
<li><a href="repositories.html">Repository Configuration</a></li>
<li><a href="spoolmanager_configuration.html">SpoolManager Configuration</a></li>
<li><a href="serverwide_configuration.html">Server-wide Configuration</a></li>
<li><a href="adding_users.html">Adding Users</a></li>
<li><a href="provided_matchers.html">Provided Matchers</a></li>
<li><a href="provided_mailets.html">Provided Mailets</a></li>
</ul>
V. Common Configurations
<ul>
<li><a href="smtp_auth.html">Using SMTP AUTH</a></li>
<li><a href="using_database.html">Using a Database with James</a></li>
<li><a href="usingTLS.html">Using TLS/SSL</a></li>
<li><a href="mailing_lists.html">Creating Mailing Lists</a></li>
</ul>
VI. Customizing James
<ul>
<li><a href="custom_matcher.html">How to write a custom Matcher</a></li>
<li><a href="custom_mailet.html">How to write a custom Mailet</a></li>
</ul>
V. Other Information
<ul>
<li><a href="upgrade_instructions.html">Upgrade James</a></li>
</ul>

</div>
</div>


      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">&#169;  
          2002-2009
    
          The Apache Software Foundation
          
  

  
    
  
  
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
    </script>
    <script type="text/javascript">
      _uacct = "UA-1384591-1";
      urchinTracker();
    </script>
  </body>
</html>
