blob: c6387019988341ecfeaa363f5fb347977baed8bd [file] [log] [blame]
<!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: 09/02/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>
</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>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</h5>
<ul>
<li class="none">
<a href="changelog.html">Changelog</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>