mel-base is a library for handling email with support for Maildir, POP3, IMAP and SMTP folders.

It makes no difference from the programmer's side if an E-Mail gets copied from a Maildir folder to an IMAP folder or from POP3 to Maildir. Sending E-Mails through SMTP is simply done through the same mechanism. One just copies an E-Mail from a folder supporting the "receiver" protocol like IMAP, Maildir or POP3 to the SMTP folder which supports the "sender" protocol.

E-Mails are first-class objects and on-demand fetching of parts of an e-mail like the header or a particular part is supported.

Mel-base got used to implement a POP3 server, a Spam-Filter and a CLIM Mail-Reader/Composer ( and many small scripts to process, filter and deliver E-Mails. Mel-Base itself is Open Source and licensed under a license similar to the BSD License. The mentioned applications, while not Open Source, are available on request.

Author: Jochen Schmidt

It works in SBCL , CMUCL, OpenMCL and LispWorks with partial support for CLISP and ABCL. Porting it should be straightforward because implementation dependent parts are encapsulated in a thin compatibility layer.

My fork policy:

I open sourced mel-base as a generic library for handling e-mails (and not just as base-library for mel) and I'm interested in getting feedback on how to enhance it further. I know that in the code-base of mel-base might be parts which may be useful for other purposes, but please think twice about it before creating unnecessary forks.

If you have ideas, drop me an e-mail. If this really cannot hold you off; please use darcs to create a proper branch of the code-base so your work can get reused by users of mel-base. The darcs repository is at Please don't just rip it off.

To kire (Erik Enge): In #lisp you stated your intend to split mel-base into parts. Mel-Base already is quite modular in that each folder backend got implemented in its own ASDF module. I plan to go further on that road by factoring the backends out to different ASDF systems depending on mel-base as a core. If you still have those splitting plans - please contact me first. -- Neonsquare (Jochen Schmidt), author of mel-base