= Apache James Core Concepts
:navtitle: 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.

 * <<emails>>
 * <<protocols>>
 * <<mailbox>>
 * <<processing>>

[#emails]
== 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".

xref:mail/index.adoc[Email messages] are based on a few specifications
that are not easy to digest, so we make an effort to provide a simplified
model.




[#protocols]
== 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 xref:protocols/index.adoc[transmission protocols]
are SMTP, POP, and IMAP. More recently JMAP is an interesting protocol
that merits attention.





[#mailbox]
== Mailbox and Email Storage

Email would not be very useful if, like in https://www.youtube.com/watch?v=0TiqXFssKMY[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 xref:storage/index.adoc[storing messages].





[#processing]
== Email Processing

There are many ways to peel a potato. James has its own particular
xref:processing/index.adoc[model for processing mail],
based mostly on the concept of a "Mailet". The idea of Mailet-based
processing was heavily inspired by the https://en.wikipedia.org/wiki/Java_servlet[Servlet]
concept.

