Apache James Core Concepts

The core domain of Apache James is intimitely related to email communications. Therefore this section is divided into topics that deal with the various aspect of email systems.

Email Messages

Electronic Mail (often written as "e-mail" or "email") is a means of exchanging messages over a data network. In our context, it is obvious that we mean "electronic mail" and not "postal mail", so we usually just write "mail".

Email messages are based on a few specifications that are not easy to digest, so we make an effort to provide a simplified model.

Transmission Protocols

Emails are only useful because people can communicate with each other. To allow for this, obviously there must be a means of transmitting messages from one user to another. A number of different protocols have emerged to handle the various different requirements of using email in a practical manner. The most common transmission protocols are SMTP, POP, and IMAP. More recently JMAP is an interesting protocol that merits attention.

Mailbox and Email Storage

Email would not be very useful if, like in Mission Impossible, a message would self-destruct immediately after being read. For those of us who are not secret agents, we generally prefer to keep a record of those messages that we receive. For this reason we need a means of storing messages.

Email Processing

There are many ways to peel a potato. James has its own particular model for processing mail, based mostly on the concept of a "Mailet". The idea of Mailet-based processing was heavily inspired by the Servlet concept.