blob: 0eb23beed8fab848358613fff41ab22ad5a14c0d [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia at 2016-10-20 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Apache James Server 3.0 -
Apache James Server 3 - Installation</title>
<style type="text/css" media="all">
@import url("./css/james.css");
@import url("./css/maven-base.css");
@import url("./css/maven-theme.css");
@import url("./css/site.css");
@import url("./js/jquery/css/custom-theme/jquery-ui-1.8.5.custom.css");
@import url("./js/jquery/css/print.css");
@import url("./js/fancybox/jquery.fancybox-1.3.4.css");
</style>
<script type="text/javascript" src="./js/jquery/js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="./js/jquery/js/jquery-ui-1.8.5.custom.min.js"></script>
<script type="text/javascript" src="./js/fancybox/jquery.fancybox-1.3.4.js"></script>
<link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
<meta name="Date-Revision-yyyymmdd" content="20161020" />
<meta http-equiv="Content-Language" content="en" />
<link title="DOAP" rel="meta" type="application/rdf+xml" href="http://james.apache.org//doap_james-project.rdf"/>
<!-- Google Analytics -->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-1384591-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script').item(0); s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body class="composite">
<div id="banner">
<a href="../index.html" id="bannerLeft" title="james-logo.png">
<img src="images/logos/james-logo.png" alt="Apache James Server 3.0" />
</a>
<a href="http://www.apache.org/index.html" id="bannerRight">
<img src="images/logos/asf_logo_small.png" alt="The Apache Software Foundation" />
</a>
<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">
<span id="publishDate">Last Published: 2016-10-20</span>
</div>
<div class="xright"> <a href="../../index.html" title="Home">Home</a>
|
<a href="../index.html" title="Server">Server</a>
|
<a href="../../hupa/index.html" title="Hupa">Hupa</a>
|
<a href="../../protocols/index.html" title="Protocols">Protocols</a>
|
<a href="../../mailet/index.html" title="Mailets">Mailets</a>
|
<a href="../../mailbox/index.html" title="Mailbox">Mailbox</a>
|
<a href="../../mime4j/index.html" title="Mime4J">Mime4J</a>
|
<a href="../../jsieve/index.html" title="jSieve">jSieve</a>
|
<a href="../../jspf/index.html" title="jSPF">jSPF</a>
|
<a href="../../jdkim/index.html" title="jDKIM">jDKIM</a>
|
<a href="../../mpt/index.html" title="MPT">MPT</a>
|
<a href="../../postage/index.html" title="Postage">Postage</a>
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>Overview</h5>
<ul>
<li class="none">
<a href="index.html" title="Introduction">Introduction</a>
</li>
<li class="none">
<a href="release-notes.html" title="Release Notes">Release Notes</a>
</li>
</ul>
<h5>Features</h5>
<ul>
<li class="none">
<a href="feature-mailetcontainer.html" title="Mailet Container">Mailet Container</a>
</li>
<li class="none">
<a href="feature-queue-priority.html" title="Queue Priority">Queue Priority</a>
</li>
<li class="none">
<a href="feature-persistence.html" title="Persistence">Persistence</a>
</li>
<li class="none">
<a href="feature-protocols.html" title="Protocols">Protocols</a>
</li>
<li class="none">
<a href="feature-smtp-hooks.html" title="SMTP Hooks">SMTP Hooks</a>
</li>
<li class="none">
<a href="feature-performance.html" title="Performance">Performance</a>
</li>
<li class="none">
<a href="feature-security.html" title="Security">Security</a>
</li>
</ul>
<h5>User Manual</h5>
<ul>
<li class="none">
<a href="quick-start.html" title="1. Quick Start">1. Quick Start</a>
</li>
<li class="none">
<strong>2. Install James</strong>
</li>
<li class="collapsed">
<a href="config.html" title="3. Configure James">3. Configure James</a>
</li>
<li class="collapsed">
<a href="manage.html" title="4. Manage">4. Manage</a>
</li>
<li class="collapsed">
<a href="monitor.html" title="5. Monitor">5. Monitor</a>
</li>
<li class="collapsed">
<a href="upgrade.html" title="6. Upgrade">6. Upgrade</a>
</li>
</ul>
<h5>Developers Corner</h5>
<ul>
<li class="none">
<a href="dev.html" title="Architecture">Architecture</a>
</li>
<li class="none">
<a href="dev-build.html" title="Build from source">Build from source</a>
</li>
<li class="none">
<a href="dev-database-schema.html" title="Database Schema">Database Schema</a>
</li>
<li class="collapsed">
<a href="dev-extend.html" title="Develop Extensions">Develop Extensions</a>
</li>
<li class="collapsed">
<a href="dev-provided.html" title="Provided Extensions">Provided Extensions</a>
</li>
</ul>
<h5>References</h5>
<ul>
<li class="none">
<a href="apidocs/index.html" title="Javadoc">Javadoc</a>
</li>
<li class="none">
<a href="https://issues.apache.org/jira/browse/JAMES" title="Issue Tracker">Issue Tracker</a>
</li>
</ul>
<h5>About James</h5>
<ul>
<li class="none">
<a href="../../index.html" title="Overview">Overview</a>
</li>
<li class="none">
<a href="../../newsarchive.html" title="News">News</a>
</li>
<li class="none">
<a href="../../mail.html" title="Mailing Lists">Mailing Lists</a>
</li>
<li class="none">
<a href="../../contribute.html" title="Contributing">Contributing</a>
</li>
<li class="none">
<a href="../../guidelines.html" title="Guidelines">Guidelines</a>
</li>
<li class="none">
<a href="http://wiki.apache.org/james" title="Wiki">Wiki</a>
</li>
<li class="none">
<a href="../../team-list.html" title="Who We Are">Who We Are</a>
</li>
<li class="none">
<a href="../../license.html" title="License">License</a>
</li>
<li class="none">
<a href="../../thanks.html" title="Thanks">Thanks</a>
</li>
<li class="none">
<a href="../../support.html" title="Professional support">Professional support</a>
</li>
</ul>
<h5>Download</h5>
<ul>
<li class="none">
<a href="../../download.cgi" title="Releases">Releases</a>
</li>
</ul>
<h5>Apache Software Foundation</h5>
<ul>
<li>
<strong>
<a title="ASF" href="http://www.apache.org/">ASF</a>
</strong>
</li>
<li>
<a title="Get Involved" href="http://www.apache.org/foundation/getinvolved.html">Get Involved</a>
</li>
<li>
<a title="FAQ" href="http://www.apache.org/foundation/faq.html">FAQ</a>
</li>
<li>
<a title="License" href="http://www.apache.org/licenses/" >License</a>
</li>
<li>
<a title="Sponsorship" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
</li>
<li>
<a title="Thanks" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
</li>
<li>
<a title="Security" href="http://www.apache.org/security/">Security</a>
</li>
</ul>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
<img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<!-- Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License. -->
<div class="section">
<h2>Requirements<a name="Requirements"></a></h2>
<div class="section">
<h3>Java Virtual Machine<a name="Java_Virtual_Machine"></a></h3>
<p>James requires a Java Runtime Environment. Java version 1.6 or higher is required to run the
James application. The exact JREs available depends on the platform. In addition, the environment variable JAVA_HOME should be set to
the JRE home directory before running James.</p>
<p>If you run JDK7, James will not start due to a bug in JAXB. As temporary workaround, you can
download the latest 2.1 version of JAXB from <a class="externalLink" href="http://jaxb.java.net/2.1.13/JAXB2_20100510.jar">
http://jaxb.java.net/2.1.13/JAXB2_20100510.jar</a>
and copy the extracted jaxb-impl.jar into conf/lib.</p>
<p>James 3.0 has been successfully tested on OpenJDK, Sun JDK and IBM JDK</p>
</div>
<div class="section">
<h3>User Privileges<a name="User_Privileges"></a></h3>
<p>On Linux/Unix platforms, root access will be required to run James (access to ports
below 1024 is generally restricted to the root user). As SMTP, POP3, and IMAP4
need to open server sockets on such ports in standard configurations,
James requires root access.</p>
<p>On Windows platforms, you also need to run James as Administrator privilege.</p>
</div>
<div class="section">
<h3>Libc6<a name="Libc6"></a></h3>
<p>On Linux, to run the startup/shutdown script via the 'james' command, you also need <tt>libc6</tt>
(on Ubuntu for example: <tt>sudo apt-get install libc6-i386 libc6-dev-i386</tt>).</p>
</div>
<div class="section">
<h3>System Resources<a name="System_Resources"></a></h3>
<p>Obviously James also requires sufficient disk space, processor power, and network bandwidth. But,
other than what's been discussed here, it has no additional special requirements.</p>
<p>James is configured to run with 512 MB RAM (-Xmx512M in the bat/sh) available, but may need more or
less depending on the load. With the default configuraiton, JVM can use until 512M (It does not mean it will do).
It really depends on your traffic, and also which mailbox you will use (you can save much memory
if you don't use the default embedded derby database but an external database of your choice).
Work is still done to minimize the needed memory.
</p>
</div>
</div>
<div class="section">
<h2>Install Step by Step<a name="Install_Step_by_Step"></a></h2>
<div class="section">
<h3>Step 1: Download James<a name="Step_1:_Download_James"></a></h3>
<p>Obtain the full James binary (or source) distribution from
the <a class="externalLink" href="http://james.apache.org/download.cgi">James
release mirrors</a>.</p>
<p>If you have downloaded a binary distribution, you do not need to build James.
Proceed directly to Step 2.</p>
<p>If you have downloaded a source package, process first to
the <a href="dev-build.html">build</a> and come back to Step 2.</p>
</div>
<div class="section">
<h3>Step 2: Deploy James<a name="Step_2:_Deploy_James"></a></h3>
<p>Unpack the archive into your James installation directory.</p>
</div>
<div class="section">
<h3>Step 3: Configure James<a name="Step_3:_Configure_James"></a></h3>
<!-- <div class="ui-widget">
<div class="ui-state-error ui-corner-all" style="padding: 0 .7em;">
<p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>
<strong>Preliminary step for JMX on Windows: </strong>
to let windows start with JMX username/password enabled,
you need to modify the security settings for the JMX files (./conf/jmx.password and ./conf/jmx.access)
like described here:
<a href="http://download.oracle.com/javase/1.5.0/docs/guide/management/security-windows.html">
http://download.oracle.com/javase/1.5.0/docs/guide/management/security-windows.html</a>
</p>
</div>
</div> -->
<p>After unpacking the binary, the next step is to adjust the initial configuration.
All configuration files are embedded in jars. We ship in the conf foler template configuration files.
</p>
<p>You can override the default configuration : copy the conf folder any ...-template... you need and update according to your needs.</p>
<p>Additional system files reside under the./conf/META-INF folder.</p>
<p>The out of the box configuration makes certain assumptions and has some default
values that are unlikely to be appropriate for real-world servers.
There are a few issues that should be addressed immediately upon installation:</p>
<ul>
<li>Postmaster Address - Change according to your need - <a href="config-system.html">read more</a>.</li>
<li>Most UNIX systems require superuser privileges to open sockets below 1024,
which includes the IANA-standard SMTP (on port 25), POP3 (on port 110) and IMAP4 (on port 143).
These default ports can be changed in the conf file
(read for <a href="config-pop3.html">pop3</a>, <a href="config-smtp.html">smtp</a>
and <a href="config-imap4.html">imap4</a>. Obviously, you
would then need to reconfigure your clients. This may not be an option if
you want to receive mail from external mail servers.</li>
</ul>
<p>In addition to adjusting these parameters, you may wish to consult the documentation for a discussion of
all other configurations. A list of such configurations, as well as the steps necessary to configure them, can
be found <a href="config.html">here</a>.</p>
</div>
<div class="section">
<h3>Step 4: Start James<a name="Step_4:_Start_James"></a></h3>
<p>Go to the bin subdirectory of the installation directory and run <tt>$ ./james start</tt>.</p>
<p>Running <tt>$ ./james help</tt> help will provide the list of commands you can invoke. </p>
<p>Once started, you'll see in the log file (./logs/james-server.log) that
James is running. This means that Spring has loaded James and is now waiting for a request.</p>
</div>
<div class="section">
<h3>Step 5: Create Domains and Users<a name="Step_5:_Create_Domains_and_Users"></a></h3>
<p>Finally, after launch, it will be necessary to create domain and user accounts
before the James server will be fully operational. Read instructions on creating
<a href="manage-domains.html">domains</a> and <a href="manage-users.html">user accounts</a>.</p>
<p>Since at the beginning James is empty, it will not have any domain (except the default one)nor local users
registered.</p>
<p>To register a local domain and user, cd bin and type james-cli.sh.
Follow the given instructions</p>
<p>Invoke &quot;james-cli.sh adddomain &lt;mydomain.tls&gt; &lt;mydomain.tls&gt; is the domain name
of the domain you wish to create.</p>
<p>Invoke &quot;james-cli.sh adduser &lt;user&gt; &lt;password&gt;&quot; where &lt;user&gt; is the user name
and &lt;password&gt; is the password of the account you wish to create.</p>
<p>Please note that the user name MUST be a complete email address of the form &lt;user&gt;@&lt;domain&gt;
(where &lt;domain&gt; is any of the values specified in the &lt;servernames&gt; block of XMLDomainList or
a domain defined via the <a href="manage-domains.html">domain management</a>).</p>
</div>
<div class="section">
<h3>Step 6: Test James<a name="Step_6:_Test_James"></a></h3>
<p>Once you have some local users registered, try sending mail to one of them
with SMTP (port 25).</p>
<div class="source">
<pre>
$ telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 172.16.1.131 SMTP Server (JAMES SMTP Server 3.0-beta4) ready Sat, 6 Nov 2010 17:31:33 +0100 (CET)
ehlo test
250-172.16.1.131 Hello test (aoscommunity.com [127.0.0.1])
250-PIPELINING
250-ENHANCEDSTATUSCODES
250 8BITMIME
mail from:&lt;YOUR_NAME@YOUR_DOMAIN&gt;
250 2.1.0 Sender &lt;YOUR_NAME@YOUR_DOMAIN&gt; OK
rcpt to:&lt;YOUR_NAME@YOUR_DOMAIN&gt;
250 2.1.5 Recipient &lt;YOUR_NAME@YOUR_DOMAIN&gt; OK
data
354 Ok Send data ending with &lt;CRLF&gt;.&lt;CRLF&gt;
subject: test
this is a test
.
250 2.6.0 Message received
quit
Connection closed by foreign host.
</pre></div>
<p>Try now to retrieve that mail using POP3 (port 110) or IMAP (port 143).</p>
<p>Trace out James actions in ./logs/james-server.log.</p>
<p>Actions that will be taken by James on incoming mail are configured in
the mailet pipe line (./conf/mailetcontainer.xml). Look at it if you want to
understand what's happening.</p>
</div>
</div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">Copyright &#169; 2002-2016
<a href="http://www.apache.org/">The Apache Software Foundation</a>.
All Rights Reserved.
</div>
<div class="clear">
<hr/>
</div>
</div>
</body>
</html>