You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ba...@apache.org on 2007/03/22 20:57:23 UTC

svn commit: r521427 [4/9] - in /james/server/trunk: ./ build-tools/ core-library/ core-library/src/ core-library/src/main/ core-library/src/main/config/ core-library/src/main/java/ core-library/src/main/java/org/ core-library/src/main/java/org/apache/ ...

Added: james/server/trunk/phoenix-deployment/www/fetchmail_configuration.html
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/fetchmail_configuration.html?view=auto&rev=521427
==============================================================================
--- james/server/trunk/phoenix-deployment/www/fetchmail_configuration.html (added)
+++ james/server/trunk/phoenix-deployment/www/fetchmail_configuration.html Thu Mar 22 12:57:00 2007
@@ -0,0 +1,1478 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>Apache James - Mail and News server - James 2.3 - fetchmail Configuration</title>
+<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
+</head>
+<body>
+<table cellspacing="0" width="100%" border="0" class="page-header">
+<!--PAGE HEADER-->
+<tr>
+<td colspan="2">
+<!--ASF LOGO-->
+<a href="http://www.apache.org/">
+<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
+</a>
+<!--PROJECT LOGO-->
+<a href="http://james.apache.org/">
+<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
+</a>
+</td>
+</tr>
+</table>
+<table cellspacing="4" width="100%" border="0">
+<tr>
+<!--LEFT SIDE NAVIGATION-->
+<td nowrap="true" valign="top" class="left-navbar">
+<table cellpadding="0" cellspacing="0" width="100%" border="0">
+<tr>
+<td>
+<a href="http://apachecon.com">
+<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
+</a>
+</td>
+</tr>
+</table>
+<navbar name="lhs">
+
+    <p>
+<strong>Concepts</strong>
+</p>
+<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>
+    
+    <p>
+<strong>How to...</strong>
+</p>
+<ul>
+<li>
+<a href="./build_instructions.html">Build James</a>
+</li>
+<li>
+<a href="./installation_instructions.html">Install James</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Configuration</strong>
+</p>
+<ul>
+<li>
+<a href="./dns_configuration.html">DNS Server</a>
+</li>
+<li>
+<a href="./pop3_configuration.html">POP3 Server</a>
+</li>
+<li>
+<a href="./smtp_configuration.html">SMTP Server</a>
+</li>
+<li>
+<a href="./nntp_configuration.html">NNTP Server</a>
+</li>
+<li>
+<a href="./fetchmail_configuration.html">FetchMail</a>
+</li>
+<li>
+<a href="./remotemanager_configuration.html">RemoteManager</a>
+</li>
+<li>
+<a href="./spoolmanager_configuration.html">SpoolManager</a>
+</li>
+<li>
+<a href="./serverwide_configuration.html">Server-wide</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>
+    
+    <p>
+<strong>Common Configurations</strong>
+</p>
+<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="./james_and_sendmail.html">James and Sendmail</a>
+</li>
+<li>
+<a href="./mailing_lists.html">Creating Mailing Lists</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Customization</strong>
+</p>
+<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>
+    
+    <p>
+<strong>Project</strong>
+</p>
+<ul>
+<li>
+<a href="./changelog.html">Changelog</a>
+</li>
+</ul>
+
+   </navbar>
+</td>
+<!--MAIN BODY-->
+<td align="left" valign="top" class="main-body">
+<div class="section">
+<div class="section-header">
+<a name="fetchmail">
+<strong>fetchmail</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>fetchmail acts as a gateway between an external message store such as an IMAP
+or POP3 server and James. Mail is fetched from the external message store and
+injected into the James input spool.</p>
+
+<p>fetchmail  is useful when delivery via standard SMTP is not an option, as a
+means of consolidating mail delivered to several external accounts into a single
+James account, or to apply the mail processing capabilities of James to mail 
+stored in an external message store.</p>
+
+<p>fetchmail has several configuration options that control the fetching and 
+filtering of mail injected into the James input spool. Once there, James' 
+flexible mail processing engine can be used to further process the mail, just as
+if it had been delivered via standard SMTP.</p>
+
+<p>
+<a href="#How fetchmail Works">How fetchmail Works</a>
+<br/>
+<a href="#fetchmail Configuration Parameters">fetchmail Configuration Parameters</a>
+<br/>
+<a href="#fetchmail Examples">fetchmail Examples</a>
+<br/>
+<a href="#fetchmail Caveats">fetchmail Caveats</a>
+</p>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="How fetchmail Works">
+<strong>How fetchmail Works</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Mail is delivered by periodically running fetch tasks that read messages from
+an external message store and injects them into the James input spool. Fetch 
+tasks run concurrently.</p>
+
+<p>A set of filters applies to each fetch task. Each filter provides the ability
+to reject a message that matches the filter criteria. Rejected messages are not
+injected into the James input spool; they are either marked as seen or deleted.
+When a filter is configured to accept a message that matches its criteria, 
+messages are marked with a MailAttribute. This MailAttribute can be detected 
+within the James matcher/mailet chain, allowing further processing as 
+required.</p>
+
+<p>Each fetch task is associated with a single host server. Accounts are defined
+to the fetch task for each mailbox on the server from which mail is to be
+fetched. Accounts run consecutively.</p>
+
+<p>Optionally, the fetch task can be configured with an &lt;alllocal&gt; Account that
+generates an Account entry for each user defined in the James user repository.
+This removes the requirement to manually add or remove Account entries to the 
+fetchmail configuration each time a James user is added or removed. Currently 
+this is only useful if the server supports virtual mailboxes that allow the same
+password to apply to all users within a domain.</p>
+
+<p>Accounts can be configured to deliver all mail for an Account to a specified
+recipient or to deduce the intended recipient from the mail headers.</p>
+
+<p>Accounts are normally configured to deliver all mail for an Account to a 
+specified recipient, ignoring the recipient in the mail headers. This works well
+in the majority of cases where a mailbox is guaranteed to contain mail for a sole
+mailbox recipient.</p>
+
+<p>Accounts are configured to deduce the intended recipient from the mail headers
+when a mailbox contains mail for several users, typically all users in a domain.
+Used alone, this is not foolproof as there are circumstances when a single unique
+recipient cannot be deduced from the mail headers alone. Used in conjunction with
+an appropriately configured &lt;alllocal&gt; account, it is always possible to deduce 
+the intended recipient when the recipient is a James user.</p>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="fetchmail Configuration Parameters">
+<strong>fetchmail Configuration Parameters</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>The fetchmail configuration parameters are part of the James configuration, 
+whose base file is <code>config.xml</code>. For clarity and flexibility, the 
+fetchmail configuration parameters are stored in the file 
+<code>james-fetchmail.xml</code>, which is referenced within 
+<code>config.xml</code>.</p>
+
+<p>The configuration parameters are described below.</p>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="fetchmail">
+<strong>fetchmail</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The configuration block delimited by the <strong>fetchmail</strong> tag 
+controls fetchmail.</p>
+
+<p>The tag has these attributes:
+<dl>
+<dt>
+<strong>enabled</strong>
+</dt>
+<dd>A boolean. If "true", the fetch tasks will be run periodically. If "false", 
+no fetch tasks will be run. The default is "false".</dd>
+</dl>
+</p>
+
+<p>The tag has these child tags (minimum cardinality, maximum cardinality):
+<ul>
+<li>
+<strong>
+<a href="#fetch">fetch</a>
+</strong> (0, *)</li>
+</ul>
+</p>
+
+<p>
+<div class="source">
+&lt;fetchmail enabled="true"&gt;
+...
+&lt;/fetchmail&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="fetch">
+<strong>fetch</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>fetch</strong> tag defines a fetch task to be run 
+periodically. Fetch tasks run concurrently.</p>
+
+<p>The tag has these attributes:
+<dl>
+<dt>
+<strong>name</strong>
+</dt>
+<dd>A string uniquely identifying the fetch task.</dd>
+</dl>
+</p>
+
+<p>The tag has these child tags (minimum cardinality, maximum cardinality):
+<ul>
+<li>
+<strong>
+<a href="#accounts">accounts</a>
+</strong> (1, 1)</li>
+<li>
+<strong>
+<a href="#blacklist">blacklist</a>
+</strong> (1, 1)</li>
+<li>
+<strong>
+<a href="#defaultdomain">defaultdomain</a>
+</strong> (0, 1)</li>
+<li>
+<strong>
+<a href="#fetchall">fetchall</a>
+</strong> (1, 1)</li>
+<li>
+<strong>
+<a href="#fetched">fetched</a>
+</strong> (1, 1)</li>
+<li>
+<strong>
+<a href="#host">host</a>
+</strong> (1, 1)</li>
+<li>
+<strong>
+<a href="#interval">interval</a>
+</strong> (1, 1)</li>
+<li>
+<strong>
+<a href="#javaMailFolderName">javaMailFolderName</a>
+</strong> (1, 1)</li>
+<li>
+<strong>
+<a href="#javaMailProperties">javaMailProperties</a>
+</strong> (0, 1)</li>
+<li>
+<strong>
+<a href="#javaMailProviderName">javaMailProviderName</a>
+</strong> (1, 1)</li>
+<li>
+<strong>
+<a href="#maxmessagesize">maxmessagesize</a>
+</strong> (0, 1)</li>
+<li>
+<strong>
+<a href="#recipientnotfound">recipientnotfound</a>
+</strong> (1, 1)</li>
+<li>
+<strong>
+<a href="#recursesubfolders">recursesubfolders</a>
+</strong> (1, 1)</li>
+<li>
+<strong>
+<a href="#remoteReceivedHeader">remoteReceivedHeader</a>
+</strong> (0, 1)</li>
+<li>
+<strong>
+<a href="#remoterecipient">remoterecipient</a>
+</strong> (1, 1)</li>
+<li>
+<strong>
+<a href="#undeliverable">undeliverable</a>
+</strong> (1, 1)</li>
+<li>
+<strong>
+<a href="#userundefined">userundefined</a>
+</strong> (1, 1)</li>
+</ul>
+</p>
+
+<p>
+<div class="source">
+&lt;fetch name="mydomain.com"&gt;
+...
+&lt;/fetch&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="accounts">
+<strong>accounts</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>accounts</strong> tag declares the accounts from which mail will 
+be fetched by the fetch task. Accounts run concurrently.</p>
+
+<p>The tag has these child tags (minimum cardinality, maximum cardinality):
+<ul>
+<li>
+<strong>
+<a href="#account">account</a>
+</strong> (0, *)</li>
+<li>
+<strong>
+<a href="#alllocal">alllocal</a>
+</strong> (0, 1)</li>
+</ul>
+</p>
+
+<p>
+<div class="source">
+&lt;accounts&gt;
+...
+&lt;/accounts&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="blacklist">
+<strong>blacklist</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>blacklist</strong> tag declares a list of recipient addresses 
+for whom mail will be rejected and what happens to the rejected mail.</p>
+
+<p>The tag value is a tab, comma or space delimited list of recipient 
+addresses, eg: <code>wibble@mydomain.com, flobble@mydomain.com</code>.</p>
+
+<p>The tag has these attributes:
+<dl>
+<dt>
+<strong>reject</strong>
+</dt>
+<dd>A boolean. If "true", mail for recipients in the blacklist will
+not be injected into the James input spool. If "false", mail for
+recipients in the blacklist will be injected into the James input spool with the
+Mail Attribute <code>org.apache.james.fetchmail.isBlacklistedRecipient</code>
+added to the mail.</dd>
+<dt>
+<strong>leaveonserver</strong>
+</dt>
+<dd>A boolean. If "true", mail for recipients in the blacklist will be
+left on the server. If "false", mail for recipients in the blacklist 
+will be marked for deletion.</dd>
+<dt>
+<strong>markseen</strong>
+</dt>
+<dd>A boolean. If "true", mail for recipients in the blacklist will be
+marked as seen on the server. If "false", mail for recipients in the blacklist 
+will not be marked as seen.</dd>
+</dl>
+</p>
+
+<p>
+<div class="source">
+&lt;blacklist 
+    reject="true" 
+    leaveonserver="true"
+    markseen="true"&gt;
+wibble@mydomain.com, flobble@mydomain.com
+&lt;/blacklist&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="defaultdomain">
+<strong>defaultdomain</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>defaultdomain</strong> tag declares the domain name to be 
+appended to the <code>From:</code> header of a mail that has a valid user part
+but is missing the domain part.</p>
+
+<p>If not specified, the default behaviour is to append the canonical host name
+of the James server.</p>
+
+<p>The tag value is the name of the server to append. The name must be a server
+declared in the <strong>servernames</strong> tag of the <strong>James</strong>
+block in the configuration or the name <code>localhost</code>.</p>
+
+<p>
+<div class="source">
+&lt;defaultdomain&gt;
+    mydomain.com
+&lt;/defaultdomain&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="fetchall">
+<strong>fetchall</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>fetchall</strong> tag declares if all mail should be fetched from
+the server, or just unseen mail.</p>
+
+<p>The tag value is a boolean. If true, all mail is fetched. If false, only 
+unseen mail is fetched.</p>
+
+<p>
+<div class="source">
+&lt;fetchall&gt;false&lt;/fetchall&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="fetched">
+<strong>fetched</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>fetched</strong> tag declares what will happen to mail on the
+external server that is successfully injected into the James input spool.</p>
+
+<p>The tag has these attributes:
+<dl>
+<dt>
+<strong>leaveonserver</strong>
+</dt>
+<dd>A boolean. If "true", mail injected into the James input spool 
+will be left on the server. If "false", mail injected into the James
+input spool will be marked for deletion.</dd>
+<dt>
+<strong>markseen</strong>
+</dt>
+<dd>A boolean. If "true", mail injected into the James input spool 
+will be marked as seen on the server. If "false", mail injected into
+the James input spool will not be marked as seen.</dd>
+</dl>
+</p>
+
+<p>
+<div class="source">
+&lt;fetched leaveonserver="true" markseen="true"/&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="host">
+<strong>host</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>host</strong> tag declares the IP address of the external
+server from which mail is fetched.</p>
+
+<p>The tag value is the DNS name or IP address literal of the external
+server.</p>
+
+<p>
+<div class="source">
+&lt;host&gt;pop3.server.com&lt;/host&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="interval">
+<strong>interval</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>interval</strong> tag declares the period between invocations of
+the fetch tasks. If a fetch task is still active from a previous invocation
+when the period expires, the new invocation is skipped over.</p>
+
+<p>The tag value is an integer representing the number of milliseconds to elapse
+between invocations of the fetch tasks.</p>
+
+<p>
+<div class="source">
+&lt;interval&gt;60000&lt;/interval&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="javaMailFolderName">
+<strong>javaMailFolderName</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>javaMailFolderName</strong> tag declares the name of the root 
+folder on the external server from which mail is fetched.</p>
+
+<p>The tag value is the cAsE-sEnSiTiVe name of the root folder on the external
+server from which mail is fetched. For POP3 servers this is always 
+<code>INBOX</code>.</p>
+
+<p>
+<div class="source">
+&lt;javaMailFolderName&gt;INBOX&lt;/javaMailFolderName&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="javaMailProperties">
+<strong>javaMailProperties</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>javaMailProperties</strong> tag declares the properties to be
+applied to the JavaMail Session used by the fetch task. These override the
+properties answered by <code>System.getProperties()</code>. Many JavaMail
+properties are specific to the JavaMail Provider selected by the 
+<a href="#javaMailProviderName">javaMailProviderName</a> tag.</p>
+
+<p>
+<strong>Relying on the default values selected by the Provider can be
+inappropriate.</strong> For instance, the default connection and I/O timeout 
+values of infinite for the default IMAP and POP3 Providers is rarely what is
+required. Consult the documentation of the Provider for details and options.</p>
+
+<p>Documentation for the default Provider for IMAP is located
+<a href="http://java.sun.com/products/javamail/javadocs/com/sun/mail/imap/package-summary.html">
+here</a>.</p>
+
+<p>Documentation for the default Provider for POP3 is located
+<a href="http://java.sun.com/products/javamail/javadocs/com/sun/mail/pop3/package-summary.html">
+here</a>.</p>
+
+<p>Details of how to change a Provider are located
+<a href="http://java.sun.com/products/javamail/javadocs/javax/mail/Session.html">
+here</a>.</p>
+
+<p>The tag has these child tags (minimum cardinality, maximum cardinality):
+<ul>
+<li>
+<strong>
+<a href="#property">property</a>
+</strong> (0, *)</li>
+</ul>
+</p>
+
+<p>
+<div class="source">
+&lt;javaMailProperties&gt;
+...
+&lt;/javaMailProperties&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="javaMailProviderName">
+<strong>javaMailProviderName</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>javaMailProviderName</strong> tag selects the JavaMail protocol
+Provider used to interact with the external server.</p>
+
+<p>The tag value is the name of a JavaMail supported protocol, such as 
+<code>pop3</code> or <code>imap</code>. The name is used to select the default
+Provider for the protocol.</p>
+
+<p>
+<div class="source">
+&lt;javaMailProviderName&gt;pop3&lt;/javaMailProviderName&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="maxmessagesize">
+<strong>maxmessagesize</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>maxmessagesize</strong> tag declares the maximum permitted message
+size for messages injected into the James input spool and what happens to fetched
+messages that exceed this size.</p>
+<p>The tag has these attributes:
+<dl>
+<dt>
+<strong>limit</strong>
+</dt>
+<dd>An integer. The maximum message size expressed in Kilobytes. If 0, there is
+no limit.</dd>
+<dt>
+<strong>reject</strong>
+</dt>
+<dd>A boolean. If "true", mail whose message size exceeds the maximum
+permitted size will not be injected into the James input spool. If 
+"false", mail whose message size exceeds the maximum permitted size will
+have its contents removed, an explanatory error message and the Mail Attribute
+<code>org.apache.james.fetchmail.isMaxMessageSizeExceeded</code> added prior to 
+injection into the James input spool, (see below for the location of an example).</dd>
+<dt>
+<strong>leaveonserver</strong>
+</dt>
+<dd>A boolean. If "true", mail whose message size exceeds the maximum
+permitted size will be left on the server. If "false", mail whose message
+size exceeds the maximum permitted size will be marked for deletion.</dd>
+<dt>
+<strong>markseen</strong>
+</dt>
+<dd>A boolean. If "true", mail whose message size exceeds the maximum
+permitted size will be marked as seen on the server. If "false",
+mail whose message size exceeds the maximum permitted size will not be marked as
+seen.</dd>
+</dl>
+</p>
+
+<p>
+<div class="source">
+&lt;maxmessagesize 
+    limit="4096"
+    reject="false"
+    leaveonserver="false"
+    markseen="false"/&gt;
+</div>
+</p>
+
+<p>An example configuration using James mailet processing to bounce fetched
+messages that exceed the maximum permitted size can be found in the file
+<code>$PHOENIX_HOME/apps/james/conf/samples/fetchmail/maxMessageSize.xml</code>.
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="recipientnotfound">
+<strong>recipientnotfound</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>recipientnotfound</strong> tag declares what happens to mail for
+which a sole intended recipient cannot be found when attempting to determine
+the recipient from the mail headers.</p>
+
+<p>In configurations with more than one account per fetch task, processing of
+matched mail can be deferred to the next run of the fetch task. This gives 
+other accounts that may be able to determine a sole intended recipient an
+opportunity to do so before recipientnotfound processing is invoked.</p>
+
+<p>The tag has these attributes:
+<dl>
+<dt>
+<strong>defer</strong>
+</dt>
+<dd>A boolean. If "true", mail for which a sole intended recipient 
+cannot be determined is left unprocessed until the next run of the fetch task.
+If "false", mail for which a sole intended recipient cannot be
+determined is processed immediately.</dd>
+<dt>
+<strong>reject</strong>
+</dt>
+<dd>A boolean. If "true", mail for which a sole intended recipient 
+cannot be determined will not be injected into the James input spool. If 
+"false", mail for which a sole intended recipient cannot be 
+determined will be injected into the James input spool using the recipient
+attribute of the current account and with the Mail Attribute 
+<code>org.apache.james.fetchmail.isRecipientNotFound</code> added to the
+mail.</dd>
+<dt>
+<strong>leaveonserver</strong>
+</dt>
+<dd>A boolean. If "true", mail for which a sole intended recipient 
+cannot be determined will be left on the server. If "false", mail for
+which a sole intended recipient cannot be determined will be marked for 
+deletion.</dd>
+<dt>
+<strong>markseen</strong>
+</dt>
+<dd>A boolean. If "true", mail for which a sole intended recipient 
+cannot be determined will be marked as seen on the server. If "false",
+mail for which a sole intended recipient cannot be determined will not be marked
+as seen.</dd>
+</dl>
+</p>
+
+<p>
+<div class="source">
+&lt;recipientnotfound 
+    defer="true"
+    reject="true"
+    leaveonserver="true"
+    markseen="true"/&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="recursesubfolders">
+<strong>recursesubfolders</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>recursesubfolders</strong> tag declares if mail should be fetched 
+from sub-folders of the root folder, or just the root folder.</p>
+
+<p>The tag value is a boolean. If true, mail is fetched from the root folder and
+its subfolders. If false, mail is fetched from just the root folder.</p>
+
+<p>
+<div class="source">
+&lt;recursesubfolders&gt;false&lt;/recursesubfolders&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="remoteReceivedHeader">
+<strong>remoteReceivedHeader</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>remoteReceivedHeader</strong> tag declares the zero based
+index of the RFC2822 compliant RECEIVED header used to determine the address and
+host name of the remote MTA that sent a fetched message and what happens to 
+messages when the specified header is invalid.</p>
+
+<p>Typically, the first (index = 0) RECEIVED header is for the local MTA that 
+delivered the message to the message store and the second (index = 1) RECEIVED
+header is for the remote MTA that delivered the message to the local MTA. When
+this configuration applies, the <strong>remoteReceivedHeaderIndex</strong> should
+be set to <strong>1</strong>.
+</p>
+
+<p>To verify the correct setting, examine the RECEIVED headers for messages
+delivered to the configured message store and locate the first one containing a
+remote domain in the'from' field. Remembering that zero based indexing is used,
+if this the second header, use an index of 1, if this is the third header, use an
+index of 2, and so forth.</p>
+
+<p>Matchers such as InSpammerBlacklist use the remote address and/or remote host
+name to identify illegitimate remote MTAs. If you do not use such matchers, the
+<strong>remoteReceivedHeaderIndex</strong> tag may be omitted or the default
+index value of -1 can be specified. This causes the remote address to be set to
+<code>127.0.0.1</code> and the remote host name to be set to
+<code>localhost</code>. Matchers almost always considered these values to be
+legitimate.</p>
+
+<p>The tag has these attributes:
+<dl>
+<dt>
+<strong>index</strong>
+</dt>
+<dd>An integer whose meaning is described above.
+</dd>
+<dt>
+<strong>reject</strong>
+</dt>
+<dd>A boolean. If "true", mail whose specified recieved header is invalid
+will not be injected into the James input spool. If "false", mail whose 
+specified recieved header is invalid will be injected into the James input spool with 
+the Mail Attribute <code>org.apache.james.fetchmail.isInvalidReceivedHeader</code>
+added to the mail, the remote address set to <code>127.0.0.1</code> and the remote 
+host name set to <code>localhost</code>.
+</dd>
+<dt>
+<strong>leaveonserver</strong>
+</dt>
+<dd>A boolean. If "true", mail whose specified recieved header is invalid
+will be left on the server. If "false", mail whose specified recieved header
+is invalid will be marked for deletion.</dd>
+<dt>
+<strong>markseen</strong>
+</dt>
+<dd>A boolean. If "true", mail whose specified recieved header is invalid
+will be marked as seen on the server. If "false", mail whose specified
+recieved header is invalid will not be marked as seen.</dd>
+</dl>
+</p>
+
+<p>
+<div class="source">
+&lt;remoteReceivedHeader
+    index="1" 
+    reject="true"
+    leaveonserver="true"
+    markseen="true"/&gt;
+</div>
+</p>
+
+<p>An example configuration using James mailet processing to notify the postmaster
+of fetched messages that contain an invalid Received header can be found in the file
+<code>$PHOENIX_HOME/apps/james/conf/samples/fetchmail/remoteReceivedHeader.xml</code>.
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="remoterecipient">
+<strong>remoterecipient</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>remoterecipient</strong> tag declares what happens to mail for
+which the domain part of the recipient is remote. A domain is remote if it is 
+not a server declared in the <strong>servernames</strong> tag of the
+<strong>James</strong> block in the configuration.</p>
+
+<p>The tag has these attributes:
+<dl>
+<dt>
+<strong>reject</strong>
+</dt>
+<dd>A boolean. If "true", mail for remote recipients will not be 
+injected into the James input spool. If "false", mail for remote
+recipients will be injected into the James input spool with the Mail Attribute 
+<code>org.apache.james.fetchmail.isRemoteRecipient</code> added to the mail.
+</dd>
+<dt>
+<strong>leaveonserver</strong>
+</dt>
+<dd>A boolean. If "true", mail for remote recipients will be left on
+the server. If "false", mail for remote recipients will be marked for 
+deletion.</dd>
+<dt>
+<strong>markseen</strong>
+</dt>
+<dd>A boolean. If "true", mail for remote recipients will be marked as
+seen on the server. If "false", mail for remote recipients will not be
+marked as seen.</dd>
+</dl>
+</p>
+
+<p>
+<div class="source">
+&lt;remoterecipient 
+    reject="true"
+    leaveonserver="true"
+    markseen="true"/&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="undeliverable">
+<strong>undeliverable</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>undeliverable</strong> tag declares what happens to mail that
+cannot be delivered.</p>
+
+<p>The tag has these attributes:
+<dl>
+<dt>
+<strong>leaveonserver</strong>
+</dt>
+<dd>A boolean. If "true", mail that cannot be delivered will be left
+on the server. If "false", mail that cannot be delivered will be
+marked for deletion.</dd>
+<dt>
+<strong>markseen</strong>
+</dt>
+<dd>A boolean. If "true", mail for that cannot be delivered will be
+marked as seen on the server. If "false", mail that cannot be
+delivered will not be marked as seen.</dd>
+</dl>
+</p>
+
+<p>
+<div class="source">
+&lt;undeliverable
+    leaveonserver="true"
+    markseen="true"/&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="userundefined">
+<strong>userundefined</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>userundefined</strong> tag declares what happens to mail for
+which the recipient is not defined as a James user.</p>
+
+<p>The tag has these attributes:
+<dl>
+<dt>
+<strong>reject</strong>
+</dt>
+<dd>A boolean. If "true", mail for recipients who are not defined as
+James users will not be injected into the James input spool. If 
+"false", mail for recipients who are not defined as James users will
+be injected into the James input spool with the Mail Attribute 
+<code>org.apache.james.fetchmail.isUserUndefined</code> added to the mail.
+</dd>
+<dt>
+<strong>leaveonserver</strong>
+</dt>
+<dd>A boolean. If "true", mail for recipients who are not defined as
+James users will be left on the server. If "false", mail for 
+recipients who are not defined as James users will be marked for deletion.</dd>
+<dt>
+<strong>markseen</strong>
+</dt>
+<dd>A boolean. If "true", mail for recipients who are not defined as
+James users will be marked as seen on the server. If "false", mail
+for recipients who are not defined as James users will not be marked as seen.
+</dd>
+</dl>
+</p>
+
+<p>
+<div class="source">
+&lt;userundefined
+    reject="true"
+    leaveonserver="true"
+    markseen="true"/&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="account">
+<strong>account</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>account</strong> tag declares an account on the external server
+from which mail should be fetched.</p>
+
+<p>The tag has these attributes:
+<dl>
+<dt>
+<strong>user</strong>
+</dt>
+<dd>The string to be passed as the user when connecting to the external server.
+</dd>
+<dt>
+<strong>password</strong>
+</dt>
+<dd>The string to be passed as the password when connecting to the external 
+server.</dd>
+<dt>
+<strong>recipient</strong>
+</dt>
+<dd>The recipient to whom messages will be delivered when the intended recipient
+cannot be determined or when the intended recipient is to be ignored.</dd>
+<dt>
+<strong>ignorercpt-header</strong>
+</dt>
+<dd>A boolean. If "true", mail is always delivered to the recipient
+declared in the <strong>recipient</strong> attribute above. If 
+"false", the intended recipient is determined from the mail headers or
+the process declared by the <strong>recipientnotfound</strong> tag.
+</dd>
+</dl>
+</p>
+
+<p>
+<div class="source">
+&lt;account
+    user="myaccount"
+    password="mypassword"
+    recipient="user@localhost"
+    ignorercpt-header="true"/&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="alllocal">
+<strong>alllocal</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>alllocal</strong> tag declares the parameters to be applied to
+dynamic accounts. The set of dynamic accounts is refreshed each time the fetch
+task runs by combining the <strong>alllocal</strong> tag attributes with each of
+the currently defined James users to create an account for every James user.</p>
+
+<p>The tag has these attributes:
+<dl>
+<dt>
+<strong>userprefix</strong>
+</dt>
+<dd>The string to be added before the James user when constructing the string
+passed as the user when connecting to the external server.
+</dd>
+<dt>
+<strong>usersuffix</strong>
+</dt>
+<dd>The string to be added after the James user when constructing the string
+passed as the user when connecting to the external server.
+</dd>
+<dt>
+<strong>password</strong>
+</dt>
+<dd>The string to be passed as the password when connecting to the external 
+server.</dd>
+<dt>
+<strong>recipientprefix</strong>
+</dt>
+<dd>The string to be added before the James user when constructing the recipient
+to whom messages will be delivered when the intended recipient cannot be 
+determined or when the intended recipient is to be ignored.</dd>
+<dt>
+<strong>recipientsuffix</strong>
+</dt>
+<dd>The string to be added after the James user when constructing the recipient
+to whom messages will be delivered when the intended recipient cannot be 
+determined or when the intended recipient is to be ignored.</dd>
+<dt>
+<strong>ignorercpt-header</strong>
+</dt>
+<dd>A boolean. If "true", mail is always delivered to the recipient
+constructed from the <strong>recipientprefix</strong> and 
+<strong>recipientsuffix</strong> attributes above and the James user. If 
+"false", the intended recipient is determined from the mail headers or
+the process declared by the <strong>recipientnotfound</strong> tag.
+</dd>
+</dl>
+</p>
+
+<p>
+<div class="source">
+&lt;alllocal
+    userprefix=""
+    usersuffix="@external.domain.com"
+    password="mypassword"
+    recipientprefix=""
+    recipientsuffix="@mydomain.com"
+    ignorercpt-header="true"/&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="property">
+<strong>property</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The <strong>property</strong> tag declares a name/value pair.</p>
+
+<p>The tag has these attributes:
+<dl>
+<dt>
+<strong>name</strong>
+</dt>
+<dd>The name of the property.
+</dd>
+<dt>
+<strong>value</strong>
+</dt>
+<dd>The value of the property.</dd>
+</dl>
+</p>
+
+<p>
+<div class="source">
+&lt;property
+    name="mail.pop3.connectiontimeout"
+    value="180000"/&gt;
+</div>
+</p>
+</div>
+</div>
+
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="fetchmail Examples">
+<strong>fetchmail Examples</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Full sources to the examples discussed below can be found in the directory
+<code>$PHOENIX_HOME/apps/james/conf/samples/fetchmail</code>.</p>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="One Account, One User">
+<strong>One Account, One User</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>When all mail for an account is to be delivered to a single user, 
+configure each account to ignore the recipient in the mail headers and deliver
+to the specified recipient. The <strong>accounts</strong> block looks like 
+this:</p>
+
+<p>
+<div class="source">
+&lt;accounts&gt;
+    &lt;account
+        user="user1@external.domain.com"
+        password="password1"
+        recipient="user1@localhost"
+        ignorercpt-header="true"/&gt;
+
+    &lt;account
+        user="user2@external.domain.com"
+        password="password2"
+        recipient="user2@localhost"
+        ignorercpt-header="true"/&gt;
+
+    &lt;account
+        user="user3@external.domain.com"
+        password="password3"
+        recipient="user3@localhost"
+        ignorercpt-header="true"/&gt;
+&lt;/accounts&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="One Account, Many Users">
+<strong>One Account, Many Users</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>When an account contains mail to be delivered to many users, configure each
+account to determine the recipient from the mail headers and deliver to that 
+user. The <strong>accounts</strong> block looks like this:</p>
+
+<p>
+<div class="source">
+&lt;accounts&gt;
+    &lt;account
+        user="global@external.domain.com"
+        password="password"
+        recipient="fetchmail@localhost"
+        ignorercpt-header="false"/&gt;
+&lt;/accounts&gt;
+</div>
+</p>
+
+<p>The <strong>recipientnotfound</strong> tag is used to declare what happens 
+when the recipient cannot be determined from the mail headers. In the example 
+below, mail is injected into the spool using the recipient declared in the
+<strong>account</strong> tag:</p>
+
+<p>
+<div class="source">
+&lt;recipientnotfound
+    defer="false"
+    reject="false"
+    leaveonserver="false"
+    markseen="false"/&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="One Account, One User - Dynamic">
+<strong>One Account, One User - Dynamic</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>When an external server supports virtual mailboxes, fetchmail's dynamic 
+account facility can be used. This greatly simplifies user configuration as 
+the fetchmail accounts for users are automatically synchronized with those
+defined in the James user repository. This guarantees that mail for all local 
+users will be fetched and delivered.</p>
+
+<p>Currently, there is a limitation that all virtual accounts and the global
+account must share the same password.</p>
+
+<p>The <strong>alllocal</strong> tag declares the parameters for the dynamic 
+accounts. The <strong>accounts</strong> block below will deliver mail for 
+<code>user1@external.domain.com</code> to <code>user1@localhost</code>, 
+<code>user2@external.domain.com</code> to <code>user2@localhost</code>,
+<code>userZ@external.domain.com</code> to <code>userZ@localhost</code> etc.:</p>
+
+<p>
+<div class="source">
+&lt;accounts&gt;
+    &lt;alllocal
+        userprefix=""
+        usersuffix="@external.domain.com"
+        password="mypassword"
+        recipientprefix=""
+        recipientsuffix="@localhost"
+        ignorercpt-header="true"/&gt;
+&lt;/accounts&gt;
+</div>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="One Account, Many Users - Dynamic">
+<strong>One Account, Many Users - Dynamic</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The 
+<a href="#One Account, One User - Dynamic">One Account, One User - Dynamic</a>
+example guarantees delivery of mail for all local users, but leaves other mail
+on the external server unprocessed. The 
+<a href="#One Account, Many Users">One Account, Many Users</a> example
+processes all mail on the external server, but cannot guarantee delivery to the
+intended recipient. By combining the two, it is possible to guarantee the 
+delivery of mail for all local users and process all mail.</p>
+
+<p>In the snippet below, the <strong>alllocal</strong> tag declares dynamic
+accounts for all local users and the <strong>account</strong> tag configures an
+account to fetch all mail.</p>
+
+<p>The <strong>recipientnotfound</strong> tag rejects mail for which a recipient
+cannot be determined. By the time this processing is activated, the dynamic 
+accounts will have processed mail for all local users, so the mail can 
+only be mail for non-local users or newly arrived mail for local users. It is 
+not possible to know which, but we want to leave mail for local users to be
+dealt with by the dynamic accounts. The next time the dynamic accounts run any
+newly arrived mail for local users will be processed. The remainder will be for
+non-local users and can now be safely dealt with.</p>
+
+<p>The <code>&lt;recipientnotfound defer="true"</code> attribute 
+enables deferal of the processing of messages for which the recipient cannot be
+determined to the next iteration of the fetch task, and is used here. The 
+relevant tags are:</p>
+
+<p>
+<div class="source">
+&lt;accounts&gt;
+    &lt;alllocal
+        userprefix=""
+        usersuffix="@external.domain.com"
+        password="mypassword"
+        recipientprefix=""
+        recipientsuffix="@localhost"
+        ignorercpt-header="true"/&gt;
+
+    &lt;account
+        user="global@external.domain.com"
+        password="password"
+        recipient="fetchmail@localhost"
+        ignorercpt-header="false"/&gt;
+&lt;/accounts&gt;
+
+&lt;recipientnotfound
+    defer="true"
+    reject="true"
+    leaveonserver="true"
+    markseen="true"/&gt;
+</div>
+</p>
+</div>
+</div>
+
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="fetchmail Caveats">
+<strong>fetchmail Caveats</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>These are some things to be aware of when using fetchmail:
+<ul>
+<li>As noted in the
+<a href="#One Account, One User - Dynamic">One Account, One User - Dynamic</a>
+example, all virtual accounts and the global account must share the same 
+password. A future version might associate each James user to a set of account
+credentials.
+</li>
+
+<li>When using dynamic accounts, an account is generated and an attempt made to
+fetch mail for all James users defined to James even if there is no such mailbox
+on the server. This is inefficient but not fatal. The solution is the same as 
+described above.
+</li>
+
+<li>When using dynamic accounts, as described in the
+<a href="#One Account, Many Users - Dynamic">One Account, Many Users - Dynamic</a>
+example, the user name used to fetch the mail for all accounts must not be
+defined as a James user. If it is, a dynamic account will be generated for it
+and fetch all the mail before the account declared to process mail for all users
+has an opportunity to run!
+</li>
+
+<li>The now deprecated fetchPOP interacted with the <code>FetchedFrom</code> 
+matcher to detect mail injected by fetchPOP. This will not work with fetchmail. 
+Compared to fetchPOP, there are far fewer occasions when mail injected by 
+fetchmail requires special processing. When it does, use the HasMailAttribute 
+matcher to match the attribute named 
+<code>org.apache.james.fetchmail.taskName</code> to detect all mail injected by
+fetchmail. To detect mail injected by a specific fetch task, use one of the 
+HasMailAttributeWithValue matchers to match on the attribute name and the
+attribute value. The attribute value is the name of the fetch task that 
+injected the mail.
+</li>
+
+<li>The POP3 protocol does not enforce support of any of the Flags associated 
+with messages other than DELETED. This means that 
+<code>markseen="true"</code> will most likely have no effect and 
+therefore, the <strong>fetchall</strong> tag will be inoperative. In this 
+situation, the only way to avoid repeatedly fetching the same mail is to delete
+it from the server using <code>leaveonserver="false"/&gt;</code>.
+</li>
+</ul>
+</p>
+</div>
+</p>
+</div>
+</td>
+</tr>
+<!--FOOTER SEPARATOR-->
+<tr>
+<td colspan="2">
+<hr size="1" noshade=""/>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<div class="page-footer">
+<em>
+        Copyright © 1999-2006, The Apache Software Foundation
+        </em>
+</div>
+</td>
+</tr>
+</table>
+</body>
+</html>

