<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">










<html>
  <head>
    <title>James Server - 
  Installation</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
          <meta name="author" content="
Serge Knystautas" />
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
      </head>
  <body class="composite">
    <div id="banner">
                  <a href="http://james.apache.org/index.html" id="bannerLeft">
    
                                            <img src="images/james-server-logo.gif" alt="" />
    
            </a>
                        <a href="http://www.apache.org/index.html" id="bannerRight">
    
                                            <img src="images/asf-logo-reduced.gif" alt="" />
    
            </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
          
  

  
    
  
  
            <div class="xleft">
        Last Published: 05/28/2009
                      </div>
            <div class="xright">      <a href="../../index.html">JAMES Project</a>
          |
          <a href="../../server/index.html">Server</a>
          |
          <a href="../../mailet/index.html">Mailets</a>
          |
          <a href="../../jspf/index.html">jSPF</a>
          |
          <a href="../../mime4j/index.html">Mime4J</a>
          |
          <a href="../../jsieve/index.html">JSieve</a>
          |
          <a href="../../postage/index.html">Postage</a>
          
  

  
    
  
  
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
           
  

  
    
  
  
                   <h5>James Server</h5>
        <ul>
              
    <li class="none">
              <a href="../index.html">Overview</a>
        </li>
              
    <li class="none">
              <a href="../design_objectives.html">Objectives</a>
        </li>
              
          
              
      
              
        <li class="expanded">
              <a href="../FAQ.html">James FAQ</a>
                <ul>
                  
    <li class="none">
              <a href="../james_and_sendmail.html">James and Sendmail</a>
        </li>
              </ul>
        </li>
              
    <li class="none">
              <a href="http://wiki.apache.org/james">Wiki</a>
        </li>
              
    <li class="none">
              <a href="../rfclist.html">Useful RFCs</a>
        </li>
          </ul>
          <h5>Overview</h5>
        <ul>
              
    <li class="none">
              <a href="index.html">Introduction</a>
        </li>
              
    <li class="none">
              <a href="release-notes.html">Release Notes</a>
        </li>
              
    <li class="none">
              <a href="jira-report.html">Changes</a>
        </li>
          </ul>
          <h5>Concepts</h5>
        <ul>
              
    <li class="none">
              <a href="summary.html">Summary</a>
        </li>
              
    <li class="none">
              <a href="spoolmanager.html">SpoolManager</a>
        </li>
              
    <li class="none">
              <a href="repositories.html">Repositories</a>
        </li>
              
    <li class="none">
              <a href="mailet_api.html">The Mailet API</a>
        </li>
          </ul>
          <h5>How to...</h5>
        <ul>
              
    <li class="none">
              <a href="build_instructions.html">Build James</a>
        </li>
              
    <li class="none">
              <a href="installation_instructions.html">Install James</a>
        </li>
          </ul>
          <h5>Mailets</h5>
        <ul>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/index.html">Overview</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/api/index.html">API</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/base/index.html">Basic Toolkit</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/crypto/index.html">Crypto</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/standard/index.html">Sieve</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/maven-mailetdocs-plugin/index.html">MailetDocs</a>
        </li>
              
    <li class="none">
              <a href="james-server-mailets-function/mailet-report.html">Server</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/standard/index.html">Standard</a>
        </li>
          </ul>
          <h5>Configuration</h5>
        <ul>
              
    <li class="none">
              <a href="dns_configuration.html">DNS Server</a>
        </li>
              
    <li class="none">
              <a href="pop3_configuration.html">POP3 Server</a>
        </li>
              
    <li class="none">
              <a href="smtp_configuration.html">SMTP Server</a>
        </li>
              
    <li class="none">
              <a href="nntp_configuration.html">NNTP Server</a>
        </li>
              
    <li class="none">
              <a href="fetchmail_configuration.html">FetchMail</a>
        </li>
              
    <li class="none">
              <a href="remotemanager_configuration.html">RemoteManager</a>
        </li>
              
    <li class="none">
              <a href="spoolmanager_configuration.html">SpoolManager</a>
        </li>
              
    <li class="none">
              <a href="serverwide_configuration.html">Server-wide</a>
        </li>
              
    <li class="none">
              <a href="adding_users.html">Adding Users</a>
        </li>
              
    <li class="none">
              <a href="provided_matchers.html">Provided Matchers</a>
        </li>
              
    <li class="none">
              <a href="provided_mailets.html">Provided Mailets</a>
        </li>
          </ul>
          <h5>Common Configurations</h5>
        <ul>
              
    <li class="none">
              <a href="smtp_auth.html">Using SMTP AUTH</a>
        </li>
              
    <li class="none">
              <a href="using_database.html">Using a Database with James</a>
        </li>
              
    <li class="none">
              <a href="usingTLS.html">Using TLS/SSL</a>
        </li>
              
    <li class="none">
              <a href="mailing_lists.html">Creating Mailing Lists</a>
        </li>
          </ul>
          <h5>Customization</h5>
        <ul>
              
    <li class="none">
              <a href="custom_matcher.html">How to write a custom Matcher</a>
        </li>
              
    <li class="none">
              <a href="custom_mailet.html">How to write a custom Mailet</a>
        </li>
          </ul>
          <h5>Project Documentation</h5>
        <ul>
              
                
              
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
              
        <li class="collapsed">
              <a href="project-info.html">Project Information</a>
              </li>
              
                
              
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
              
        <li class="collapsed">
              <a href="project-reports.html">Project Reports</a>
              </li>
          </ul>
          <h5>Project</h5>
        <ul>
              
    <li class="none">
              <a href="http://issues.apache.org/jira/browse/JAMES">Bug Database</a>
        </li>
              
    <li class="none">
              <a href="http://svn.apache.org/viewvc/james/server/">Source Code</a>
        </li>
              
    <li class="none">
              <a href="../todo.html">TODO</a>
        </li>
          </ul>
          <h5>Downloads</h5>
        <ul>
              
    <li class="none">
              <a href="../../download.cgi">Stable releases</a>
        </li>
              
    <li class="none">
              <a href="../../downloadunstable.cgi">Unstable releases</a>
        </li>
              
    <li class="none">
              <a href="http://people.apache.org/builds/james/nightly/">Nightly builds</a>
        </li>
          </ul>
                                       <a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
            <img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
          </a>
                       
  

  
    
  
  
        </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        

   
