<!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 2.3 - Component Summary</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">
              <a href="index.html">Introduction</a>
        </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">
              <strong>Summary</strong>
        </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="The James Server"></a><div class="section"><h2>The James Server</h2>

<p>James is an open source project intended to produce a robust, flexible, and powerful 
enterprise class server that provides email and email-related services.  It is also designed to
be highly customizable, allowing administrators to configure James to process email in a 
nearly endless variety of fashions.</p>

<p>The James server is built on top of the Avalon Framework.  The standard James distribution 
deploys inside the Phoenix Avalon Framework container.  In addition to providing a robust 
server architecuture for James, the use of Phoenix allows James administrators to deploy 
their own applications inside the container.  These applications can then be accessed during 
mail processing.</p>

<p>The James server is implemented as a complete collection of servers and related components that, taken together,
provide an email solution.  These components are described below.</p>

</div>
<a name="POP3 Service"></a><div class="section"><h2>POP3 Service</h2>

<p>The POP3 protocol allows users to retrieve email messages.  It is the method
most commonly used by email clients to download and manage email messages.</p>

<p>The James version of the POP3 service is a simple and straightforward implementation that 
provides full compliance with the specification and maximum compatibility with common
POP3 clients.  In addition, James can be configured to require SSL/TLS connections for
POP3 client connecting to the server.</p>

<p>More information on configuring the POP3 service can be found <a href="pop3_configuration.html">here</a>.</p>

</div>
<a name="SMTP Service"></a><div class="section"><h2>SMTP Service</h2>

<p>SMTP (Simple Mail Transport Protocol) is the standard method of sending and delivering 
email on the internet.  James provides a full-function implementation of the SMTP specification,
with support for some optional features such as message size limits, SMTP auth, and encrypted 
client/server communication.</p>

<p>More information on configuring the SMTP service can be found <a href="smtp_configuration.html">here</a>.</p>

</div>
<a name="NNTP Service"></a><div class="section"><h2>NNTP Service</h2>

<p>NNTP is used by clients to store messages on and retrieve messages from news servers.  James provides 
the server side of this interaction by implementing the NNTP specification as well as an appropriate 
repository for storing news messages.  The server implementation is simple and straightforward, but 
supports some additional features such as NNTP authentication and encrypted client/server communication.</p>

<p>More information on configuring the NNTP service can be found <a href="nntp_configuration.html">here</a>.</p>

</div>
<a name="FetchMail"></a><div class="section"><h2>FetchMail</h2>

<p>FetchMail, unlike the other James components, is not an implementation of an RFC.  Instead, it's a 
component that allows the administrator to configure James to retrieve email from a number of POP3 
servers and deliver them to the local spool.  This is useful for consolidating mail delivered to a
number of accounts on different machines to a single account.</p>

<p>More information on configuring FetchMail can be found <a href="fetchmail_configuration.html">here</a>.</p>
</div>
<a name="The SpoolManager, Matchers, and Mailets"></a><div class="section"><h2>The SpoolManager, Matchers, and Mailets</h2>

<p>James separates the services that deliver mail to James (i.e. SMTP, FetchMail) 
from the engine that processes mail after it is received by James.  The 
SpoolManager component is James' mail processing engine.  James' SpoolManager component 
is a Mailet container.  It is these mailets and matchers that actually carry out mail processing.</p>

<p>More on the structure of the SpoolManager and the Mailet API can be found <a href="spoolmanager.html">here</a>.</p>

</div>
<a name="Repositories"></a><div class="section"><h2>Repositories</h2>

<p>James uses a number of different repositories to both store message data (email, news messages) and 
user information.  User repositories store user information, including user names, authentication 
information, and aliases.  Mail repositories store messages that have been delivered locally.  Spool 
repositories store messages that are still being processed.  Finally, news repositories are used to
store news messages.  Aside from what type of data they store, repositories are distinguished by 
where they store data.  There are three types of storage - File, Database, and DBFile.</p>

</div>
<a name="RemoteManager"></a><div class="section"><h2>RemoteManager</h2>

<p>James provides a simple telnet-based interface for control.  Through this interface you can add 
and delete users, configure per-user aliases and forward addresses, and shut down the server.</p>

<p>More on the configuring the RemoteManager can be found <a href="remotemanager_configuration.html">here</a>.</p>

</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>