Added: james/server/trunk/phoenix-deployment/www/images/james-logo.jpg
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/images/james-logo.jpg?view=auto&rev=521427
==============================================================================
Binary file - no diff available.

Propchange: james/server/trunk/phoenix-deployment/www/images/james-logo.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: james/server/trunk/phoenix-deployment/www/images/james_config_load_balance.png
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/images/james_config_load_balance.png?view=auto&rev=521427
==============================================================================
Binary file - no diff available.

Propchange: james/server/trunk/phoenix-deployment/www/images/james_config_load_balance.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: james/server/trunk/phoenix-deployment/www/images/james_config_secondary.png
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/images/james_config_secondary.png?view=auto&rev=521427
==============================================================================
Binary file - no diff available.

Propchange: james/server/trunk/phoenix-deployment/www/images/james_config_secondary.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: james/server/trunk/phoenix-deployment/www/images/james_config_smart_host.png
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/images/james_config_smart_host.png?view=auto&rev=521427
==============================================================================
Binary file - no diff available.

Propchange: james/server/trunk/phoenix-deployment/www/images/james_config_smart_host.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: james/server/trunk/phoenix-deployment/www/images/void.gif
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/images/void.gif?view=auto&rev=521427
==============================================================================
Binary file - no diff available.

Propchange: james/server/trunk/phoenix-deployment/www/images/void.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: james/server/trunk/phoenix-deployment/www/index.html
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/index.html?view=auto&rev=521427
==============================================================================
--- james/server/trunk/phoenix-deployment/www/index.html (added)
+++ james/server/trunk/phoenix-deployment/www/index.html Thu Mar 22 12:57:00 2007
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>Apache James - Mail and News server - James 2.3 - Table of Contents</title>
+<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
+</head>
+<body>
+<table cellspacing="0" width="100%" border="0" class="page-header">
+<!--PAGE HEADER-->
+<tr>
+<td colspan="2">
+<!--ASF LOGO-->
+<a href="http://www.apache.org/">
+<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
+</a>
+<!--PROJECT LOGO-->
+<a href="http://james.apache.org/">
+<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
+</a>
+</td>
+</tr>
+</table>
+<table cellspacing="4" width="100%" border="0">
+<tr>
+<!--LEFT SIDE NAVIGATION-->
+<td nowrap="true" valign="top" class="left-navbar">
+<table cellpadding="0" cellspacing="0" width="100%" border="0">
+<tr>
+<td>
+<a href="http://apachecon.com">
+<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
+</a>
+</td>
+</tr>
+</table>
+<navbar name="lhs">
+
+    <p>
+<strong>Concepts</strong>
+</p>
+<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>
+    
+    <p>
+<strong>How to...</strong>
+</p>
+<ul>
+<li>
+<a href="./build_instructions.html">Build James</a>
+</li>
+<li>
+<a href="./installation_instructions.html">Install James</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Configuration</strong>
+</p>
+<ul>
+<li>
+<a href="./dns_configuration.html">DNS Server</a>
+</li>
+<li>
+<a href="./pop3_configuration.html">POP3 Server</a>
+</li>
+<li>
+<a href="./smtp_configuration.html">SMTP Server</a>
+</li>
+<li>
+<a href="./nntp_configuration.html">NNTP Server</a>
+</li>
+<li>
+<a href="./fetchmail_configuration.html">FetchMail</a>
+</li>
+<li>
+<a href="./remotemanager_configuration.html">RemoteManager</a>
+</li>
+<li>
+<a href="./spoolmanager_configuration.html">SpoolManager</a>
+</li>
+<li>
+<a href="./serverwide_configuration.html">Server-wide</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>
+    
+    <p>
+<strong>Common Configurations</strong>
+</p>
+<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="./james_and_sendmail.html">James and Sendmail</a>
+</li>
+<li>
+<a href="./mailing_lists.html">Creating Mailing Lists</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Customization</strong>
+</p>
+<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>
+    
+    <p>
+<strong>Project</strong>
+</p>
+<ul>
+<li>
+<a href="./changelog.html">Changelog</a>
+</li>
+</ul>
+
+   </navbar>
+</td>
+<!--MAIN BODY-->
+<td align="left" valign="top" class="main-body">
+<div class="section">
+<div class="section-header">
+<a name="James 2.3">
+<strong>James 2.3</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<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>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Table of Contents">
+<strong>Table of Contents</strong>
+</a>
+</div>
+<div class="subsection-body">
+<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>
+</p>
+</div>
+</div>
+</div>
+</p>
+</div>
+</td>
+</tr>
+<!--FOOTER SEPARATOR-->
+<tr>
+<td colspan="2">
+<hr size="1" noshade=""/>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<div class="page-footer">
+<em>
+        Copyright © 1999-2006, The Apache Software Foundation
+        </em>
+</div>
+</td>
+</tr>
+</table>
+</body>
+</html>

