Architectural overview of DBMail

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.

Find out about how clients interact with an IMAP server

Users

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.

Find out more about users in dbmail

Emails

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.

Find out more about how dbmail stores emails

Find out more about how dbmail caches emails for speed and efficiency

Email filtering

Sieve scripts can be used to filter and automatically process incoming emails.

Find out more about how DBMail manages Sieve filtering

Admin

Various admin functions from upgrading the database schema to logging user authentication.

Find out more about admin in dbmail

DBMail is sponsored by