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 no...@apache.org on 2006/07/05 19:10:26 UTC
svn commit: r419282 - /james/server/trunk/src/xdocs/
Author: norman
Date: Wed Jul 5 10:10:26 2006
New Revision: 419282
URL: http://svn.apache.org/viewvc?rev=419282&view=rev
Log:
Updates on xdocs
Added:
james/server/trunk/src/xdocs/fetchmail_configuration_2_3.xml (with props)
james/server/trunk/src/xdocs/remotemanager_configuration_2_3.xml
james/server/trunk/src/xdocs/repositories_2_3.xml
james/server/trunk/src/xdocs/serverwide_configuration_2_3.xml
james/server/trunk/src/xdocs/smtp_auth_2_3.xml
james/server/trunk/src/xdocs/smtp_configuration_2_3.xml
james/server/trunk/src/xdocs/spoolmanager_2_3.xml
james/server/trunk/src/xdocs/spoolmanager_configuration_2_3.xml
james/server/trunk/src/xdocs/using_database_2_3.xml
Modified:
james/server/trunk/src/xdocs/documentation_2_3.xml
james/server/trunk/src/xdocs/installation_instructions_2_3.xml
james/server/trunk/src/xdocs/mailet_api_2_3.xml
james/server/trunk/src/xdocs/summary_2_3.xml
Modified: james/server/trunk/src/xdocs/documentation_2_3.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/xdocs/documentation_2_3.xml?rev=419282&r1=419281&r2=419282&view=diff
==============================================================================
--- james/server/trunk/src/xdocs/documentation_2_3.xml (original)
+++ james/server/trunk/src/xdocs/documentation_2_3.xml Wed Jul 5 10:10:26 2006
@@ -3,7 +3,7 @@
<document>
<properties>
- <title>James 2.13 - Table of Contents</title>
+ <title>James 2.3 - Table of Contents</title>
</properties>
<body>
@@ -22,7 +22,7 @@
<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 version 4.0.1 of the
+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>
@@ -53,7 +53,6 @@
<li><a href="pop3_configuration_2_3.html">POP3 Server Configuration</a></li>
<li><a href="smtp_configuration_2_3.html">SMTP Server Configuration</a></li>
<li><a href="nntp_configuration_2_3.html">NNTP Server Configuration</a></li>
-<li><a href="fetchpop_configuration_2_3.html">FetchPOP Configuration <i>(deprecated)</i></a></li>
<li><a href="fetchmail_configuration_2_3.html">fetchMail Configuration</a></li>
<li><a href="remotemanager_configuration_2_1.html">RemoteManager Configuration</a></li>
<li><a href="repositories_2_3.html">Repository Configuration</a></li>
Added: james/server/trunk/src/xdocs/fetchmail_configuration_2_3.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/xdocs/fetchmail_configuration_2_3.xml?rev=419282&view=auto
==============================================================================
--- james/server/trunk/src/xdocs/fetchmail_configuration_2_3.xml (added)
+++ james/server/trunk/src/xdocs/fetchmail_configuration_2_3.xml Wed Jul 5 10:10:26 2006
@@ -0,0 +1,950 @@
+<?xml version="1.0"?>
+
+<document>
+ <properties>
+ <title>James 2.3 - fetchmail Configuration</title>
+ </properties>
+
+ <body>
+<section name="fetchmail">
+<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>
+</section>
+
+<section name="How fetchmail Works">
+<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 <alllocal> 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 <alllocal> account, it is always possible to deduce
+the intended recipient when the recipient is a James user.</p>
+</section>
+
+<section name="fetchmail Configuration Parameters">
+<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>
+
+<subsection name="fetchmail">
+<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>
+<source>
+<fetchmail enabled="true">
+...
+</fetchmail>
+</source>
+</p>
+</subsection>
+
+<subsection name="fetch">
+<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>
+<source>
+<fetch name="mydomain.com">
+...
+</fetch>
+</source>
+</p>
+</subsection>
+
+<subsection name="accounts">
+<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>
+<source>
+<accounts>
+...
+</accounts>
+</source>
+</p>
+</subsection>
+
+<subsection name="blacklist">
+<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>
+<source>
+<blacklist
+ reject="true"
+ leaveonserver="true"
+ markseen="true">
+wibble@mydomain.com, flobble@mydomain.com
+</blacklist>
+</source>
+</p>
+</subsection>
+
+<subsection name="defaultdomain">
+<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>
+<source>
+<defaultdomain>
+ mydomain.com
+</defaultdomain>
+</source>
+</p>
+</subsection>
+
+<subsection name="fetchall">
+<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>
+<source>
+<fetchall>false</fetchall>
+</source>
+</p>
+</subsection>
+
+<subsection name="fetched">
+<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>
+<source>
+<fetched leaveonserver="true" markseen="true"/>
+</source>
+</p>
+</subsection>
+
+<subsection name="host">
+<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>
+<source>
+<host>pop3.server.com</host>
+</source>
+</p>
+</subsection>
+
+<subsection name="interval">
+<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>
+<source>
+<interval>60000</interval>
+</source>
+</p>
+</subsection>
+
+<subsection name="javaMailFolderName">
+<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>
+<source>
+<javaMailFolderName>INBOX</javaMailFolderName>
+</source>
+</p>
+</subsection>
+
+<subsection name="javaMailProperties">
+<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>
+<source>
+<javaMailProperties>
+...
+</javaMailProperties>
+</source>
+</p>
+</subsection>
+
+<subsection name="javaMailProviderName">
+<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>
+<source>
+<javaMailProviderName>pop3</javaMailProviderName>
+</source>
+</p>
+</subsection>
+
+<subsection name="maxmessagesize">
+<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>
+<source>
+<maxmessagesize
+ limit="4096"
+ reject="false"
+ leaveonserver="false"
+ markseen="false"/>
+</source>
+</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>
+</subsection>
+
+<subsection name="recipientnotfound">
+<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>
+<source>
+<recipientnotfound
+ defer="true"
+ reject="true"
+ leaveonserver="true"
+ markseen="true"/>
+</source>
+</p>
+</subsection>
+
+<subsection name="recursesubfolders">
+<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>
+<source>
+<recursesubfolders>false</recursesubfolders>
+</source>
+</p>
+</subsection>
+
+<subsection name="remoteReceivedHeader">
+<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>
+<source>
+<remoteReceivedHeader
+ index="1"
+ reject="true"
+ leaveonserver="true"
+ markseen="true"/>
+</source>
+</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>
+</subsection>
+
+<subsection name="remoterecipient">
+<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>
+<source>
+<remoterecipient
+ reject="true"
+ leaveonserver="true"
+ markseen="true"/>
+</source>
+</p>
+</subsection>
+
+<subsection name="undeliverable">
+<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>
+<source>
+<undeliverable
+ leaveonserver="true"
+ markseen="true"/>
+</source>
+</p>
+</subsection>
+
+<subsection name="userundefined">
+<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>
+<source>
+<userundefined
+ reject="true"
+ leaveonserver="true"
+ markseen="true"/>
+</source>
+</p>
+</subsection>
+
+<subsection name="account">
+<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>
+<source>
+<account
+ user="myaccount"
+ password="mypassword"
+ recipient="user@localhost"
+ ignorercpt-header="true"/>
+</source>
+</p>
+</subsection>
+
+<subsection name="alllocal">
+<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>
+<source>
+<alllocal
+ userprefix=""
+ usersuffix="@external.domain.com"
+ password="mypassword"
+ recipientprefix=""
+ recipientsuffix="@mydomain.com"
+ ignorercpt-header="true"/>
+</source>
+</p>
+</subsection>
+
+<subsection name="property">
+<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>
+<source>
+<property
+ name="mail.pop3.connectiontimeout"
+ value="180000"/>
+</source>
+</p>
+</subsection>
+
+</section>
+
+<section name="fetchmail Examples">
+<p>Full sources to the examples discussed below can be found in the directory
+<code>$PHOENIX_HOME/apps/james/conf/samples/fetchmail</code>.</p>
+
+<subsection name="One Account, One User">
+<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>
+<source>
+<accounts>
+ <account
+ user="user1@external.domain.com"
+ password="password1"
+ recipient="user1@localhost"
+ ignorercpt-header="true"/>
+
+ <account
+ user="user2@external.domain.com"
+ password="password2"
+ recipient="user2@localhost"
+ ignorercpt-header="true"/>
+
+ <account
+ user="user3@external.domain.com"
+ password="password3"
+ recipient="user3@localhost"
+ ignorercpt-header="true"/>
+</accounts>
+</source>
+</p>
+</subsection>
+
+<subsection name="One Account, Many Users">
+<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>
+<source>
+<accounts>
+ <account
+ user="global@external.domain.com"
+ password="password"
+ recipient="fetchmail@localhost"
+ ignorercpt-header="false"/>
+</accounts>
+</source>
+</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>
+<source>
+<recipientnotfound
+ defer="false"
+ reject="false"
+ leaveonserver="false"
+ markseen="false"/>
+</source>
+</p>
+</subsection>
+
+<subsection name="One Account, One User - Dynamic">
+<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>
+<source>
+<accounts>
+ <alllocal
+ userprefix=""
+ usersuffix="@external.domain.com"
+ password="mypassword"
+ recipientprefix=""
+ recipientsuffix="@localhost"
+ ignorercpt-header="true"/>
+</accounts>
+</source>
+</p>
+</subsection>
+
+<subsection name="One Account, Many Users - Dynamic">
+<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><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>
+<source>
+<accounts>
+ <alllocal
+ userprefix=""
+ usersuffix="@external.domain.com"
+ password="mypassword"
+ recipientprefix=""
+ recipientsuffix="@localhost"
+ ignorercpt-header="true"/>
+
+ <account
+ user="global@external.domain.com"
+ password="password"
+ recipient="fetchmail@localhost"
+ ignorercpt-header="false"/>
+</accounts>
+
+<recipientnotfound
+ defer="true"
+ reject="true"
+ leaveonserver="true"
+ markseen="true"/>
+</source>
+</p>
+</subsection>
+
+</section>
+
+<section name="fetchmail Caveats">
+<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"/></code>.
+</li>
+</ul>
+</p>
+</section>
+
+
+</body>
+
+</document>
Propchange: james/server/trunk/src/xdocs/fetchmail_configuration_2_3.xml
------------------------------------------------------------------------------
svn:executable = *
Modified: james/server/trunk/src/xdocs/installation_instructions_2_3.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/xdocs/installation_instructions_2_3.xml?rev=419282&r1=419281&r2=419282&view=diff
==============================================================================
--- james/server/trunk/src/xdocs/installation_instructions_2_3.xml (original)
+++ james/server/trunk/src/xdocs/installation_instructions_2_3.xml Wed Jul 5 10:10:26 2006
@@ -59,7 +59,7 @@
</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_2_1.html">here</a>.</li>
+installation an administrator account must be created. More information can be found <a href="remotemanager_configuration_2_3.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
Modified: james/server/trunk/src/xdocs/mailet_api_2_3.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/xdocs/mailet_api_2_3.xml?rev=419282&r1=419281&r2=419282&view=diff
==============================================================================
--- james/server/trunk/src/xdocs/mailet_api_2_3.xml (original)
+++ james/server/trunk/src/xdocs/mailet_api_2_3.xml Wed Jul 5 10:10:26 2006
@@ -26,7 +26,7 @@
<p>The Javadoc for the Mailet API can be found <a href="mailet/index.html">here</a>.</p>
<p>James bundles a number of Matchers and Mailets in its distribution. Descriptions of provided matchers
can be found <a href="provided_matchers_2_3.html">here</a>, while descriptions of provided mailets can be found
-<a href="provided_mailets_2_1.html">here</a>.</p>
+<a href="provided_mailets_2_3.html">here</a>.</p>
</section>
</body>
</document>
Added: james/server/trunk/src/xdocs/remotemanager_configuration_2_3.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/xdocs/remotemanager_configuration_2_3.xml?rev=419282&view=auto
==============================================================================
--- james/server/trunk/src/xdocs/remotemanager_configuration_2_3.xml (added)
+++ james/server/trunk/src/xdocs/remotemanager_configuration_2_3.xml Wed Jul 5 10:10:26 2006
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+
+<document>
+
+ <properties>
+ <title>James 2.3 - Configuring the RemoteManager</title>
+ </properties>
+
+<body>
+<section name="RemoteManager Configuration">
+<p>The RemoteManager is controlled by a configuration block in the config.xml.
+The remotemanager tag defines the boundaries of the configuration block. It encloses
+all the relevant configuration for the RemoteManager. The behavior of the RemoteManager is
+controlled by the attributes and children of this tag.</p>
+
+<p>This tag has an optional boolean attribute - <strong>enabled</strong> - that defines whether the service is active or not. The value defaults to "true" if
+not present.</p>
+<p>The standard children of the remotemanager tag are:</p>
+<ul>
+<li><strong>port</strong> - This is an optional integer value. This value is the port on which this POP3 server is configured
+to listen.If the tag or value is omitted, the value will default to 4555.</li>
+<li><strong>bind</strong> - This is an optional value. If present, this value is a string describing
+the IP address to which this service should be bound. If the tag or value is absent then the service
+will bind to all network interfaces for the machine.</li>
+<li><strong>useTLS</strong> - This is an optional boolean value. If this value is true, then the "ssl"
+server socket factory is used to generate the server socket for this service. If it is false, the
+"plain" server socket factory is used. In either case this behavior is overridden by the serverSocketType
+tag which is described under the expert configuration options.</li>
+<li><strong>handler</strong> - This is an artifact preserved for backwards compatibility. This tag
+was used to group related parameters. It should disappear in future versions.</li>
+<ul>
+<li><strong>helloName</strong> - This is a required tag with an optional body that defines the server name
+used in the initial service greeting. The tag may have an optional attribute - <strong>autodetect</strong>. If
+the autodetect attribute is present and true, the service will use the local hostname
+returned by the Java libraries. If autodetect is absent or false, the body of the tag will be used. In
+this case, if no body is present, the value "localhost" will be used.</li>
+<li><strong>administrator_accounts</strong> - This is an required container tag. It contains
+one or more <strong>administrator_account</strong> elements, each of which has a <strong>login</strong> attribute
+and a <strong>password</strong> attribute. These two attributes correspond to the login id and password for the
+administrative account respectively. Obviously, for security reasons, these should be set upon James installation.</li>
+<li><strong>connectionTimeout</strong> - This is an optional tag with an integer body. </li>
+</ul>
+</ul>
+<p>There are a few additional children of the pop3server tag that are appropriate for advanced
+configurations. These should only be used by expert administrators. All tags in this group are optional.</p>
+<ul>
+<li><strong>serverSocketFactory</strong> - This is an optional tag with a string body. If the tag is present,
+the body must be the name of one of the server socket factories specified in the socket manager block. Any other
+value will result in an error. If present, this tag overrides the useTLS tag.</li>
+<li><strong>threadGroup</strong> - This is an optional tag with a string body. If the tag is present,
+the body must be the name of one of the thread groups specified in the thread manager block. Any other
+value will result in an error. This tag is best used to fine tune thread allocation between the services.</li>
+<li><strong>connectionLimit</strong> - The connectionLimit parameter specifies the maximum number of client
+connections that this service will allow. If no value is specified, the value defaults to that specified in
+the connectionmanager block. A value of 0 means that there is no limit imposed
+by the service, although resource limitations imposed by other components
+(i.e. max # of threads) may serve to limit the number of open connections.</li>
+</ul>
+</section>
+</body>
+</document>
Added: james/server/trunk/src/xdocs/repositories_2_3.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/xdocs/repositories_2_3.xml?rev=419282&view=auto
==============================================================================
--- james/server/trunk/src/xdocs/repositories_2_3.xml (added)
+++ james/server/trunk/src/xdocs/repositories_2_3.xml Wed Jul 5 10:10:26 2006
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+
+<document>
+
+ <properties>
+ <title>Repositories</title>
+ </properties>
+
+<body>
+<section name="Repositories">
+
+<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.</p>
+
+</section>
+<section name="Storage Types">
+
+<p>Aside from the type of data they store, repositories are distinguished by
+where they store data. There are three types of storage - File, Database, and DBFile.</p>
+<subsection name="File Repositories">
+
+<p>File-based repositories store all data in the file system. In general, these repositories are extremely
+simple to configure, but may compare poorly in terms of performance when compared to other repository
+types. File repositories are not recommended for large or performance-critical configurations. In the
+default configuration, all repositories are file repositories.</p>
+
+<p>File repository paths typically begin with the prefix "file". Paths are relative to the application
+base directory, unless the path begins with a slash. As an example, assume that James is running in
+/usr/james/phoenix/apps/james. Then "file://var/mail/spool/" would refer to the directory /usr/james/phoenix/apps/james/var/mail/spool.
+And "file:///var/mail/spool/" (note the extra '/') would refer to the directory /var/mail/spool.</p>
+
+<p>All repository types (mail, spool, user, and news) have file-based implementations. No special configuration is required to enable file-based repositories</p>
+
+</subsection>
+<subsection name="Database (JDBC) Repositories">
+
+<p>Database repositories store all data in an administrator-supplied database. Configuration is somewhat
+more complex, requiring that the administrator adjust the data-connections section. Detailed directions
+are included in the sample configuration file. The administrator will need to know the JDBC driver class,
+the appropriate URL for use with his database, and a valid username/password for the database.</p>
+
+<p>If the administrator wants to configure a database other than MySQL, it will be necessary to add the jar
+or zip file containing the JDBC driver classes to the lib subdirectory of the installation directory. This
+will allow Phoenix to properly load the driver when it is initializing the database repository. The MySQL
+driver is pre-packaged with James.</p>
+
+<p>Database repository paths typically begin with the prefix "db". The format is "db://<data-source>/<table>"
+where <data-source> is the name of the data-source defined in the data-connections section. And <table> is
+the particular table associated with the repository.</p>
+
+<p>Mail, spool, and user repositories have JDBC-based implementations.</p>
+
+</subsection>
+<subsection name="DBFile Repositories">
+
+<p>This is a special repository type used only for mail repositories. DBFile repositories store the body of
+a mail message in the file system, while headers are stored in the database. This allows the administrator
+to minimize the size of data stored in the database, while conserving most of the performance of the
+database repository.</p>
+
+<p>Only mail repositories have dbfile-based implementations.</p>
+</subsection>
+
+</section>
+</body>
+</document>
Added: james/server/trunk/src/xdocs/serverwide_configuration_2_3.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/xdocs/serverwide_configuration_2_3.xml?rev=419282&view=auto
==============================================================================
--- james/server/trunk/src/xdocs/serverwide_configuration_2_3.xml (added)
+++ james/server/trunk/src/xdocs/serverwide_configuration_2_3.xml Wed Jul 5 10:10:26 2006
@@ -0,0 +1,83 @@
+<?xml version="1.0"?>
+
+<document>
+
+ <properties>
+ <title>James 2.3 - Global Server Configuration</title>
+ </properties>
+
+<body>
+<section name="Global Server Configuration">
+<p>There are a number of global configuration blocks that do not fall into any one
+component. They have effects that are global in scope across the server. Some of
+these blocks are crucial, while others can be ignored by any but the most sophisticated
+server administrators.</p>
+<subsection name="The James Block">
+<p>This configuration block is defined by the <strong>James</strong> tag. All administrators
+need to adjust this configuration block upon installation. It no attributes, but several
+children, all of which are required.
+<ul>
+<li><strong>postmaster</strong> - the body of this element is the address that the server
+will consider its postmaster address. This address will be listed as the sender address
+of all error messages that originate from James. Also, all messages addressed to
+postmaster@<servername>, where <servername> is one of the domain names whose
+mail is being handled by James, will be redirected to this email address.</li>
+<li><strong>usernames</strong> - this element has no body, but instead has three required
+boolean attributes. These are <strong>ignoreCase</strong>, <strong>enabledAliases</strong>,
+and <strong>enableForwarding</strong>. The first of these determines whether email user names
+will be treated as case-insensitive or not. The second attribute configures whether local user
+aliasing will be enabled. Finally, the value of the third attribute determines whether forwarding
+to potentially remote users will be enabled.</li>
+<li><strong>servernames</strong> - this element determines exactly which mail domains and IP
+addresses the server will treat as local. It has two boolean attributes -
+<strong>autodetect</strong> and <strong>autodetectIP</strong>. The first attribute, if true,
+causes the server to attempt to determine its own host name and add that to the list of local
+mail domains. The second attribute causes the server to attempt to determine its own IP
+address and add it to the list of local mail domains. In addition to these attributes, this
+tag has zero or more <strong>servername</strong> children.</li>
+<ul>
+<li><strong>servername</strong> - a single host name or IP address that should be added to the list of
+mail domains that the server considers local.</li>
+</ul>
+<li><strong>inboxRepository</strong> - This is a simple container tag which contains a single child element.</li>
+<ul>
+<li><strong>repository</strong> - this defines the mail repository that will be used to store
+mail delivered locally. This element has no body. The required attribute <strong>type</strong>
+is always set to "MAIL". The required attribute <strong>repositoryURL</strong> addresses the
+repository as described in <a href="repositories_2_3.html">the repository configuration section</a>.</li>
+</ul>
+</ul>
+</p>
+</subsection>
+<subsection name="The Connectionmanager Block">
+<p>
+This block controls general connection management. There are two elements.
+<ul>
+<li><strong>idle-timeout</strong> - the number of milliseconds that it will take for idle
+client connections managed by this connection manager to be marked at timed out. If no
+value is specified, the value defaults to 5 minutes, 300000 milliseconds. A value of 0
+means that client sockets will not timeout.</li>
+<li><strong>max-connections</strong> - The max-connections parameter specifies the default
+maximum number of client connections that this connection manager will allow per managed
+server socket. This value can be overridden by each individual service. If no value is
+specified, the value defaults to 30. A value of 0 means that there is no limit imposed
+by the connection manager, although resource limitations imposed by other components
+(i.e. max # of threads) may serve to limit the number of open connections.</li>
+</ul>
+</p>
+</subsection>
+<subsection name="The Objectstorage Block">
+<p>This block controls the low level file repository to file mapping. There is no need to modify this.</p>
+</subsection>
+<subsection name="The Socketmanager Block">
+<p>This block controls the socket types available inside James. Unless you are intending to enable SSL, it
+shouldn't be necessary for you to adjust this block. For modifications to this block that are required to
+enable TLS, see <a href="usingTLS_2_1.html">the using TLS section</a>.</p>
+</subsection>
+<subsection name="The Threadmanager Block">
+<p>This block controls the thread pools available inside James. Only expert administators should modify
+this configuration.</p>
+</subsection>
+</section>
+</body>
+</document>
Added: james/server/trunk/src/xdocs/smtp_auth_2_3.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/xdocs/smtp_auth_2_3.xml?rev=419282&view=auto
==============================================================================
--- james/server/trunk/src/xdocs/smtp_auth_2_3.xml (added)
+++ james/server/trunk/src/xdocs/smtp_auth_2_3.xml Wed Jul 5 10:10:26 2006
@@ -0,0 +1,53 @@
+<?xml version="1.0"?>
+
+<document>
+
+ <properties>
+ <title>James 2.3 - Using Authenticated SMTP</title>
+ </properties>
+
+<body>
+<section name="Authenticated SMTP (SMTP AUTH)">
+<p>Authenticated SMTP is a method of securing your SMTP server. With SMTP AUTH enabled senders who wish to
+relay mail through the SMTP server (that is, send mail that is eventually to be delivered to another SMTP
+server) must authenticate themselves to James before sending their message. Mail that is to be delivered
+locally does not require authentication. This method ensures that spammers cannot use your SMTP server
+to send unauthorized mail, while still enabling users who may not have fixed IP addresses to send their
+messages.</p>
+<p>Mail servers that allow spammers to send unauthorized email are known as open relays. So SMTP AUTH
+is a mechanism for ensuring that your server is not an open relay .</p>
+<p>At this time James only supports simple user name / password authentication.</p>
+<subsection name="Configuring James for Authenticated SMTP">
+<p>Configuring James for Authentication SMTP is a multi-step process. It requires several adjustments of
+the config.xml. To enable SMTP AUTH, do the following:</p>
+<p>First, as mentioned above, SMTP AUTH requires that James be able to distinguish between mail intended
+for local delivery and mail intended for remote delivery. James makes this determination by matching the
+domain to which the mail was sent against the <servernames> element of the James configuration block. Any
+local domains should be explicitly listed as <servername> elements in this section.</p>
+<p>Second, James is configured out of the box so as to not serve as an open relay for spammers. This is done
+by restricting the IP addresses from which mail will be accepted using the RemoteAddrNotInNetwork mailet. This
+restriction must be lifted before users can send from arbitrary clients. To do this, comment out or remove the
+mailet tag containing the class attribute "RemoteAddrNotInNetwork". This tag can be found in the spoolmanager
+configuration block, in the root processor configuration.</p>
+<p>Third, set the authRequired element of the smtpserver configuration block to "true".</p>
+<p>Fourth, if you wish to ensure that authenticated users can only send email from their own account, you may
+optionally set the verifyIdentity element of the smtpserver configuration block to "true".</p>
+<p>Fifth, restart James. This will pull in all of your configuration changes.</p>
+</subsection>
+<subsection name="Verifying Your Configuration">
+<p>Finally, you need to verify that your configuration was done correctly. This step is
+<strong>important</strong> and should not be skipped.</p>
+<p>Verify that you have not inadvertantly configured your server as an open relay. This is most easily
+accomplished by using the service provided at <a href="http://www.ordb.org">ORDB.org</a>. ORDB.org will
+check your mail server and inform you if it is an open relay.</p>
+<p>It is extremely important that your server not be configured as an open relay. Aside from potential
+costs associated with usage by spammers, connections from servers that are determined to be open relays
+are routinely rejected by SMTP servers. This can severely impede the ability of your mail server to
+send mail.</p>
+<p>Of course it is also necessary to confirm that users and log in and send
+mail through your server. This can be accomplished using any standard mail client (i.e. Outlook,
+Eudora, Evolution).</p>
+</subsection>
+</section>
+</body>
+</document>
Added: james/server/trunk/src/xdocs/smtp_configuration_2_3.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/xdocs/smtp_configuration_2_3.xml?rev=419282&view=auto
==============================================================================
--- james/server/trunk/src/xdocs/smtp_configuration_2_3.xml (added)
+++ james/server/trunk/src/xdocs/smtp_configuration_2_3.xml Wed Jul 5 10:10:26 2006
@@ -0,0 +1,68 @@
+<?xml version="1.0"?>
+
+<document>
+
+ <properties>
+ <title>James 2.3 - Configuring the SMTP Service</title>
+ </properties>
+
+<body>
+<section name="SMTP Configuration">
+<p>The SMTP service is controlled by a configuration block in the config.xml.
+The smtpserver tag defines the boundaries of the configuration block. It encloses
+all the relevant configuration for the SMTP server. The behavior of the SMTP service is
+controlled by the attributes and children of this tag.</p>
+
+<p>This tag has an optional boolean attribute - <strong>enabled</strong> - that defines whether the service is active or not. The value defaults to "true" if
+not present.</p>
+<p>The standard children of the smtpserver tag are:</p>
+<ul>
+<li><strong>port</strong> - This is an optional integer value. This value is the port on which this SMTP server is configured
+to listen.If the tag or value is omitted, the value will default to the standard SMTP port, 25.</li>
+<li><strong>bind</strong> - This is an optional value. If present, this value is a string describing
+the IP address to which this service should be bound. If the tag or value is absent then the service
+will bind to all network interfaces for the machine.</li>
+<li><strong>useTLS</strong> - This is an optional boolean value. If this value is true, then the "ssl"
+server socket factory is used to generate the server socket for this service. If it is false, the
+"plain" server socket factory is used. In either case this behavior is overridden by the serverSocketType
+tag which is described under the expert configuration options.</li>
+<li><strong>handler</strong> - This is an artifact preserved for backwards compatibility. This tag
+was used to group related parameters. It should disappear in future versions.</li>
+<ul>
+<li><strong>helloName</strong> - This is a required tag with an optional body that defines the server name
+used in the initial service greeting. The tag may have an optional attribute - <strong>autodetect</strong>. If
+the autodetect attribute is present and true, the service will use the local hostname
+returned by the Java libraries. If autodetect is absent or false, the body of the tag will be used. In
+this case, if no body is present, the value "localhost" will be used.</li>
+<li><strong>connectionTimeout</strong> - This is an optional tag with a non-negative integer body. </li>
+<li><strong>authRequired</strong> - This is an optional tag with a boolean body. If true, then the server will
+require authentication before delivering mail to non-local email addresses. If this tag is absent, or the value
+is false then the client will not be prompted for authentication. Only simple user/password authentication is
+supported at this time.</li>
+<li><strong>verifyIdentity</strong> - This is an optional tag with a boolean body. This option can only be used
+if SMTP authentication is required. If the parameter is set to true then the sender address for the submitted message
+will be verified against the authenticated subject.</li>
+<li><strong>maxmessagesize</strong> - This is an optional tag with a non-negative integer body. It specifies the maximum
+size, in kbytes, of any message that will be transmitted by this SMTP server. It is a service-wide, as opposed to
+a per user, limit. If the value is zero then there is no limit. If the tag isn't specified, the service will
+default to an unlimited message size.</li>
+</ul>
+</ul>
+<p>There are a few additional children of the smtpserver tag that are appropriate for advanced
+configurations. These should only be used by expert administrators. All tags in this group are optional.</p>
+<ul>
+<li><strong>serverSocketFactory</strong> - This is an optional tag with a string body. If the tag is present,
+the body must be the name of one of the server socket factories specified in the socket manager block. Any other
+value will result in an error. If present, this tag overrides the useTLS tag.</li>
+<li><strong>threadGroup</strong> - This is an optional tag with a string body. If the tag is present,
+the body must be the name of one of the thread groups specified in the thread manager block. Any other
+value will result in an error. This tag is best used to fine tune thread allocation between the services.</li>
+<li><strong>connectionLimit</strong> - The connectionLimit parameter specifies the maximum number of client
+connections that this service will allow. If no value is specified, the value defaults to that specified in
+the connectionmanager block. A value of 0 means that there is no limit imposed
+by the service, although resource limitations imposed by other components
+(i.e. max # of threads) may serve to limit the number of open connections.</li>
+</ul>
+</section>
+</body>
+</document>
Added: james/server/trunk/src/xdocs/spoolmanager_2_3.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/xdocs/spoolmanager_2_3.xml?rev=419282&view=auto
==============================================================================
--- james/server/trunk/src/xdocs/spoolmanager_2_3.xml (added)
+++ james/server/trunk/src/xdocs/spoolmanager_2_3.xml Wed Jul 5 10:10:26 2006
@@ -0,0 +1,68 @@
+<?xml version="1.0"?>
+
+<document>
+
+ <properties>
+ <title>James 2.3 - The SpoolManager, Matchers, and Mailets</title>
+ </properties>
+
+<body>
+<section name="The SpoolManager, Matchers, and Mailets">
+
+<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>Core to the SpoolManager operation are Matchers and Mailets. A Matcher is a
+simple object that checks whether a mail message matches a particular condition.
+A mailet is another type object that processes an email message in some way. Some
+typical tasks appropriate for a mailet would be adding a header, delivering the message
+to a local repository, or handling remote delivery. Both the Matcher and Mailet APIs are
+public, allowing James users to write their own custom matchers and mailets. James
+comes with a large set of pre-built matchers and mailets.</p>
+
+<p>Matchers and mailets are used in pairs. At each stage in processing a message is checked
+against a matcher. The matcher will attempt to match the mail message. The match is not simply
+a yes or no issue. Instead, the match method returns a collection of matched recipients. If the
+this collection of matched recipients is empty, the mailet is not invoked. If the collection of
+matched recipients is the entire set of original recipients, the mail is then processed by the
+associated mailet. Finally, if the matcher only matches a proper subset of the original recipients,
+the original mail is duplicated. The recipients for one message are set to the matched recipients,
+and that message is processed by the mailet. The recipients for the other mail are set to the
+non-matching recipients, and that message is not processed by the mailet.</p>
+
+<p>More on matchers and mailets can be found <a href="mailet_api_2_3.html">here</a>.</p>
+
+<p>One level up from the matchers and mailets are the processors. Each processor
+is a list of matcher/mailet pairs. During mail processing, mail messages will be
+processed by each pair, in order. In most cases, the message will be processed by
+all the pairs in the processor. However, it is possible for a mailet to change the
+state of the mail message so it is immediately directed to another processor, and no
+additional processing occurs in the current processor. Typically this occurs when the mailet wants to prevent
+future processing of this message (i.e. the mail message has been delivered locally,
+and hence requires no further processing) or when the mail message has been identified
+as a candidate for special processing (i.e. the message is spam and thus should be
+routed to the spam processor). Because of this redirection, the processors in the
+SpoolManager form a tree. The root processor, which must be present, is the root of
+this tree.</p>
+
+<p>The SpoolManager continually checks for mail in the spool repository. When
+mail is first found in the repository, it is delivered to the root processor.
+Mail can be placed on this spool from a number of sources (SMTP, FetchPOP, a
+custom component). This spool repository is also used for storage of mail that is
+being redirected from one processor to another. Mail messages are driven through
+the processor tree until they reach the end of a processor or are marked completed
+by a mailet.</p>
+
+<p>More on configuration of the SpoolManager can be found <a href="spoolmanager_configuration_2_3.html">here</a>.</p>
+
+<p>Much of the power of James lies in the SpoolManager component. Custom matchers and
+mailets can be easily developed to address an administrator's particular needs. The
+processor tree can easily be configured to sort, filter, and deliver mail based on any
+number of criteria. Mail administrators new to James should spend some time learning how
+to configure the SpoolManager to meet their needs.</p>
+
+</section>
+</body>
+</document>
Added: james/server/trunk/src/xdocs/spoolmanager_configuration_2_3.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/xdocs/spoolmanager_configuration_2_3.xml?rev=419282&view=auto
==============================================================================
--- james/server/trunk/src/xdocs/spoolmanager_configuration_2_3.xml (added)
+++ james/server/trunk/src/xdocs/spoolmanager_configuration_2_3.xml Wed Jul 5 10:10:26 2006
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+
+<document>
+
+ <properties>
+ <title>James 2.3 - Configuring the SpoolManager</title>
+ </properties>
+
+<body>
+<section name="SpoolManager Configuration">
+<p>The SpoolManager is controlled by a single configuration block in the config.xml.
+The spoolmanager tag defines the boundaries of the configuration block. The behavior of
+the SpoolManager, most importantly the routing of mail messages through the processor tree,
+is controlled by this block.</p>
+
+<p>The spoolmanager tag has a few simple children. These are:</p>
+<ul>
+<li><strong>threads</strong> - This is a required positive integer element. It specifies
+the number of threads the SpoolManager will use to process messages in the spool. This
+parameter tends to substantially impact performance, so it is advisable to tune it in production
+configurations.</li>
+<li><strong>mailetpackages</strong> - This is a required container tag. It contains some number
+of <strong>mailetpackage</strong> children. The body of each of these <strong>mailetpackage</strong>
+elements is a Java package name. It is these packages that contain the classes to be instantiated
+as mailets.</li>
+<li><strong>matcherpackages</strong> - This is a required container tag. It contains some number
+of <strong>matcherpackage</strong> children. The body of each of these <strong>matcherpackage</strong>
+elements is a Java package name. It is these packages that contain the classes to be instantiated
+as matchers.</li>
+</ul>
+
+<p>The remaining SpoolManager configuration elements are complex enough to require a more in-depth
+discussion.</p>
+
+<subsection name="Processor Configuration">
+<p>In addition to the child elements discussed above, the SpoolManager tag can have several
+<strong>processor</strong> children. It is these tags and their children that define the processor tree
+for the SpoolManager.</p>
+<p>Each processor has a required attribute, <strong>name</strong>. The value of this attribute must be
+unique for each processor tag. The name of a processor is significant. Certain processors are required
+(specifically root and error). The name "ghost" is forbidden as a processor name, as it is used to denote
+a message that should not undergo any further processing.</p>
+<p>The James SpoolManager creates a correspondance between processor names and the "state" of a mail as defined
+in the Mailet API. Specifically, after each mailet processes a mail, the state of the message is examined. If
+the state has been changed, the message does not continue in the current processor. If the new state is "ghost"
+then processing of that message terminates completely. If the new state is anything else, the message is
+re-routed to the processor with the name matching the new state.</p>
+<p>The root processor is a required processor. All new messages that the SpoolManager finds on the spool are
+directed to this processor.</p>
+<p>The error processor is another required processor. Under certain circumstances James itself will redirect messages
+to the error processor. It is also the standard processor to which mailets redirect messages when an error
+condition is encountered.</p>
+<p>The transport and spam processors are two useful, but optional, processors that are included in the out of
+the box configuration. These processors include logic for actual mail delivery and spam handling respectively. More
+information on these processors can be found in the default config.xml.</p>
+<p>Each processor element has zero or more <strong>mailet</strong> child elements. Each of these elements describes a
+matcher/mailet pair. The ordering of the <strong>mailet</strong> children is crucial to the configuration, as
+it is the order in which pairs will be traversed in the processor.</p>
+<p>It is this <strong>mailet</strong> element that is at the core of the SpoolManager configuration.</p>
+</subsection>
+<subsection name="The Mailet Tag">
+<p>Consider the following simple <strong>mailet</strong> tag:</p>
+<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor"><br/>
+<processor>spam</processor><br/>
+</mailet><br/>
+<p>The mailet tag has two required attributes, <strong>match</strong> and <strong>class</strong>.</p>
+<p>The <strong>match</strong> attribute is set to the value of the specific Matcher class to be instantiated with a an
+optional argument. If present, the argument is separated from the Matcher class name by an '='. Semantic
+interpretation of the argument is left to the particular mailet.</p>
+<p>The <strong>class</strong> attribute is set to the value of the Mailet class that is to be instantiated.</p>
+<p>Finally, the children of the <strong>mailet</strong> tag define the configuration that is passed to the Mailet. The
+tags used in this section should have no attributes or children. The names and bodies of the elements will be passed to
+the mailet as (name, value) pairs.</p>
+<p>So in the example above, a Matcher instance of RemoteAddrNotInNetwork would be instantiated, and the value "127.0.0.1"
+would be passed to the matcher. The Mailet of the pair will be an instance of ToProcessor, and it will be passed the (name, value)
+pair of ("processor", "spam").</p>
+<p>James includes a number of pre-packaged Mailets and Matchers. A list of provided Mailets may be found
+<a href="provided_mailets_2_3.html">here</a>. A list of provided Matchers may be found <a href="provided_matchers_2_3.html">here</a>.</p>
+</subsection>
+</section>
+</body>
+</document>
Modified: james/server/trunk/src/xdocs/summary_2_3.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/xdocs/summary_2_3.xml?rev=419282&r1=419281&r2=419282&view=diff
==============================================================================
--- james/server/trunk/src/xdocs/summary_2_3.xml (original)
+++ james/server/trunk/src/xdocs/summary_2_3.xml Wed Jul 5 10:10:26 2006
@@ -58,7 +58,7 @@
<p>More information on configuring the NNTP service can be found <a href="nntp_configuration_2_3.html">here</a>.</p>
</section>
-<section name="FetchPOP">
+<section name="FetchMail">
<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
Added: james/server/trunk/src/xdocs/using_database_2_3.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/xdocs/using_database_2_3.xml?rev=419282&view=auto
==============================================================================
--- james/server/trunk/src/xdocs/using_database_2_3.xml (added)
+++ james/server/trunk/src/xdocs/using_database_2_3.xml Wed Jul 5 10:10:26 2006
@@ -0,0 +1,126 @@
+<?xml version="1.0"?>
+
+<document>
+
+ <properties>
+ <title>James 2.3 - Using a Database</title>
+ </properties>
+
+<body>
+<section name="Database Configuration">
+<p>James has the capacity to use a JDBC-compatible database for storage of both message and user
+data. This section explains how to configure James to utilize a database for storage.</p>
+<subsection name="Requirements">
+<p>Using James with a database backend has certain requirements. Database configuration is
+extremely vendor-specific, so we can only state the requirements in general terms.</p>
+<p>There must be a database instance accessible from the James server. An account with appropriate
+privileges (select, insert, delete into tables, and on initial startup creation of tables) and
+with sufficient quota for the data to be inserted into the database must be available. Also,
+since James will use JDBC to access the database, an appropriate JDBC driver must be
+available for installation.</p>
+<p>It is important to verify the functionality of the database before attempting to configure
+James to use it as a repository. This will help ensure that configuration issues are properly
+identified.</p>
+</subsection>
+<subsection name="Connection Configuration">
+<p>Configuring the Phoenix container to work with JDBC is the first step in enabling James database support.</p>
+<p>First, Phoenix must be able to load the JDBC classes. To make these classes available to Phoenix, place the
+jar/zip files for the JDBC driver in the lib subdirectory of the James installation directory. Any additional
+libraries upon which the JDBC library depends that are not part of the standard Java distribution should also be
+added to this directory.</p>
+<p>Please note that a MySQL driver is included as part of the James distribution and
+so there is no need to add such a driver to the lib directory.</p>
+<p>Second, the config.xml must be modified so that Phoenix initializes the database connections. The relevant
+configuration is in the database-connections block. The database-connections tag has only a single child tag,
+data-sources. This latter tag is a simple container tag for a number of child elements. It is these child
+elements, <strong>data-source</strong> elements, that define the database connections.</p>
+<p>Each <strong>data-source</strong> tag has a required attribute, <strong>name</strong>. This value
+must be unique to each <strong>data-source</strong> element. It is this <strong>name</strong> that will
+be used to specify the database connection in other parts of the config.xml file.</p>
+<p>The <strong>data-source</strong> element has five children, all of whom are required.
+<ul>
+<li><strong>driver</strong> - The class name of the database driver to be used.</li>
+<li><strong>dburl</strong> - The JDBC connection URL for your database/driver.</li>
+<li><strong>user</strong> - The user id of the database account to be used by this connection.</li>
+<li><strong>password</strong> - The password of the database account to be used by this connection.</li>
+<li><strong>max</strong> - The maximum number of JDBC connections to be used concurrently by this data-source.</li>
+</ul>
+</p>
+
+<p>Generally, you simply configure these entries in the config.xml
+file, which are commented, in order to use a database with James. You
+would then use the db: or dbfile: prefix instead of the file: prefix
+for a particular repository. You are currently free to mix and match
+your use of these different storage types for different repositories.
+See <a href="repositories_2_3.html">Repository Configuration</a> for
+more details. A sample configuration is described below.</p>
+
+</subsection>
+<subsection name="SQL Statement Configuration">
+<p>The precise SQL statements used by James to modify and view data stored in the database are specified in
+an external configuration file. The sqlResources.xml file
+(which can be found in the apps/james/conf directory) is a sample configuration file that contains the SQL
+statements used by James. The purpose of each of these statements, as well as the repository with which
+they are associated, is documented in situ.</p>
+
+<p>If you are using a SQL database with unusual SQL commands or data types, you may
+need to add special entries to this file. The James team
+does try to keep sqlResources.xml updated, so if you do run into a
+special case, please let us know.</p>
+
+<p>Also, if the database tables are not created a priori, but rather are to be created by James
+upon startup, special attention should be paid to the "create table" statements in this file. Such
+statements tend to be both very database and very database instance specific.</p>
+</subsection>
+<subsection name="Sample James Configuration">
+
+<p>The config.xml file has commented out examples for MySQL and
+MSSQL data sources, and for each of the standard repositories. For
+example, to use MySQL, you would uncomment and adjust the following
+data-source element.</p>
+
+<p>You must create the database, in this case named
+<strong>mail</strong>, the user, and assign the user privileges.
+You may create the tables before running James or, if you so choose, James
+will automatically create the tables it needs. In the latter case the user
+must have table creation privileges.</p>
+
+<source>
+<data-source name="maildb" class="org.apache.james.util.mordred.JdbcDataSource">
+ <driver>org.gjt.mm.mysql.Driver</driver>
+ <dburl>jdbc:mysql://127.0.0.1/mail</dburl>
+ <user>username</user>
+ <password>password</password>
+ <max>20</max>
+</data-source>
+</source>
+
+<p>Once the data-source element has been created, it can be referenced elsewhere in the config.xml
+file. For example, the following element tells James to use the maildb data-source and dbfile
+storage mechanism for the message spool:</p>
+
+<source>
+<spoolRepository>
+ <repository destinationURL="dbfile://maildb/spool/spool" type="SPOOL"/>
+</spoolRepository>
+</source>
+
+<p>The following element tells James to store mailboxes in a the maildb data-source:</p>
+
+<source>
+<inboxRepository>
+ <repository destinationURL="db://maildb/inbox/" type="MAIL"/>
+</inboxRepository>
+</source>
+
+<p>The configuration file contains further examples.</p>
+</subsection>
+<subsection name="Known Issues">
+<p>There are some vendor-specific subtleties in using databases with James that have been observed
+by some users. These issues (and methods to resolve them) are recorded on the
+<a href="FAQ.html">James FAQ</a> as they are reported. Please consult the FAQ if you encounter any
+difficulties.</p>
+</subsection>
+</section>
+</body>
+</document>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
Re: svn commit: r419282 - /james/server/trunk/src/xdocs/
Posted by Stefano Bagnara <ap...@bago.org>.
A big THANK YOU for this!
You know, no one want to work on documentation issue..
We have not found a good solution for the site generation spanning
multiple James version, but I think we can live with the current
solution for 2.3 and then find a different solution for 3.0.
I just committed a few small changes to the docs.
I readded 2.1/2.2 links to the main menu, so we can publish both
documentation for a while.
Stefano
norman@apache.org wrote:
> Author: norman
> Date: Wed Jul 5 10:10:26 2006
> New Revision: 419282
>
> URL: http://svn.apache.org/viewvc?rev=419282&view=rev
> Log:
> Updates on xdocs
>
> Added:
> james/server/trunk/src/xdocs/fetchmail_configuration_2_3.xml (with props)
> james/server/trunk/src/xdocs/remotemanager_configuration_2_3.xml
> james/server/trunk/src/xdocs/repositories_2_3.xml
> james/server/trunk/src/xdocs/serverwide_configuration_2_3.xml
> james/server/trunk/src/xdocs/smtp_auth_2_3.xml
> james/server/trunk/src/xdocs/smtp_configuration_2_3.xml
> james/server/trunk/src/xdocs/spoolmanager_2_3.xml
> james/server/trunk/src/xdocs/spoolmanager_configuration_2_3.xml
> james/server/trunk/src/xdocs/using_database_2_3.xml
> Modified:
> james/server/trunk/src/xdocs/documentation_2_3.xml
> james/server/trunk/src/xdocs/installation_instructions_2_3.xml
> james/server/trunk/src/xdocs/mailet_api_2_3.xml
> james/server/trunk/src/xdocs/summary_2_3.xml
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org