Added: james/server/trunk/phoenix-deployment/www/install.html
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/install.html?view=auto&rev=521427
==============================================================================
--- james/server/trunk/phoenix-deployment/www/install.html (added)
+++ james/server/trunk/phoenix-deployment/www/install.html Thu Mar 22 12:57:00 2007
@@ -0,0 +1,296 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>Apache James - Mail and News server - Installation</title>
+<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
+<meta value="Serge Knystautas" name="author"/>
+<meta value="sergek@lokitech.com" name="email"/>
+</head>
+<body>
+<table cellspacing="0" width="100%" border="0" class="page-header">
+<!--PAGE HEADER-->
+<tr>
+<td colspan="2">
+<!--ASF LOGO-->
+<a href="http://www.apache.org/">
+<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
+</a>
+<!--PROJECT LOGO-->
+<a href="http://james.apache.org/">
+<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
+</a>
+</td>
+</tr>
+</table>
+<table cellspacing="4" width="100%" border="0">
+<tr>
+<!--LEFT SIDE NAVIGATION-->
+<td nowrap="true" valign="top" class="left-navbar">
+<table cellpadding="0" cellspacing="0" width="100%" border="0">
+<tr>
+<td>
+<a href="http://apachecon.com">
+<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
+</a>
+</td>
+</tr>
+</table>
+<navbar name="lhs">
+
+    <p>
+<strong>Concepts</strong>
+</p>
+<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>
+    
+    <p>
+<strong>How to...</strong>
+</p>
+<ul>
+<li>
+<a href="./build_instructions.html">Build James</a>
+</li>
+<li>
+<a href="./installation_instructions.html">Install James</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Configuration</strong>
+</p>
+<ul>
+<li>
+<a href="./dns_configuration.html">DNS Server</a>
+</li>
+<li>
+<a href="./pop3_configuration.html">POP3 Server</a>
+</li>
+<li>
+<a href="./smtp_configuration.html">SMTP Server</a>
+</li>
+<li>
+<a href="./nntp_configuration.html">NNTP Server</a>
+</li>
+<li>
+<a href="./fetchmail_configuration.html">FetchMail</a>
+</li>
+<li>
+<a href="./remotemanager_configuration.html">RemoteManager</a>
+</li>
+<li>
+<a href="./spoolmanager_configuration.html">SpoolManager</a>
+</li>
+<li>
+<a href="./serverwide_configuration.html">Server-wide</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>
+    
+    <p>
+<strong>Common Configurations</strong>
+</p>
+<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="./james_and_sendmail.html">James and Sendmail</a>
+</li>
+<li>
+<a href="./mailing_lists.html">Creating Mailing Lists</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Customization</strong>
+</p>
+<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>
+    
+    <p>
+<strong>Project</strong>
+</p>
+<ul>
+<li>
+<a href="./changelog.html">Changelog</a>
+</li>
+</ul>
+
+   </navbar>
+</td>
+<!--MAIN BODY-->
+<td align="left" valign="top" class="main-body">
+<div class="section">
+<div class="section-header">
+<a name="Step 0: Building. (only necessary for daily snapshots)">
+<strong>Step 0: Building. (only necessary for daily snapshots)</strong>
+</a>
+</div>
+<p>
+<div class="section-body"> 
+<p> If you have downloaded a binary distribution, you do not need to build James. 
+  Proceed directory to Step 1. </p>
+<p> To compile James from the source code you need <a href="http://ant.apache.org/">Ant</a>. 
+  This is a Java-tailored, XML-configured, extensible build or make system. We 
+  are currently using Ant 1.4, which is included in the source distribution.</p>
+<p> If you have downloaded a daily snapshot, you need to build a distribution. 
+  James includes Ant to compile and package its distribution. Extract the snapshot 
+  to your favorite directory, cd to that directory and run the build by calling "build" 
+  or "./build.sh" which will create an unpacked binary distribution 
+  in the dist directory, but no archives.</p>
+<p>This "./dist" directory is the distribution directory used in Step 1 and beyond. 
+  You may either cd to ./dist, or you may copy and rename the dist directory to your 
+  installation directory.</p>
+<p>If you prefer you can run build with the "dist" task "build dist" 
+  (or "./build.sh dist"). This will create the distribution in the "./dist" 
+  directory as well as create .tgz and .zip copies of this directory, however it may 
+  require other resources to build the documentation. </p>
+<p> <strong>Warning!</strong> Any changes you've made in the 'dist' directory 
+  will be lost after a recompilation. If you are making changes to the conf.xml 
+  or other files, we recommend you backup and then change the copies in src to 
+  avoid losing work. </p>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Step 1: Installation.">
+<strong>Step 1: Installation.</strong>
+</a>
+</div>
+<p>
+<div class="section-body"> 
+<p> Download distibution. Extract or copy all the files in the archive or dist 
+  directory intto your installation directory. </p>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Step 2: Configuration.">
+<strong>Step 2: Configuration.</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+  <p>
+    Read the short and snappy documentation at docs/index.html for a proper
+    overview of configuring the system.
+  </p>
+  <p>
+    <b>Summary</b> (for impatient people)
+  </p>
+  
+<p> M$ users should just run /bin/run.bat. Unix users will find run.sh under the 
+  same directory. A JVM must be present and its location specified in the JAVA_HOME 
+  environment variable. Set this on windows at the command prompt with something 
+  similar to "set JAVA_HOME=\jdk1.3\bin" on *nix with JAVA_HOME=/jdk1.3/</p>
+<p> Running [run* --help] will provide a simple command line help. </p>
+  <p>
+    Most UNIX systems require superuser privileges to open sockets below 1024,
+    which includes the IANA-standard SMTP (on port 25) and POP3 (on port 110).
+    These default ports can be changed in the conf.xml file. (Obviously, you
+    would then need to reconfigure your clients. This may not be an option if
+    you want to receive mail from external mailservers.)
+  </p>
+  
+<p> The Avalon framework will unpack the necessary configuration files you will 
+  need to start the server.  Wait until it is running, stop it again (ctrl-c), and 
+  edit the configuration (thereafter *nix users can run the server in the background 
+  using ./run.sh &amp;). For basic use, you only need to set two items in the 
+  JAMES.conf.xml file: a root password for the remote administration facility 
+  and the IP address of a DNS server. Once you have edited the configuration files, 
+  press 'Enter' on the terminal where Avalon is waiting. </p>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Step 4: Kickstart.">
+<strong>Step 4: Kickstart.</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+  <p>
+    Once started you'll see a message saying Avalon is running. This means that
+    Avalon has loaded JAMES and every other needed Block (see /logs/avalon.log)
+    and is now waiting for a socket request.
+    Since at the beginning James is empty, it will not have any local users
+    registered.
+    To register a local user open a telnet session with localhost on port 4555,
+    log in as root ("root[enter]  &lt;password-you-set-in-conf.xml&gt;[enter]") and
+    type "help" for a list of available commands in the "JAMES remote
+    administrator tool". It is really a basic set but should allow you to test
+    installation.
+  </p>
+  <p>
+    Once you have some local users registered, try sending mail to one of them
+    @localhost with SMTP (port 25) (assuming you have not changed the default
+    server names in the conf.xml file). You'll see the mail appear under
+    ../var/mail/localinbox/[user].
+    Try now to retrieve that mail using POP3 (port 110).
+    Trace out JAMES actions in /logs/*info.log.
+    Actions that will be taken by JAMES on incoming mail are configured in
+    the mailet pipe line (/conf/JAMES.conf.xml). Look at it if you want to
+    understand what's happening.
+  </p>
+  <p>
+  Good luck :)
+  </p>
+</div>
+</p>
+</div>
+</td>
+</tr>
+<!--FOOTER SEPARATOR-->
+<tr>
+<td colspan="2">
+<hr size="1" noshade=""/>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<div class="page-footer">
+<em>
+        Copyright © 1999-2006, The Apache Software Foundation
+        </em>
+</div>
+</td>
+</tr>
+</table>
+</body>
+</html>

Added: james/server/trunk/phoenix-deployment/www/installation_instructions.html
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/installation_instructions.html?view=auto&rev=521427
==============================================================================
--- james/server/trunk/phoenix-deployment/www/installation_instructions.html (added)
+++ james/server/trunk/phoenix-deployment/www/installation_instructions.html Thu Mar 22 12:57:00 2007
@@ -0,0 +1,309 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>Apache James - Mail and News server - James 2.3 - Installation</title>
+<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
+</head>
+<body>
+<table cellspacing="0" width="100%" border="0" class="page-header">
+<!--PAGE HEADER-->
+<tr>
+<td colspan="2">
+<!--ASF LOGO-->
+<a href="http://www.apache.org/">
+<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
+</a>
+<!--PROJECT LOGO-->
+<a href="http://james.apache.org/">
+<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
+</a>
+</td>
+</tr>
+</table>
+<table cellspacing="4" width="100%" border="0">
+<tr>
+<!--LEFT SIDE NAVIGATION-->
+<td nowrap="true" valign="top" class="left-navbar">
+<table cellpadding="0" cellspacing="0" width="100%" border="0">
+<tr>
+<td>
+<a href="http://apachecon.com">
+<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
+</a>
+</td>
+</tr>
+</table>
+<navbar name="lhs">
+
+    <p>
+<strong>Concepts</strong>
+</p>
+<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>
+    
+    <p>
+<strong>How to...</strong>
+</p>
+<ul>
+<li>
+<a href="./build_instructions.html">Build James</a>
+</li>
+<li>
+<a href="./installation_instructions.html">Install James</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Configuration</strong>
+</p>
+<ul>
+<li>
+<a href="./dns_configuration.html">DNS Server</a>
+</li>
+<li>
+<a href="./pop3_configuration.html">POP3 Server</a>
+</li>
+<li>
+<a href="./smtp_configuration.html">SMTP Server</a>
+</li>
+<li>
+<a href="./nntp_configuration.html">NNTP Server</a>
+</li>
+<li>
+<a href="./fetchmail_configuration.html">FetchMail</a>
+</li>
+<li>
+<a href="./remotemanager_configuration.html">RemoteManager</a>
+</li>
+<li>
+<a href="./spoolmanager_configuration.html">SpoolManager</a>
+</li>
+<li>
+<a href="./serverwide_configuration.html">Server-wide</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>
+    
+    <p>
+<strong>Common Configurations</strong>
+</p>
+<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="./james_and_sendmail.html">James and Sendmail</a>
+</li>
+<li>
+<a href="./mailing_lists.html">Creating Mailing Lists</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Customization</strong>
+</p>
+<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>
+    
+    <p>
+<strong>Project</strong>
+</p>
+<ul>
+<li>
+<a href="./changelog.html">Changelog</a>
+</li>
+</ul>
+
+   </navbar>
+</td>
+<!--MAIN BODY-->
+<td align="left" valign="top" class="main-body">
+<div class="section">
+<div class="section-header">
+<a name="Requirements">
+<strong>Requirements</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>James requires a Java Runtime Environment of Java version 1.4 or higher installed to run the 
+James application.  The exact JREs available depend on the platform.  A JRE must be downloaded and
+installed before James can run.  In addition, the environment variable JAVA_HOME must be set to
+the JRE home directory before running James.</p>
+<p>
+On Unix platforms, root access will be required to run James.  On these platforms, access to ports 
+below 1024 is generally restricted to the root user.  As SMTP, POP3, and NNTP all need to open 
+server sockets on such ports in standard configurations, James requires root access.
+</p>
+<p>
+Obviously James also requires sufficient disk space, processor power, and network bandwidth.  But, 
+other than what's been discussed here, it has no additional special requirements.</p>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Installation Comments">
+<strong>Installation Comments</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>James installation involves a number of steps, each of which is described in some detail in the 
+following sections.  But as this sequence of steps has confused some users in the past, additional 
+comments seem warranted.</p>
+<p>It is important to realize that the James configuration files are not unpacked from the James 
+distribution until the first time James is started.  This is a consequence of the design of the 
+Avalon Phoenix container used to run James.  Once James has been started, the distribution will 
+be unpacked.  The server should be stopped, the configuration files edited, and the server restarted.</p>
+<p>So the installation sequence is: <b>1) Start, 2) Stop, 3) Edit, 4) Restart</b>.</p>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Installing the Binary">
+<strong>Installing the Binary</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<div class="subsection">
+<div class="subsection-header">
+<a name="Installing a Stand-alone James Server">
+<strong>Installing a Stand-alone James Server</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>Obtain the full James binary distribution from the <a href="http://james.apache.org/download.cgi">James 
+release mirrors</a>.  Unpack the archive into your James installation directory.  Go to the bin subdirectory of the 
+installation directory and run the "run" script (either run.sh or run.bat, depending on your platform).  The configuration
+file is now unpacked and available for editing.</p>
+</div>
+</div>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Deploying a James Server in a Pre-Existing Phoenix Container">
+<strong>Deploying a James Server in a Pre-Existing Phoenix Container</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>
+<strong>Warning!</strong> - James requires Phoenix version 4.0.x to run.  There is a known issue with logging in Phoenix 4.0, so version 
+4.0.1 or higher is strongly recommended.  Before attempting to deploy James in a Phoenix container, please make sure
+it meets these version criteria.</p>
+<p>Deploying James in Phoenix is fairly easy.  Obtain the james.sar file from the <a href="http://james.apache.org/download.cgi">James 
+release mirrors</a>.  It can be found in the "Other Binaries" 
+area of the distribution directory.  After downloading the james.sar,
+simply place it in the apps subdirectory of your Phoenix installation.  Restart Phoenix, and the james.sar should unpack and you
+will be ready to configure your James installation.</p>
+</div>
+</div>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Initial Configuration">
+<strong>Initial Configuration</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>
+After installing the binary, the next step is to adjust the initial configuration.  The server should be stopped, and then 
+configuration can proceed.  The most essential configuration is set in the config.xml file.  This file can be 
+found in the apps/james/SAR-INF subdirectory of the installation directory.</p>
+<p>The out of the box configuration makes certain assumptions and has some default values that are unlikely to 
+be appropriate for real-world servers.  There are a few issues that should be addressed immediately upon installation:
+</p>
+<ul>
+<li>RemoteManager Administrator Account - Before the RemoteManager service can be used to add users to this server 
+installation an administrator account must be created.  More information can be found <a href="remotemanager_configuration.html">here</a>.</li>
+<li>DNS Servers - James needs to have access to a DNS server for domain resolution.  The out of the box 
+configuration assumes that there is a DNS server on localhost.  In general administrators will have to change 
+the configuration to point to a valid DNS server.  This can be done by adjusting the dnsserver configuration 
+block in the config.xml.  More information can be found <a href="serverwide_configuration.html">here</a>.</li>
+<li>Managed Domain Names/IP Addresses - Out of the box, James only handles mail that is sent to recipients at 
+localhost.  It will attempt to deliver all other email to remote SMTP servers.  To allow James to handle email 
+for your domain or IP address, you simply need to add the appropriate domain name or IP address to the servernames 
+section of the config.xml.  More information can be found <a href="serverwide_configuration.html">here</a>.</li>
+<li>Postmaster Address - More information can be found <a href="serverwide_configuration.html">here</a>.</li>
+</ul>
+<p>In addition to adjusting these parameters, you may wish to consult the documentation for a discussion of
+common configurations.  A list of such configurations, as well as the steps necessary to configure them, can
+be found <a href="index.html">here</a>.</p>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Starting James with Your Configuration">
+<strong>Starting James with Your Configuration</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Once you have edited the configuration file you will need to restart James so that the changes take 
+effect.  When James starts, a list of the James services and the ports on which they are listening should 
+be displayed on the console.  Additional information about the system configuration is printed in the James log files 
+upon startup.</p>
+<p>Finally, after configuration is complete, it will be necessary to create user accounts before the James server 
+will be fully operational.  Instructions on creating user accounts can be found 
+<a href="adding_users.html">here</a>.</p>
+</div>
+</p>
+</div>
+</td>
+</tr>
+<!--FOOTER SEPARATOR-->
+<tr>
+<td colspan="2">
+<hr size="1" noshade=""/>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<div class="page-footer">
+<em>
+        Copyright © 1999-2006, The Apache Software Foundation
+        </em>
+</div>
+</td>
+</tr>
+</table>
+</body>
+</html>

Added: james/server/trunk/phoenix-deployment/www/james_and_sendmail.html
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/james_and_sendmail.html?view=auto&rev=521427
==============================================================================
--- james/server/trunk/phoenix-deployment/www/james_and_sendmail.html (added)
+++ james/server/trunk/phoenix-deployment/www/james_and_sendmail.html Thu Mar 22 12:57:00 2007
@@ -0,0 +1,329 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>Apache James - Mail and News server - Sendmail integration</title>
+<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
+<meta value="Danny Angus" name="author"/>
+<meta value="danny@apache.org" name="email"/>
+</head>
+<body>
+<table cellspacing="0" width="100%" border="0" class="page-header">
+<!--PAGE HEADER-->
+<tr>
+<td colspan="2">
+<!--ASF LOGO-->
+<a href="http://www.apache.org/">
+<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
+</a>
+<!--PROJECT LOGO-->
+<a href="http://james.apache.org/">
+<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
+</a>
+</td>
+</tr>
+</table>
+<table cellspacing="4" width="100%" border="0">
+<tr>
+<!--LEFT SIDE NAVIGATION-->
+<td nowrap="true" valign="top" class="left-navbar">
+<table cellpadding="0" cellspacing="0" width="100%" border="0">
+<tr>
+<td>
+<a href="http://apachecon.com">
+<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
+</a>
+</td>
+</tr>
+</table>
+<navbar name="lhs">
+
+    <p>
+<strong>Concepts</strong>
+</p>
+<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>
+    
+    <p>
+<strong>How to...</strong>
+</p>
+<ul>
+<li>
+<a href="./build_instructions.html">Build James</a>
+</li>
+<li>
+<a href="./installation_instructions.html">Install James</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Configuration</strong>
+</p>
+<ul>
+<li>
+<a href="./dns_configuration.html">DNS Server</a>
+</li>
+<li>
+<a href="./pop3_configuration.html">POP3 Server</a>
+</li>
+<li>
+<a href="./smtp_configuration.html">SMTP Server</a>
+</li>
+<li>
+<a href="./nntp_configuration.html">NNTP Server</a>
+</li>
+<li>
+<a href="./fetchmail_configuration.html">FetchMail</a>
+</li>
+<li>
+<a href="./remotemanager_configuration.html">RemoteManager</a>
+</li>
+<li>
+<a href="./spoolmanager_configuration.html">SpoolManager</a>
+</li>
+<li>
+<a href="./serverwide_configuration.html">Server-wide</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>
+    
+    <p>
+<strong>Common Configurations</strong>
+</p>
+<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="./james_and_sendmail.html">James and Sendmail</a>
+</li>
+<li>
+<a href="./mailing_lists.html">Creating Mailing Lists</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Customization</strong>
+</p>
+<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>
+    
+    <p>
+<strong>Project</strong>
+</p>
+<ul>
+<li>
+<a href="./changelog.html">Changelog</a>
+</li>
+</ul>
+
+   </navbar>
+</td>
+<!--MAIN BODY-->
+<td align="left" valign="top" class="main-body">
+<div class="section">
+<div class="section-header">
+<a name="The problem">
+<strong>The problem</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+
+  <p>
+    This document explains how to configure sendmail to route all mail generated by /usr/sbin/sendmail or local mail on a host through James on the same host, including mail to local addresses without @host.<br/>
+    All sendmail configuration file locations are for Redhat Linux 7.2, other installations may have different locations.<br/>
+    <b>We take no responsibility for the quality of the information in this document. </b>
+<br/>
+<b>You should back-up any configuration files *before* you alter them.</b>
+  </p>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Solution">
+<strong>Solution</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<div class="subsection">
+<div class="subsection-header">
+<a name="Step 1: Stop sendmail from running as an SMTP daemon">
+<strong>Step 1: Stop sendmail from running as an SMTP daemon</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>
+Ok so you want to use James for everything, including delivering mail from localhost to local users.<br/>
+Well the first step is to stop sendmail from starting up as the SMTP Daemon on port 25, otherwise it will route mail to itself and who knows what will happen then.<br/>
+Open the sendmail configuration file <b>/etc/sysconfig/sendmail</b>
+Change the line:<div class="source">DAEMON=yes</div>into<div class="source">DAEMON=no</div>
+Restart sendmail with:<div class="source">[root@apache root]# /etc/rc.d/init.d/sendmail restart</div>This will make sendmail process its outgoing queue, but not listen on port 25 for incoming mail.
+</p>
+</div>
+</div>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Step 2: Set up sendmail to use relay">
+<strong>Step 2: Set up sendmail to use relay</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>
+Ok, so far so good, now you need to tell sendmail to relay everything, regardless of its rules, through James. James will take the roles of "local relay" (destination for all unqualified local addresses), "mail hub" (destination for all qualified local addresses) and "smart relay" (destination for all other mail) for this instance of sendmail, thereby catching everything.<br/>
+So open <b>/etc/sendmail.cf</b> and..
+<ul>
+<li>Look for the line beginning <b>DS</b> make this line <b>DSesmtp:localhost</b>
+</li>
+<li>Look for the line beginning <b>DR</b> make this line <b>DResmtp:localhost</b>
+</li>
+<li>Look for the line beginning <b>DH</b> make this line <b>DHesmtp:localhost</b>
+</li>
+</ul>
+Now that wasn't too hard was it?<br/>
+What we have done is to tell sendmail to use its "mailer" called <b>esmtp</b> to relay mail using ESMTP to localhost for each role.<br/>
+Of course no-one in their right mind would relay mail to localhost, because it would loop forever right?
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="Step 3: Stop sendmail complaining about mail apparently looping back">
+<strong>Step 3: Stop sendmail complaining about mail apparently looping back</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>
+The developers of sendmail have, wisely, built sendmail in such a way as to prevent, by default, mail being sent by sendmail back to itself, this is done by making a quick check on outgoing mail to see if its destination is our machine. If it is you'll see this message <b>
+<i>config error: mail loops back to me</i>
+</b> when you try to send mail.<br/>
+But we *want* to relay mail to localhost, and because sendmail isn't receiving our mail, James is, we won't be creating a loop. (make sure you've followed step one though).<br/>
+So open <b>/etc/sendmail.cf</b> again and go to the bottom of the file, start scrolling upwards until you see the declaration of the esmtp mailer it'll look something like this
+<div class="source">
+Mesmtp,     P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
+        T=DNS/RFC822/SMTP,
+        A=TCP $h
+</div>
+You need to change it so its more like this:  :-D
+<div class="source">
+Mesmtp,     P=[IPC], F=kmDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
+        T=DNS/RFC822/SMTP,
+        A=TCP $h
+</div>
+But seriously, we've added a <b>k</b> to the "F=" list <b>F=mDFMuXa</b> becomes <b>F=kmDFMuXa</b>
+<br/>
+And again, thats it, sendmail will now skip the loopback test on mail leaving through the esmtp mailer.
+</p>
+<p>Now you have to make some tests.<br/>Try each of the following, replace names in [] with names of the kind described.
+<div class="source">/[root@apache root]# mail -v [real-localusername]
+
+[root@apache root]# mail -v [nonexistant-localusername]
+
+[root@apache root]# mail -v [real-localusername]@localhost
+
+[root@apache root]# mail -v [real-localusername]@[myhostname.mydomainname]
+
+[root@apache root]# mail -v [real-username]@[real-remote-account]
+</div>
+Sendmail echoes each conversation to STDOUT so you can see what its trying to do with each mail.<br/>
+</p>
+</div>
+</div>
+
+<div class="subsection">
+<div class="subsection-header">
+<a name="Step 4: If that wasn't enough James requires SMTP AUTH">
+<strong>Step 4: If that wasn't enough James requires SMTP AUTH</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>
+SMTP AUTH is a different Kettle of Fish.<br/>
+The scenario is that you're using SMTP AUTH on James to restrict SMTP relaying to authenticated users, allowing them to connect from any IP address but still not letting James become an open relay for spam, cool.<br/>
+However you now want to let sendmail relay through James, so you need to tell it how to authenticate.<br/>
+So open <b>/etc/sendmail.cf</b> <i>again</i> and this time..
+<ul>
+<li>Look for the line beginning <b>O AuthMechanisms=</b> If this line is commented out with a leading <b>#</b>, remove the <b>#</b> then make sure LOGIN and PLAIN are at the beginning of this line like this <b>O AuthMechanisms=LOGIN PLAIN GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5</b>
+</li>
+<li>Look for the line beginning <b>O DefaultAuthInfo=</b> If this line is commented out with a leading <b>#</b>, remove the <b>#</b> then make this line <b>O DefaultAuthInfo=/etc/mail/default-auth-info</b>
+</li>
+<li>Create a user account on James for sendmail to login as.</li>
+<li>Create the file <b>/etc/mail/default-auth-info</b>
+</li>
+<li>It should contain this<div class="source">username
+username
+password
+localhost</div>Yes the username appears twice.</li>
+<li>Replace username and password with the details of the account you just created.</li>
+<li>This file has to be chmod'ed 600 (-rw------) or sendmail won't read it.</li>
+<li>Look for the line beginning <b>O AuthOptions=</b> If this line is commented out with a leading <b>#</b>, remove the <b>#</b> and it should be <b>O AuthOptions=A</b>
+</li>
+</ul>
+
+<h1>
+<i>
+<b>Ta-da!</b>
+</i>
+</h1> Now you're ready to run the tests in Step3, all of the mail should be accepted, the most likely rejection will be the final one.
+</p>
+</div>
+</div>
+<p>Thats it, good luck and happy mailing :)<br/>Danny Angus</p>
+</div>
+</p>
+</div>
+</td>
+</tr>
+<!--FOOTER SEPARATOR-->
+<tr>
+<td colspan="2">
+<hr size="1" noshade=""/>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<div class="page-footer">
+<em>
+        Copyright © 1999-2006, The Apache Software Foundation
+        </em>
+</div>
+</td>
+</tr>
+</table>
+</body>
+</html>

Added: james/server/trunk/phoenix-deployment/www/javadocs/allclasses-frame.html
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/javadocs/allclasses-frame.html?view=auto&rev=521427
==============================================================================
--- james/server/trunk/phoenix-deployment/www/javadocs/allclasses-frame.html (added)
+++ james/server/trunk/phoenix-deployment/www/javadocs/allclasses-frame.html Thu Mar 22 12:57:00 2007
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Thu Mar 22 20:26:19 CET 2007 -->
+<TITLE>
+All Classes (James Mail Server API)
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/apache/james/Main.html" title="class in org.apache.james" target="classFrame">Main</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>

Added: james/server/trunk/phoenix-deployment/www/javadocs/allclasses-noframe.html
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/javadocs/allclasses-noframe.html?view=auto&rev=521427
==============================================================================
--- james/server/trunk/phoenix-deployment/www/javadocs/allclasses-noframe.html (added)
+++ james/server/trunk/phoenix-deployment/www/javadocs/allclasses-noframe.html Thu Mar 22 12:57:00 2007
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Thu Mar 22 20:26:19 CET 2007 -->
+<TITLE>
+All Classes (James Mail Server API)
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/apache/james/Main.html" title="class in org.apache.james">Main</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org