Mailbox API Responsibility

This module contains the interfaces and exceptions to be used by the mailbox clients. It represents the "external view" of the mailbox library client.

The services the mailbox library provides can be summarized as "store/retrieve/search/delete mails" and update the mails metadata (via uid and flags)

The main entrance interfaces are represented by 3 managers, each responsible for a specific area: the mailbox manager, the message manager and the subscription manager.

For example, Apache James Server injects the managers in the POP3, SMTP, IMAP4 servers and in the Mailet container.

Each implementation Memory, JPA) is responsible to implement the management interfaces. All "common/util" implementations reside in the Mailbox Store module.

Manager Interfaces

Mailbox Manager

The Mailbox Manager is responsible for session creation, operations on mailbox (create, delete, search) and to return a Message Manager. It also allows to copy and list messages.

    Mailbox manager capabilities represents which operations a mailbox manager is able to support. For now the list is :
  • Basic: supports all basic operations
  • Move: implements the move capability

Message Manager

The Message Manager is responsible to create, delete message and its associated metadata (the uid and the flags).

Subscription Manager

The Subscription Manager is responsible for the (un)subscription between a user and a mailbox.