DBMail is a group of email related services where data is stored in a relational database. This architectural overview is a work in progress and attempts to show how DBMail is organised, how it's managed and what standards it follows.
The main aspects are receipt of emails on behalf of a user, filtering to process incoming emails, plus retrieval and management of those messages.
DBMail offers scalability and resilience thanks to Postgres, MySQL and Oracle databases.
Email Clients and DBMail
Email clients (Mail User Agent/MUA) such as Mozilla Thunderbird, Roundcube or K-9 Mail do an amazing job of hiding the complexities of managing our emails.
Users are the core of DBMail, every user is associated with one or more email addresses, has one or more folders and all emails are organised into those folders.
Users are authenticated before they can access any emails, either with a username and password stored in the sql database, or in an LDAP directory service.
Users have access to their own emails and can be given permission to access other accounts, or access to public folders.
Designed for efficiency, DBMail de-constructs emails for efficient storage and retrieval, then reconstructs them, or parts of them when required. By extracting and caching frequently used aspects of an email enables IMAP, the most popular method to access emails, to be incredibly fast.
Sieve scripts can be used to filter and automatically process incoming emails.
Various admin functions from upgrading the database schema to logging user authentication.