On Fri, 2002-04-05 at 05:17, Jesus Cea Avion wrote:

> A simple and efficient database (key/value) used to store messages. For
> example, BerkeleyDB (http://www.sleepycat.com/)
> 
> Qpopper would have six operations:

Not Qpopper, though. You want to make this work with *all* mail systems,
not just one POP3 server. So make this an API, perhaps with a support
daemon. You then provide Qpopper with a configuration option to use the
API. You also need to add the API to sendmail, procmail, UW-IMAP, Cyrus,
etc., any system that needs to talk to mail spools. You can then add
configurable back-ends that know how to talk not only to Sleepycat DB
but also to traditional formats like mbox and maildir.

A similar system exists for authentication systems, called PAM
(pluggable authentication modules), so you might model your API on that.
Detractors of PAM are sure to sound off on its deficiencies, so you can
use that information to avoid making the same mistakes in implementing a
mail spool API.

Once you've gathered some design info, go to SourceForge or Freshmeat
and start up a project to get this rolling. You should probably start by
researching any pre-existing projects trying to accomplish the same
thing.

Reply via email to