DBMail is an open-source project that enables storage of mail messages in a relational database.

Currently MySQL, PostgreSQL and SQLite can be used as storage backends.

Commercial development and support is also available.

What are the advantages?

Scalability
Dbmail is as scalable as the database system used for storage.
Manageability
Dbmail can be managed by updating the relational database or directory service - without shell access.
Speed
Dbmail uses very efficient, database specific queries for retrieving mail information.
Security
Dbmail doesn't require filesystem access. It's as secure as the database and directory server used.
Flexibility.
Changes in a Dbmail system (adding of users, changing passwords etc.) are effective immediately. Users can be stored in the database, or managed separately in an LDAP server such as OpenLDAP or Active Directory.

How does it work?

DBMail is made up of several components. A normal MTA (Postfix, SendMail, QMail, Exim) is used for accepting messages. The MTA hands the messages over to dbmail-deliver, using a pipe interface, or to dbmail-lmtpd, using LMTP (Local Mail Transport Protocol).

These programs take care of injecting the message into the database. Messages can be retreived from the database using dbmail-pop3d, using the POP3 protocol, or dbmail-imapd, using the IMAP4Rev1 protocol.

Emails are stored in the database. This includes attachments. User information is also stored in the database, so users do not need a system account on machines DBMail is running on.

Components

DBMail Components

Available

DBMail is primarily developed and tested on the GNU Linux and FreeBSD platforms. Users have also reported successfull deployments on OpenSolaris, NetBSD and OSX.

DBMail is released under the GNU Public Licence (version 2).

News

News

2010-01-22

DBMail 2.2.14 released

Paul J Stevens

Greetings,

I've just uploaded dbmail 2.2.14, the latest production release.

Changes:

  • 0000816[Database layer] DEF_QUERYSIZE is currently 1024, causing sieve generated autoresponders to fail (paul) - resolved
  • 0000822[General] Incoming IP addresses missing in syslog (paul) - resolved.
  • 0000827[IMAP daemon] postgresql-8.4.2 Strangeness - resolved.
  • fix native autoreply/autonotify support
  • skip caching of broken 8bit addresses
  • requires gmime > 2.2.10

Changelog

Download

2009-10-07

DBMail 2.2.12 released

Paul J Stevens

Greetings,

I've just uploaded dbmail 2.2.12, the latest production release.

Changes:

  • Backport IPv6 support
  • Remove generated autoconf files from the release. Please install automake-1.9 and run autoreconf -i before running configure
  • Backport the fix for duplicate mailboxes in LIST/LSUB responses
  • Backport for internaldate as UTC
  • Fix for file descriptor leakage

Changelog

Download

2009-06-28

DBMail 2.3.6 released

Paul J Stevens

Greetings,

I've just released dbmail 2.3.6, the latest development release.

There are still some rough edges in the packaging and documentation, but otherwise the code is approaching productionlevel quality.

New features in this release:

Single-instance header storage

The header caching tables used since 2.2 have been replaced with a new schema, optimized for a much smaller storage footprint, and therefor faster access. Headers are now cached using a single-instance storage pattern, similar to the one used for the message parts. This change also introduces for the first time the appearance of views in the database, which is somewhat experimental because of some uncertainties with regard to the possible performance impact this may have.

Authentication logging

A new table was added to the schema to log a couple of key metrics for users connecting to one of the daemons.

    Of course, a number of bugs have also been fixed along the way:
  • 0000689: [Command-Line programs (dbmail-users, dbmail-util)] dbmail-exports fails with File size limit exceeded (paul) - resolved.
  • 0000775: [PIPE delivery (dbmail-smtp/dbmail-deliver)] Issue with multiple inline attachments (paul) - resolved.
  • 0000783: [General] Boundary missing in message construction (paul) - resolved.
  • 0000681: [General] message reconstruction fails on message (paul) - resolved.
  • 0000774: [IMAP daemon] SQLException using dbmail-imapd - resolved.
  • 0000766: [POP3 daemon] dbmail-pop3d crash (paul) - resolved.
  • 0000754: [General] single instance storage for headervalues (paul) - resolved.
  • 0000760: [LMTP daemon] DNS Regresion in 2.3.5 (netvulture) - resolved.
  • 0000743: [LMTP daemon] Memory leak in lmtpd (paul) - resolved.
  • 0000755: [POP3 daemon] POP3D crash when fetchmail tries to connect (paul) - resolved.
  • 0000720: [Command-Line programs (dbmail-users, dbmail-util)] Missing operations on dbmail-util (paul) - resolved.

Changelog

Download

Blog

DBMail on twitter
2010-01-19
re-theming dbmail.org
2010-01-07
A RESTful interface is coming
2009-07-03

Recent changes

master branch

imap testing
2010-02-07
more cleanups
2010-02-01
cleanups
2010-02-01

stable branch

stress-testing lmtp
2010-02-02
defensive cleanups
2010-01-26
add non-detached network mode
2010-01-26