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 (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
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
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, 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.