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 (http://codeartist.org/mel/) 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.
project page: http://common-lisp.net/project/mel-base/
repository: git clone http://pmeta.net/projects/mel-base/mel-base.git
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 create a proper branch of the code-base so your work can get reused by users of mel-base. [ed: old information removed] -- Neonsquare (Jochen Schmidt), author of mel-base