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>&lt;name&gt;</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>&lt;name&gt;</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>&lt;name&gt;</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>&lt;name&gt;</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>&lt;name&gt;</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 &lt;account&gt; </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>&lt;name&gt;</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 &lt;servet&gt; tag with some attributes:
           &lt;mailet match="[matchClass]=[matchParameters]"
                      class="[mailetClass]"&gt;.
       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 &lt;servername&gt;). </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>
           - &lt;mailet match="RecipientIsLocal"
                       class="LocalDelivery"&gt;
         </br>
         <br>
          - &lt;mailet match="UserIs=root &amp; HostIsLocal"
                       class="Forward"&gt;
         </br>
         <br>
          - &lt;mailet match="SenderIs=badBoy@myhost,badGirl@yourhost"
                       class="Null"&gt;
         </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>
          &lt;mailet match="SenderIs=badBoy@badhost" class="Null"&gt;
          &lt;/mailet&gt;
          </br>
      </blockquote>
      <b>Identity</b>
      <blockquote>
           Leave any incoming mail untoched.Sort of debug mailet
           (not really useful).
           No configuration needed.
              <br>
              &lt;mailet match="All" class="Identity"&gt;
              &lt;/mailet&gt;</br>
      </blockquote>
      <b>Forward</b>
      <blockquote>
              Replace the recipient list with recipient specified in
              configurations.<br>
              &lt;mailet match="RecipientIs=root@localhost"
              class="Forward"&gt;</br>
        <blockquote>
         <br>
                &lt;forwardto&gt; [EMAIL PROTECTED] &lt;/forwardto&gt;
         </br>
         <br>
                &lt;forwardto&gt; [EMAIL PROTECTED] &lt;/forwardto&gt;
         </br>
        </blockquote>
              &lt;/mailet&gt;
      </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>
          &lt;mailet match="RecipientIsLocal" class="ToProcessor"&gt;
        </br>
        <blockquote>
                &lt;processor&gt; localdelivery &lt;/processor&gt;
        </blockquote>
            &lt;/mailet&gt;
      </blockquote>
  
      <b>ServerTime</b>
      <blockquote>
        Replies to the sender with a short message with the current time.
        No configuration needed.
        <br>
          &lt;mailet match="RecipientIs=time@localhost" class="ServerTime"&gt;
        </br>
        &lt;/mailet&gt;
      </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>
          &lt;mailet match="RecipientIs=root@localhost"
                     class="ToRepository"&gt;
        </br>
        <blockquote>
          <br>
            &lt;repositoryPath&gt; file://../var/mail/logAdmin
                  &lt;/repositoryPath&gt;
          </br>
          <br>
            &lt;passThrough&gt; true &lt;/passThrough&gt; (default false)
          </br>
        </blockquote>
              &lt;/mailet&gt;
      </blockquote>
  
      <b>LocalDelivery</b>
      <blockquote>
        Store mail in the local inbox, one folder for each user.
        <br>
          &lt;mailet match="RecipientIsLocal" class="LocalDelivery"&gt;
        </br>
          &lt;/mailet&gt;
      </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>
            &lt;mailet match="!RecipientIsLocal" class="RemoteDelivery"&gt;
          </br>
        <blockquote>
          <br>
              &lt;delayTime&gt; 21600000 &lt;/delayTime&gt;
          </br>
          <br>
              &lt;maxRetries&gt; 5 &lt;/maxRetries&gt; 
          </br>
        </blockquote>
              &lt;/mailet&gt;
      </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 &lt;useTLS&gt;TRUE&lt;/useTLS&gt; 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://&lt;repositoryname&gt;@&lt;conndef-filename&gt;  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 &amp; 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]

Reply via email to