IMAP stands for Internet Message Access Protocol. This protocol succeeds
the Post Office Protocol POP (version 2 and 3), allowing remote access,
storage and manipulation of complete set's of folders and messages directly on
the server. In other words, no matter where you go, and which IMAP compatible
client you use (including jwma), you will have access to all your messages and
folders.
For more information about the IMAP protocol and available products, please visit: http://www.imap.org
Important Concepts
It is important to understand the most important elements involved when using
IMAP. These are:
The Client: is an application able to access the server and should
provide the actual user frontend or interface
The Server: is an application that handles the requests from the
clients and manipulates the store accordingly
The Store: is the place where your mail and your folders are actually
kept on the server
The client in the case of jwma is the Model element of the architecture, which
is directly implemented on top of the JavaMail API(tm) and it's standard IMAP
provider. Figure 1 depicts the elements as well as the jwma IMAP client part.
The store is an abstraction for a virtual place where all of the user's and shared
messages and folders can be accessed. An important element of the store is the
folder called INBOX. It represents the place where the mail transport agent (MTA),
in this case most likely a Simple Mail Transport Protocol (SMTP) server, will
deposit incoming messages. Figure 2 presents a simplified visualization. Note
that the INBOX might be a system accessible area, depending a lot on your MTA
service. In case of unified messaging systems (MTA cooperates closely with the
IMAP server), the INBOX might as well be an integrated part of the user's storage
area.
Depending on the backend, the server will allow messages and subfolders in a folder
("mixed") or allow only subfolders, or messages. The latter are folders
which can only contain messages (i.e. a file, most likely in mbox format; also
called Mailbox). jwma is able to handle both cases, however, configuration is
required.