Servers

Introduction

Apache James is an open source project intended to produce a robust, flexible, and powerful enterprise class server that provides email and email-related services. It is also designed to be highly customizable, allowing administrators to configure Apache James to process email in a nearly endless variety of fashions.

The standard Apache James distribution deploys inside the Spring dependency injection container. In addition to providing a robust server architecture for James, the use of Spring allows Apache James administrators to deploy their own applications inside the container. These applications can then be accessed during mail processing.

The Apache James Server is implemented as a complete collection of servers and related components that, taken together, provide an email solution. These components are described below.

SMTP Protocol

SMTP (Simple Mail Transport Protocol) is the standard method of sending and delivering email on the internet. Apache James provides a full-function implementation of the SMTP specification, with support for some optional features such as message size limits, SMTP auth, and encrypted client/server communication.

More information on configuring the SMTP service can be found here.

You can find further information about supported protocols and RFCs on the JAMES-PROTOCOLS project SMTP page

IMAP4 Protocol

The IMAP4 protocol allows users to retrieve email messages. It is the method most commonly used by email clients to download and manage email messages.

The Apache James version of the IMAP4 service is a simple and straightforward implementation that provides full compliance with the specification and maximum compatibility with common IMAP4 clients. In addition, Apache James can be configured to require SSL/TLS connections for IMAP4 client connecting to the server.

More information on configuring the IMAP4 service can be found here.

You can find further information about supported protocols and RFCs on the JAMES-PROTOCOLS project IMAP4 page

Note that MOVE extension (RFC-6851) needs a MailboxManager implementing the move function. For now, this is only done with the CassandraMailboxManager

It supports the METADATA extension (RFC-5464):

  • It does not support the server's metadata so far.
  • It does not support permission on metadata because the ACL extension is not present.
  • The quota limitations on MailboxAnnotations are hardcoded. They concern the number of annotations per mailbox (10), as well as the size of an annotation (1024 bytes)

POP3 Protocol

The POP3 protocol allows users to retrieve email messages. It is the method most commonly used by email clients to download and manage email messages.

The Apache James version of the POP3 service is a simple and straightforward implementation that provides full compliance with the specification and maximum compatibility with common POP3 clients. In addition, Apache James can be configured to require SSL/TLS connections for POP3 client connecting to the server.

More information on configuring the POP3 service can be found here.

You can find further information about supported protocols and RFCs on the JAMES-PROTOCOLS project POP3 page

FetchMail

FetchMail, unlike the other Apache James components, is not an implementation of an RFC. Instead, it's a component that allows the administrator to configure Apache James to retrieve email from a number of POP3 servers and deliver them to the local spool. This is useful for consolidating mail delivered to a number of accounts on different machines to a single account.

More information on configuring FetchMail can be found here.

JMX

JMX (Java Management Extension) is used for the management.