James 2.3

The Java Apache Mail Enterprise Server (a.k.a. Apache James) is a 100% pure Java SMTP and POP3 Mail server and NNTP News server designed to be a complete and portable enterprise mail engine solution. James is based on currently available open protocols.

The James server also serves as a mail application platform. The James project hosts the Apache Mailet API, and the James server is a Mailet container. This feature makes it easy to design, write, and deploy custom applications for mail processing. This modularity and ease of customization is one of James' strengths, and can allow administrators to produce powerful applications surprisingly easily.

James is built on top of trunk version of the Avalon Application Framework. This framework encourages a set of good development practices such as Component Oriented Programming and Inversion of Control. The standard distribution of James includes Phoenix Avalon Framework container. This stable and robust container provides a strong foundation for the James server.

This documentation is intended to be an introduction to the concepts behind the James implementation, as well as a guide to installing, configuring, (and for developers) building the James server.

Table of Contents

I. James Concepts

- Summary
- SpoolManager
- Repositories
- The Mailet API

II. How To Build James

- Building James

III. How To Install James

- Installing James

IV. Configuring James

- DNS Server Configuration
- POP3 Server Configuration
- SMTP Server Configuration
- NNTP Server Configuration
- fetchMail Configuration
- RemoteManager Configuration
- Repository Configuration
- SpoolManager Configuration
- Server-wide Configuration
- Adding Users
- Provided Matchers
- Provided Mailets

V. Common Configurations

- Using SMTP AUTH
- Using a Database with James
- Using TLS/SSL
- James and Sendmail
- Creating Mailing Lists

VI. Customizing James

- How to write a custom Matcher
- How to write a custom Mailet

V. Other Information

- Upgrade James