Brad Fitzpatrick (brad) wrote,
Brad Fitzpatrick

plan: Extensible IMAP Server

I've decided my next fun project will be a modular IMAP server. dovecot's better than most IMAP servers, but it still sucks in a lot of ways. Maildir doesn't have the indexes I need for searching, no vfolders.....

I'm sick of client-side virtual folders. I use 3 or 4 machines, usually ssh to pine, which I'm fast at, but each has its own GUI IMAP client (typically Thunderbird), with different client-side virtual folders, and also my cell phone, whose INBOX I want to be filtered to very particular messages.

Things to abstract and other misc features:

-- underlying store (I'll probably only implement some MySQL schema that I care about and Maildir). don't worry, I'll force it to fail on startup if you're using MyISAM and not a reliable storage engine.
-- folders / vfolders (saved searches, tags, etc...)..
-- delete policies. what does delete command do? delete, or move to archive folder?
-- views per-port. so my phone's INBOX view is a different vfolder than other client's INBOX.
-- if client disconnects, a long-running disk-bound search will actually terminate and not continue to thrash the disk/db.
-- my store will support multiply linked emails in different folders w/ shared flags.
-- integrate well w/ MTAs/qpsmtpd/greylisters/virus scanners where previous mail setups have annoyed me. a lot of this is actually me hacking on qpsmtpd more probably.

The above sounds big/complicated, but I intend for this to be very quick/hacky. Unlike djabberd, I don't intend or care for/if anybody to use it. This will be me scratching my own itch. Everybody else should use gmail, but it's not for me.
Tags: tech
  • Post a new comment


    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.