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.
