James requires a Java Runtime Environment of Java version 1.3 or higher installed to run the James application. The exact JREs available depend on the platform. A JRE must be downloaded and installed before James can run. In addition, the environment variable JAVA_HOME must be set to the JRE home directory before running James.
Warning! - Issues have been observed when using Sun's Java 1.3.0 on older Linux distributions. It is recommended that users of these platforms run James using a more recent Sun JRE or a JRE produced by an alternate vendor.
On Unix platforms, root access will be required to run James. On these platforms, access to ports below 1024 is generally restricted to the root user. As SMTP, POP3, and NNTP all need to open server sockets on such ports in standard configurations, James requires root access.
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.
James installation involves a number of steps, each of which is described in some detail in the following sections. But as this sequence of steps has confused some users in the past, additional comments seem warranted.
It is important to realize that the James configuration files are not unpacked from the James distribution until the first time James is started. This is a consequence of the design of the Avalon Phoenix container used to run James. Once James has been started, the distribution will be unpacked. The server should be stopped, the configuration files edited, and the server restarted.
So the installation sequence is: 1) Start, 2) Stop, 3) Edit, 4) Restart.
Obtain the full James binary distribution from the James release mirrors. Unpack the archive into your James installation directory. Go to the bin subdirectory of the installation directory and run the "run" script (either run.sh or run.bat, depending on your platform). The configuration file is now unpacked and available for editing.
Warning! - James requires Phoenix version 4.0.x to run. There is a known issue with logging in Phoenix 4.0, so version 4.0.1 or higher is strongly recommended. Before attempting to deploy James in a Phoenix container, please make sure it meets these version criteria.
Deploying James in Phoenix is fairly easy. Obtain the james.sar file from the James release mirrors. It can be found in the "Other Binaries" area of the distribution directory. After downloading the james.sar, simply place it in the apps subdirectory of your Phoenix installation. Restart Phoenix, and the james.sar should unpack and you will be ready to configure your James installation.
After installing the binary, the next step is to adjust the initial configuration. The server should be stopped, and then configuration can proceed. The most essential configuration is set in the config.xml file. This file can be found in the apps/james/SAR-INF subdirectory of the installation directory.
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:
In addition to adjusting these parameters, you may wish to consult the documentation for a discussion of common configurations. A list of such configurations, as well as the steps necessary to configure them, can be found here.
Once you have edited the configuration file you will need to restart James so that the changes take effect. When James starts, a list of the James services and the ports on which they are listening should be displayed on the console. Additional information about the system configuration is printed in the James log files upon startup.
Finally, after configuration is complete, it will be necessary to create user accounts before the James server will be fully operational. Instructions on creating user accounts can be found here.