charlesb 01/05/21 05:13:27
Modified: . build.xml
src/xdocs index.xml
src/xdocs/stylesheets project.xml
Added: src/xdocs architecture_v1_2.xml configuration_v1_2.xml
usingLDAP_v1_2.xml usingTLS_v1_2.xml usingTown.xml
Removed: src/xdocs architecture1_2.xml configuration.xml
Log:
Translating docs to xml and cleaning up
Revision Changes Path
1.70 +19 -4 jakarta-james/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/jakarta-james/build.xml,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- build.xml 2001/05/21 09:48:51 1.69
+++ build.xml 2001/05/21 12:13:15 1.70
@@ -86,7 +86,8 @@
<property name="docs.dir" value="docs"/>
<property name="www.dir" value="www"/>
<property name="javadocs.dir" value="${docs.dir}/api"/>
-
+ <property name="mailetdocs.dir" value="${docs.dir}/mailet"/>
+ <property name="rfcs.dir" value="${docs.dir}/rfclist"/>
<property name="dist.name" value="${name}-${version}"/>
<property name="constants.file" value="org/apache/james/Constants.java"/>
@@ -540,8 +541,20 @@
</copy>
</target>
+
+ <!--
+ ===================================================================
+ Create the Local documentation
+ ===================================================================
+ -->
+ <target name="local-docs" depends="local-javadocs,local-xdocs,javadocmailet">
+
+ <copy todir="${mailetdocs.dir}">
+ <fileset dir="${build.mailetdocs}" />
+ </copy>
+
+ </target>
- <target name="local-docs" depends="local-javadocs,local-xdocs"/>
<!--
===================================================================
@@ -552,10 +565,11 @@
<!-- delete old documents but keep CVS directories, rfclist and mailet
api -->
- <!-- note that by doing an include the defaultexcludes (CVS dirs) will be kept
-->
<delete>
<fileset dir="${www.dir}">
- <include name="*"/>
+ <exclude name="CVS/**"/>
+ <exclude name="rfclist/**"/>
+ <exclude name="mailet/**"/>
</fileset>
</delete>
@@ -567,6 +581,7 @@
<exclude name="api/**"/>
<exclude name="rfclist/**"/>
<exclude name="CVS/**"/>
+ <exclude name="mailet/**"/>
</fileset>
</copy>
1.2 +1 -1 jakarta-james/src/xdocs/index.xml
Index: index.xml
===================================================================
RCS file: /home/cvs/jakarta-james/src/xdocs/index.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- index.xml 2001/05/15 16:47:22 1.1
+++ index.xml 2001/05/21 12:13:21 1.2
@@ -40,7 +40,7 @@
systems. Examples of the services a Mailet might provide include: a
mail-to-fax or mail-to-phone transformer, a filter, a language translator, a
mailling
list manager, etc. Several Mailets are included in the JAMES
- distribution (see <a href="configuration.html">Configuration</a>).</p>
+ distribution (see <a href="configuration_v1_2.html">Configuration</a>).</p>
<p><i><b>Resource abstraction</b></i> Like protocols, resources are abstracted
and,
accessed through defined interfaces (JavaMail for transport, JDBC for
spool storage or user accounts in RDBMS's, Apache Mailet API). The server is
1.1 jakarta-james/src/xdocs/architecture_v1_2.xml
Index: architecture_v1_2.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<title>James 1.2 - Notes for developers</title>
<author email="[EMAIL PROTECTED]">Charles Benett</author>
</properties>
<body>
<section name="Architecture">
<p>
JAMES is a multi-protocol message processing and storage engine. JAMES
currently consists of:
<ul>
<li> two mail prototcol servers (SMTP and POP3),</li>
<li> a remote administration server,</li>
<li> a mail processing engine that supports the Mailet API</li>
<li> file-system message storage and a message storage interface
to RDBMS's</li>
<li> file-system user record storage and an experimental interface
to LDAP directories</li>
<li> beta support for TLS (SSL) for POP3 and remote administration</li>
</ul>
</p>
<p>
JAMES is built on top of Avalon, the Java Apache Server Framework.
Versions 1.1 and 1.2 of James use a slightly older version of Avalon,
specifically the <code>avalon-james-1-1b1</code> branch. We intend to
migrate to the new Avalon in the near future.</p>
</section>
</body>
</document>
1.1 jakarta-james/src/xdocs/configuration_v1_2.xml
Index: configuration_v1_2.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<title>Configuration for James 1.2.1</title>
<author email="[EMAIL PROTECTED]">Serge Knystautas</author>
</properties>
<body>
<section name="Configuration">
<p>
<blockquote>
<p>This document explains the JAMES.conf.xml file for James 1.2.1
<br>JAMES 1.2.1 is currently based on an older version of Avalon,
specifically the <code>avalon-james-1-1b1</code> branch in CVS.
</br>
</p>
</blockquote>
</p>
</section>
<section name="James Server Configuration">
<subsection name="James Configuration">
<p>
These tag elements control the JAMES spooling and identification
settings.
</p>
<table border="1">
<tr>
<th><name></th>
<th>default value</th>
<th>meaning</th>
</tr>
<tr>
<td> postmaster </td>
<td> Postmaster@localhost </td>
<td> Is the source of error replies and the email users will mail to for
any problem. You
should change this to an address that can receive incoming messages.</td>
</tr>
<tr>
<td> helloName</td>
<td> attribute autodetect=TRUE and value of 'myMailServer' </td>
<td> The name by which James will identify itself in SMTP and POP3
greetings. If autodetect is TRUE James will attempt to detect
automatically the name, failing which it will use 'localhost'. If
autodetect is not TRUE, James will use the specified name or
'localhost' if none is specified. Look in jamesinfo.log for
lines like "[...] Local host is: [servername] and [...] Hello Name is:
[machine name]"</td>
</tr>
<tr>
<td> servernames/servername</td>
<td> attribute autodetect=TRUE and last value of 'localhost'</td>
<td> A list of host names James will consider as local. Any user
[user]@[servername]
will be considered to be local. If autodetect is TRUE James will attempt
to detect
automatically the name and use any names specified. Look in
jamesinfo.log for a line like "[...] Handling mail for:: [domain/host]"</td>
</tr>
<tr>
<td> spoolRepository </td>
<td> file://../var/mail/spool/ </td>
<td> This is the path where incoming messages are stored before beeing
processed. </td>
</tr>
<tr>
<td> inboxRepository </td>
<td> file://../var/mail/localinbox/ </td>
<td> This is the root for local users inbox. Each user will have a
personal folder
[inboxRepository]/[user] </td>
</tr>
<tr>
<td> spoolmanagerthreads </td>
<td> 1 </td>
<td> This is the number of thread that work polling mails from the spool
and take care
of processing them. </td>
</tr>
</table>
</subsection>
<subsection name="SMTP Server Configuration">
<p>
These tag elements affect the SMTP listener (for incoming messages).
</p>
<table border="1">
<tr>
<th><name></th>
<th>default value</th>
<th>meaning</th>
</tr>
<tr>
<td> port </td>
<td> 25 </td>
<td> The port we are listening to. </td>
</tr>
<tr>
<td> bind </td>
<td> N.A. </td>
<td> Specific IP addresses that you wish to bind this service to. </td>
</tr>
<tr>
<td> smtphandler </td>
<td> N.A. </td>
<td> Parent for all SMTPHandler configuations. </td>
</tr>
<tr>
<td> connectiontimeout </td>
<td> 120000 </td>
<td> If nothing is received from an open connection for more than
{timeout] mills
the connection is closed. </td>
</tr>
</table>
</subsection>
<subsection name="POP3 Server Configuration">
<p>
These tag elements affect the POP3 server (for message retrieval)
</p>
<table border="1">
<tr>
<th><name></th>
<th>default value</th>
<th>meaning</th>
</tr>
<tr>
<td> port </td>
<td> 110 </td>
<td> The port we are listening to. </td>
</tr>
<tr>
<td> bind </td>
<td> N.A. </td>
<td> Specific IP addresses that you wish to bind this service to. </td>
</tr>
<tr>
<td> useTLS </td>
<td> false </td>
<td> Whether you wish to require/use TLS (SSL) on this port. </td>
</tr>
<tr>
<td> pop3handler </td>
<td> N.A. </td>
<td> Parent for all POP3Handler configuations. </td>
</tr>
<tr>
<td> connectiontimeout </td>
<td> 120000 </td>
<td> If nothing is received from an open connection for more than
{timeout] mills
the connection is closed. </td>
</tr>
</table>
</subsection>
<subsection name="Users Manager Configuration">
<p>
These tag elements affect the configuration of the list of local users.
</p>
<table border="1">
<tr>
<th><name></th>
<th>default value</th>
<th>meaning</th>
</tr>
<tr>
<td> repository </td>
<td> file://../var/users/ </td>
<td> The path where local mail account informations are stored. </td>
</tr>
</table>
</subsection>
<subsection name="Remote Manager Configuration">
<p>
These tag elements affect the remote manager, a telnet based utility
to manage the User Manager.
</p>
<table border="1">
<tr>
<th><name></th>
<th>default value</th>
<th>meaning</th>
</tr>
<tr>
<td> port </td>
<td> 4555 </td>
<td> The port we are listening to. </td>
</tr>
<tr>
<td> bind </td>
<td> N.A. </td>
<td> Specific IP addresses that you wish to bind this service to. </td>
</tr>
<tr>
<td> useTLS </td>
<td> false </td>
<td> Whether you wish to require/use TLS (SSL) on this port. </td>
</tr>
<tr>
<td> administrator_accounts </td>
<td> N.A. </td>
<td> The parent of <account> </td>
</tr>
<tr>
<td> account </td>
<td> login="root" password="root" </td>
<td> A list of root account to administer JAMES. </td>
</tr>
<tr>
<td> connectiontimeout </td>
<td> 120000 </td>
<td> If nothing is received from an open connection for more than
{timeout] mills</td>
</tr>
</table>
</subsection>
<subsection name="Transport Configuration">
<p>
These tag elements affect SMTP remote delivery, specifically, DNS
lookup functionality.
</p>
<table border="1">
<tr>
<th><name></th>
<th>default value</th>
<th>meaning</th>
</tr>
<tr>
<td> dnsServer/servers/server </td>
<td> N.A. </td>
<td> This is a list of DNS to resolve external address. </td>
</tr>
<tr>
<td> authoritative </td>
<td> false </td>
<td> Whether to require authoritative (non-cached) DNS records. Should
always be false
unless you understand the implications. </td>
</tr>
<tr>
<td> repository </td>
<td> file://../var/mail/delayed/ </td>
<td> This is a temp repository path shared with the name of
"TMP_REPOSITORY".
It is used by the RemoteDelivery Mailet to store mail for futher
delivery.
(Note: this is not very elegant and will probally change soon) </td>
</tr>
<tr>
<td> mailets </td>
<td> rootpath="org.apache.james.transport.mailets." </td>
<td> This is the parent node for all mailet configurations. The rootpath
specify
where mailet repository is. (Note: need to plug more than one
repository) </td>
</tr>
</table>
</subsection>
</section>
<section name="The Mailet processor pipeline">
<p>
This is James sitemap. It defines how each incoming mail will be
processed. Incoming mails begins their process at the first mailet in the
pipe. Each step is described by a <servet> tag with some attributes:
<mailet match="[matchClass]=[matchParameters]"
class="[mailetClass]">.
The Match class split the mail into two: one with all recipients matching
conditions and the other with all recipient not matching. All information
in the mail except recipients cloned so bot matching and not matching are
identical (again except recipients). The matching mail will be passed to
the specified mailet for processing. After processing both mails, the
untoched not matching and the processed matching, goes to next step in
pipe. Some mailet will not return anything after process. The Null mailet
for example will simply destroy any incoming mail or the RemoteDelivery
since after delivery the mail needs no more processing.
</p>
<subsection name="Matches">
<p>
The Match interface defines how match class should work. Their work is
to split a Vector of recipients into two: the ones matching a specified
condition and all others. Condition may or may not be present. You can
make one simple boolean operation merging two matches into one or you
can write your own class implementing the Match interface.
Currently implemented match:
</p>
<table border="1">
<tr>
<th>class name</th>
<th>parameter</th>
<th>action</th>
<th>example</th>
</tr>
<tr>
<td> All </td>
<td> none </td>
<td> match all recipients. </td>
<td> match="All" </td>
</tr>
<tr>
<td> HostIs </td>
<td> comma separated list of hosts names </td>
<td> match all recipient belonging to one of the specified hosts </td>
<td> match="HostIs=myHost.mydom.org,yourHost" </td>
</tr>
<tr>
<td> RecipientIs </td>
<td> comma separated list of recipients </td>
<td> match all recipients defined in condition. </td>
<td> match="RecipientIs=root@localhost,admin@localhost" </td>
</tr>
<tr>
<td> UserIs </td>
<td> comma separated list of accounts </td>
<td> match all recipients defined in condition regardless of host. </td>
<td> match="UserIs=root,admin" </td>
</tr>
<tr>
<td> HostIsLocal </td>
<td> none </td>
<td> check recipients's hosts against the list of host names set in
configuration for localhost
(see <servername>). </td>
<td> match="HostIsLocal" </td>
</tr>
<tr>
<td> RecipientIsLocal </td>
<td> none </td>
<td> match recipient which host is local (see HostIsLocal) and that are
recognized by the
Users Manager to be local accounts. </td>
<td> match="RecipientIsLocal" </td>
</tr>
<tr>
<td> SenderIs </td>
<td> comma separated list of address. </td>
<td> match all recipients if sender is in the condition string, else
match none. </td>
<td> match="SenderIs=badBay@badhost" </td>
</tr>
<tr>
<td> RelayLimit </td>
<td> Maximum number of hops. </td>
<td> match all recipients if the message has more than the specified
number of SMTP hops.
Important to prevent race conditions in SMTP delivery.
</td>
<td> match="RelayLimit=30" </td>
</tr>
<tr>
<td> SubjectIs </td>
<td> comma separated list of address. </td>
<td> match all recipients if the subject is equal to the condition
string, else match none. </td>
<td> match="SubjectIs=REMOVE" </td>
</tr>
<tr>
<td> SubjectStartsWith </td>
<td> comma separated list of address. </td>
<td> match all recipients if the subject starts with the condition
string, else match none. </td>
<td> match="SubjectStartsWith: [ADV]" </td>
</tr>
</table>
<p>
Some examples:
<br>
- <mailet match="RecipientIsLocal"
class="LocalDelivery">
</br>
<br>
- <mailet match="UserIs=root & HostIsLocal"
class="Forward">
</br>
<br>
- <mailet match="SenderIs=badBoy@myhost,badGirl@yourhost"
class="Null">
</br>
</p>
</subsection>
<subsection name="Mailet">
<p>
Mailet are the ones performing a process on a message. They are
provided with a Mail object on which thy can perform any kind of task
and they reply with another Mail object containing the response. Wise
use of mailet allow to write any mail based application as http
application using mailet. Simple mailet provides basic mail
functionality like mail forwarding, mailing list, "I'm on vacation"
message, mail logging etc. As simply as these mailet, you can write
and deploy your own mailet to perform any kind of task.
<br>
Here you are some mailet samples with their configuration:
</br>
</p>
<b>Null</b>
<blockquote>
Destroy any incoming mail. No configuration needed.
<br>
<mailet match="SenderIs=badBoy@badhost" class="Null">
</mailet>
</br>
</blockquote>
<b>Identity</b>
<blockquote>
Leave any incoming mail untoched.Sort of debug mailet
(not really useful).
No configuration needed.
<br>
<mailet match="All" class="Identity">
</mailet></br>
</blockquote>
<b>Forward</b>
<blockquote>
Replace the recipient list with recipient specified in
configurations.<br>
<mailet match="RecipientIs=root@localhost"
class="Forward"></br>
<blockquote>
<br>
<forwardto> [EMAIL PROTECTED] </forwardto>
</br>
<br>
<forwardto> [EMAIL PROTECTED] </forwardto>
</br>
</blockquote>
</mailet>
</blockquote>
<b>ToProcessor</b>
<blockquote>
Sends the incoming mail object to a new processor pipeline.
<code>root</code> and <code>error</code> are special processors that
should always be defined.
<br>
<mailet match="RecipientIsLocal" class="ToProcessor">
</br>
<blockquote>
<processor> localdelivery </processor>
</blockquote>
</mailet>
</blockquote>
<b>ServerTime</b>
<blockquote>
Replies to the sender with a short message with the current time.
No configuration needed.
<br>
<mailet match="RecipientIs=time@localhost" class="ServerTime">
</br>
</mailet>
</blockquote>
<b>ToRepository</b>
<blockquote>
Stores mails in the specified MailRepository. Useful for mail logging
etc. If the passThrough is false the mail will be destroyed, if true
it will be returned untouched to the pipe.
<br>
<mailet match="RecipientIs=root@localhost"
class="ToRepository">
</br>
<blockquote>
<br>
<repositoryPath> file://../var/mail/logAdmin
</repositoryPath>
</br>
<br>
<passThrough> true </passThrough> (default false)
</br>
</blockquote>
</mailet>
</blockquote>
<b>LocalDelivery</b>
<blockquote>
Store mail in the local inbox, one folder for each user.
<br>
<mailet match="RecipientIsLocal" class="LocalDelivery">
</br>
</mailet>
</blockquote>
<b>RemoteDelivery</b>
<blockquote>
Realy mails to remote hosts. "delayTime" is the time in mills the
mailet will wait
before retrying sending a mail which fail at first time.
"maxRetries" is the number of
retries before sending back to sender the mail.
<br>
<mailet match="!RecipientIsLocal" class="RemoteDelivery">
</br>
<blockquote>
<br>
<delayTime> 21600000 </delayTime>
</br>
<br>
<maxRetries> 5 </maxRetries>
</br>
</blockquote>
</mailet>
</blockquote>
</subsection>
</section>
</body>
</document>
1.1 jakarta-james/src/xdocs/usingLDAP_v1_2.xml
Index: usingLDAP_v1_2.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<title>James 1.2.1 - Using LDAP</title>
<author email="[EMAIL PROTECTED]">Charles Benett</author>
</properties>
<body>
<section name="James 1.2 - Using an LDAP Directory as a Users Repository">
<p>
This document explains how to enable JAMES to use an LDAP directory as a
Users Repository.
</p>
</section>
<section name="Summary">
<p>
We have tried to make the LDAP implementation of UsersRepository as
flexible a possible, recognising that each installation will have a unique
directory schema.
<br>We assume that all users that a James Mailserver will handle fall
within one single-rooted tree. The root of this tree, ie the lowest node
in the directory which is an ancestor for all users served by this
mailserver and the mailserver, is called the LDAPRoot. (See diagram)
</br>
<br>It is entirely possible that an organization may have more than one
mail server. Consequently, the fact that a user is in the Directory does
not imply that this mailserver should handle mail for them.
</br>
<br>This implementation of UsersRepository creates one node (object) for
each set of mail users. The set called 'LocalUsers' is the set of users
whose mail is handled by this server. Other sets include any mail-lists
handled by the server. Each member of a set is recorded as an attribute
of these objects. These nodes are child nodes of the mailserver.
</br>
<br>The mailserver will accept mail for local delivery if the user part of
the email address matches a member of LocalUsers and if the domain/host
part of the email address matches the first servername .
(Set servernames autodetect to false and enter the domain served as the
first servername, e.g. apache.org).
</br>
<br>For POP3 authentication, the mailserver first finds the user entry in
the directory, underLDAPRoot, whose attribute, specified as
MailAttribute in conf, matches user@domain. The mailserver authenticates
the POP3 user if it can bind to the directory as that user entry with
the offered password.
</br>
<br>
This implementation does not set passwords in the directory. Use a dummy
password when invoking adduser in RemoteManger.
</br>
<br>
If ManageGroupAttribute is set to TRUE (as it is by default), then the
RemoteManger will add/remove the full DN of the email group to/from the
user entry. This facilty allows users to ask the directory what is my
mailserver and what email lists am I subscribed to?
</br>
</p>
<table cellspacing="0">
<tr>
<td> </td>
<td align="center">Root of Directory
<br>Example: dc=org</br>
<br>May not be referenced in conf.xml</br>
<br>|</br>
<br>|</br>
</td>
<td> </td>
</tr>
<tr>
<td colspan="3"
align="center">-------------------------------------------------------------------------------------------------</td>
</tr>
<tr>
<td align="center" valign="top">|
<br>Subtree not served by James</br>
<br> e.g.: dc=w3c, dc=org</br>
</td>
<td align="center" valign="top">|
<br>Subtree served by James</br>
<br> e.g.: dc=apache, dc=org </br>
<br>"LDAPRoot"</br>
<br>|</br>
</td>
<td align="center" valign="top">|
<br>Subtree not served by James</br>
<br> e.g.: dc=xml, dc=org</br>
</td>
</tr>
<tr>
<td> </td>
<td>
<table cellspace="0">
<tr>
<td colspan="4"
align="center">----------------------------------------------------</td>
</tr>
<tr>
<td align="center" valign="top">|
<br>This mailserver </br>
<br>cn=mailserver.apache.org</br>
<br>|</br>
<br>---------------</br>
</td>
<td align="center" valign="top">|
<br>A user </br>
<br>cn=King Arthur</br>
<br> memberOfGroup=</br>
<br>cn=LocalUsers etc</br>
</td>
<td align="center" valign="top">|
<br>A user </br>
<br>cn=Morgan LeFay </br>
</td>
<td align="center" valign="top">|
<br>Another mailserver </br>
<br>cn=oldmail.apache.org</br>
</td>
</tr>
<tr>
<td>
<table cellspace="0">
<tr>
<td align="center" valign="top"> |
<br>LocalUsers</br>
<br>member=Arthur</br>
</td>
<td align="center" valign="top"> |
<br>list-james</br>
<br>member=Arthur</br>
</td>
</tr>
</table>
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</td>
<td> </td>
</tr>
</table>
</section>
<section name="Installation">
<p>
Six entries in JAMES.conf.xml must be set for this to work:
<ul>
<li>change usersManager - type to ldap.</li>
<li>Set the ldapServer element to point to the correct host and port</li>
<li>Set LDAPRoot and ThsServerRDN.</li>
<li>Set the direcory FDN and password that should be used to write to the
directory.</li>
<li>Unless all your users have email addresses of the form,
name@the-machine-running-James, set servernames-autodetect to false and apecify the
your email domain as the first servername.</li>
</ul>
</p>
</section>
</body>
</document>
1.1 jakarta-james/src/xdocs/usingTLS_v1_2.xml
Index: usingTLS_v1_2.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<title>James 1.2.1 - Using TLS</title>
<author email="[EMAIL PROTECTED]">Charles Benett</author>
</properties>
<body>
<section name="James 1.2.1 - Using TLS">
<p>
This document explains how to enable JAMES 1.2.1 to use Transport Layer
Security (TLS) (ie SSL).
</p>
</section>
<section name="Obtain JSSE">
<p>
Obtain JSSE source from java.sun.com. Follow their installation directions.
We assume that you install JSSE as a standard extension, with a static
provider definition. (See notes with JSSE distribution)
</p>
<p>
Note that the US export restrictions still apply to JSSE
(at version 1.0.2), so while both the international and domestic versions
offer the same level of crypto, the international version does not take
alternative providers.
</p>
</section>
<section name="Enable TLS">
<p>
Using JAMES with TLS. You need to do three things over and above the
normal operation of James:
<ul>
<li>In Avalon.conf.xml, uncomment the TLS listener defintion.</li>
<li>In JAMES.conf.xml, uncomment the <useTLS>TRUE</useTLS> element
for the service you want to use TLS. It is currently available for
remote manager and POP3. (If using POP3 over TLS, it is probably best
to change port to 995, which is the IANA designated POP3S port).</li>
<li> Ensure that avalonTestKeys is in the conf directory. You may need
to manually extract this from the Avalon.jar (with: jar xvf Avalon.jar
conf/avalonTestKeys). Note that this is a self-signed certificate for
test purposes only. You can specify a different server certificate in
the Avalon.conf.xml file.</li>
</ul>
</p>
<p>
Start James
</p>
</section>
<section name="Verify TLS-enabled JAMES">
<p>
(Positive Test) Use an SSL client to open a socket to the appropriate port.
I used openssl from www.openssl.org to test this.
E.g. openssl s_client -connect localhost:4555. You should see the normal
remote manager or POP3 server greeting and have normal operation.
<br>
- If, using openssl s_client, you get a connection refused/ error no
111, just try again. This probably means you got to the port before it
was ready.
</br>
</p>
<p>
(Negative Test) telnet to port 4555 (ie without SSL). This should hang the
telnet client. It should also lock port 4555 until the connection timesout,
I think.
</p>
</section>
</body>
</document>
1.1 jakarta-james/src/xdocs/usingTown.xml
Index: usingTown.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<title>James 1.2.1 - RDBMS support via Town</title>
<author email="[EMAIL PROTECTED]">Serge Knystautas</author>
</properties>
<body>
<section name="James 1.2.1 - RDBMS support via Town">
<p>
This document explains how to enable JAMES to use a database to store mail
messages for spools, user accounts, and other usages.
</p>
</section>
<section name="Obtain a JDBC driver">
<p>
Obtain a suitable JDBC driver for a suitable vendor. A non-production
grade JDBC-ODBC is included in the JDK, and many commercial and free
drivers are available. See
<a
href="http://java.sun.com/products/jdbc/drivers/">http://java.sun.com/products/jdbc/drivers/</a>
for a list of suitable drivers. JAMES uses the Town library
(<a
href="http://www.working-dogs.com/town/">http://www.working-dogs.com/town/</a>)
to access a database, and you can use any JDBC 1.X or greater compliant
database driver. Town also handles connection pooling.
</p>
<p>
Note that as JAMES will repeatedly send large amounts of text and binary
across this driver, we recommend production grade drivers whenever
possible.
</p>
</section>
<section name="Define a database connection">
<p>
In the <i>var</i> directory of the JAMES distribution, you will find
several sample database connection definition files. These are sample
Properties files that define the necessary information to connect to a
database. You may either rename one of these to <i>maildatabase</i>, or
you may create your own database connection definition file. Important
properties to set are the driver classname, the JDBC URL, and the username
and password.
</p>
</section>
<section name="Create a table in your database">
<p>
JAMES expects to use a table named "Message" in whatever database you've
specified. Sample SQL scripts to create this table in SQL Server and
MySQL are available in this docs directory. If you are using another
database, you can hopefully see the necessary structure and can create it
for your database. Please submit these to us! (we'll include them in
future distributions)
</p>
</section>
<section name="Enable a Database Mail Repository">
<p>
After the bootstrap startup, when you edit the JAMES.conf.xml file, you
will see several places that specify a mail or spool repository.
Commented out next to several of these entries are alternate settings to
use the database connection definition defined above.
</p>
<p>
The format of the URL to use the database mail or spool repository is
town://<repositoryname>@<conndef-filename> The alternate
settings for the database repository expect the filename to be
<i>maildatabase</i>, which is why above we recommended you rename it.
</p>
</section>
<section name="Verify JAMES establishes a database connection">
<p>
In the bin directory where run.bat and run.sh (or whatever directory you
were in when you started JAMES), you should see a file named something
like DCB_970616938320.log. If this file does not exist, JAMES was unable
to find the connection definition file or it was unable to find the
database driver.
</p>
<p>
Open this file, and you will see the server's attempt to connect to the
server. If successful, you will see the log shows one or two open
connections were established. If you are seeing repeated attempts to
reconnect to the database, either the JDBC URL is incorrect, or the
username and password are incorrect.
</p>
</section>
</body>
</document>
1.2 +45 -13 jakarta-james/src/xdocs/stylesheets/project.xml
Index: project.xml
===================================================================
RCS file: /home/cvs/jakarta-james/src/xdocs/stylesheets/project.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- project.xml 2001/05/15 16:47:32 1.1
+++ project.xml 2001/05/21 12:13:25 1.2
@@ -2,25 +2,57 @@
<project name="JAMES"
href="http://jakarta.apache.org/james/">
- <title>The Jakarta Site</title>
+ <title>The Jakarta James Site</title>
<logo href="/images/james-logo.jpg">JAMES - Java Apache Mail Enterprise
Server</logo>
<body>
- <menu name="About">
- <item name="Overview" href="/index.html"/>
- <item name="Install" href="/install.html"/>
- <item name="Mailets Concept" href="/mailets.html"/>
-<!-- <item name="Architecture" href="/architecture.html"/> -->
- <item name="Coding Standards" href="/code-standards.html"/>
- <item name="License" href="/license.html"/>
- <item name="TODO" href="/todo.html"/>
+ <menu name="James">
+ <item name="Overview" href="/index.html"/>
+ <item name="Install" href="/install.html"/>
+ <item name="Configuration" href="/configuration_v1_2.html"/>
+<!-- <item name="Mailets Concept" href="/mailets.html"/> -->
+ <item name="Architecture" href="/architecture_v1_2.html"/>
+ <item name="Coding Standards" href="/code-standards.html"/>
+ <item name="License" href="/license.html"/>
+ <item name="TODO" href="/todo.html"/>
</menu>
+ <menu name="Download">
+ <item name="Binaries" href="/site/binindex.html"/>
+ <item name="Source Code" href="/site/sourceindex.html"/>
+ </menu>
+
<menu name="Guides">
- <item name="Mailet API" href="/javadoc/mailet/index.html"/>
- <item name="Using LDAP" href="/usingLDAP.html"/>
-<!-- <item name="Bundled Mailets" href="/mailet_list.html"/>
- <item name="Bundled Matchers" href="/matcher_list.html"/> -->
+ <item name="Mailet API" href="/mailet/index.html"/>
+ <item name="Using LDAP" href="/usingLDAP_v1_2.html"/>
+ <item name="Using RDBMS" href="/usingTown.html"/>
+ <item name="Using TLS" href="/usingTLS_v1_2.html"/>
+<!-- <item name="Bundled Mailets" href="/mailet_list.html"/> -->
+ <item name="List Servers" href="/listservs.html"/>
+ <item name="Bundled Matchers" href="/matchers.html"/>
+ <item name="Useful RFCs" href="http://jakarta.apache.org/james/rfclist"/>
+
+ </menu>
+
+ <menu name="Get Involved">
+ <item name="Overview" href="/site/getinvolved.html"/>
+ <item name="CVS Repositories" href="/site/cvsindex.html"/>
+ <item name="Mailing Lists" href="/site/mail.html"/>
+ <item name="Reference Library" href="/site/library.html"/>
+ <item name="Bug Database" href="/site/bugs.html"/>
+ </menu>
+
+ <menu name="Jakarta Essentials {web}">
+ <item name="Front Page"
href="http://jakarta.apache.org/index.html"/>
+ <item name="News & Status" href="/site/news.html"/>
+ <item name="Mission" href="/site/mission.html"/>
+ <item name="Guidelines Notes" href="/site/guidelines.html"/>
+ <item name="FAQs" href="/site/faqs.html"/>
+ </menu>
+
+ <menu name="Related Projects {web}">
+ <item name="Ant"
href="http://jakarta.apache.org/ant/index.html"/>
+ <item name="Avalon"
href="http://jakarta.apache.org/avalon/index.html"/>
</menu>
</body>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]