<a name="Step 0: Building. (only necessary for daily snapshots)"></a><div class="section"><h2>Step 0: Building. (only necessary for daily snapshots)</h2> 
<p> If you have downloaded a binary distribution, you do not need to build James. 
  Proceed directory to Step 1. </p>
<p> To compile James from the source code you need <a href="http://ant.apache.org/">Ant</a>. 
  This is a Java-tailored, XML-configured, extensible build or make system. We 
  are currently using Ant 1.4, which is included in the source distribution.</p>
<p> If you have downloaded a daily snapshot, you need to build a distribution. 
  James includes Ant to compile and package its distribution. Extract the snapshot 
  to your favorite directory, cd to that directory and run the build by calling &quot;build&quot; 
  or &quot;./build.sh&quot; which will create an unpacked binary distribution 
  in the dist directory, but no archives.</p>
<p>This &quot;./dist&quot; directory is the distribution directory used in Step 1 and beyond. 
  You may either cd to ./dist, or you may copy and rename the dist directory to your 
  installation directory.</p>
<p>If you prefer you can run build with the &quot;dist&quot; task &quot;build dist&quot; 
  (or &quot;./build.sh dist&quot;). This will create the distribution in the &quot;./dist&quot; 
  directory as well as create .tgz and .zip copies of this directory, however it may 
  require other resources to build the documentation. </p>
<p> <strong>Warning!</strong> Any changes you've made in the 'dist' directory 
  will be lost after a recompilation. If you are making changes to the conf.xml 
  or other files, we recommend you backup and then change the copies in src to 
  avoid losing work. </p>
</div> <a name="Step 1: Installation."></a><div class="section"><h2>Step 1: Installation.</h2> 
<p> Download distibution. Extract or copy all the files in the archive or dist 
  directory intto your installation directory. </p>
</div>

<a name="Step 2: Configuration."></a><div class="section"><h2>Step 2: Configuration.</h2>
  <p>
    Read the short and snappy documentation at docs/index.html for a proper
    overview of configuring the system.
  </p>
  <p>
    <b>Summary</b> (for impatient people)
  </p>
  
<p> M$ users should just run /bin/run.bat. Unix users will find run.sh under the 
  same directory. A JVM must be present and its location specified in the JAVA_HOME 
  environment variable. Set this on windows at the command prompt with something 
  similar to &quot;set JAVA_HOME=\jdk1.3\bin&quot; on *nix with JAVA_HOME=/jdk1.3/</p>
<p> Running [run* --help] will provide a simple command line help. </p>
  <p>
    Most UNIX systems require superuser privileges to open sockets below 1024,
    which includes the IANA-standard SMTP (on port 25) and POP3 (on port 110).
    These default ports can be changed in the conf.xml file. (Obviously, you
    would then need to reconfigure your clients. This may not be an option if
    you want to receive mail from external mailservers.)
  </p>
  
<p> The Avalon framework will unpack the necessary configuration files you will 
  need to start the server.  Wait until it is running, stop it again (ctrl-c), and 
  edit the configuration (thereafter *nix users can run the server in the background 
  using ./run.sh &amp;). For basic use, you only need to set two items in the 
  JAMES.conf.xml file: a root password for the remote administration facility 
  and the IP address of a DNS server. Once you have edited the configuration files, 
  press 'Enter' on the terminal where Avalon is waiting. </p>
</div>

<a name="Step 4: Kickstart."></a><div class="section"><h2>Step 4: Kickstart.</h2>
  <p>
    Once started you'll see a message saying Avalon is running. This means that
    Avalon has loaded JAMES and every other needed Block (see /logs/avalon.log)
    and is now waiting for a socket request.
    Since at the beginning James is empty, it will not have any local users
    registered.
    To register a local user open a telnet session with localhost on port 4555,
    log in as root (&quot;root[enter]  &lt;password-you-set-in-conf.xml&gt;[enter]&quot;) and
    type &quot;help&quot; for a list of available commands in the &quot;JAMES remote
    administrator tool&quot;. It is really a basic set but should allow you to test
    installation.
  </p>
  <p>
    Once you have some local users registered, try sending mail to one of them
    @localhost with SMTP (port 25) (assuming you have not changed the default
    server names in the conf.xml file). You'll see the mail appear under
    ../var/mail/localinbox/[user].
    Try now to retrieve that mail using POP3 (port 110).
    Trace out JAMES actions in /logs/*info.log.
    Actions that will be taken by JAMES on incoming mail are configured in
    the mailet pipe line (/conf/JAMES.conf.xml). Look at it if you want to
    understand what's happening.
  </p>
  <p>
  Good luck :)
  </p>
</div>



      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">&#169;  
          2002-2009
    
          The Apache Software Foundation
          
  

  
    
  
  
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
    </script>
    <script type="text/javascript">
      _uacct = "UA-1384591-1";
      urchinTracker();
    </script>
  </body>
</html>
