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 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


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


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

Find out more about admin in dbmail

DBMail is sponsored by