First, I want to say that I'm fantastcially, stupidly excited to see this project alive and kicking, and hope I can contribute to it in tangible, meaningful ways both in terms of code and design.
Last night I sat up late trying to imagine what type of UI I'd really want in a power-user-friendly email application. Throwing away conventions, such as the three-pane-view we've had since time eternal, is the first place I'm really exploring. I'll post a follow-up when I have something tangible to show. That said, once idea I had that stuck with me, and that I'm currently at work producing some wireframes to illustrate, is what the real "base" concept of an email application should be. The current rule of thumb for email applications is that everything is built on accounts and folders. You have an account on an email server, which you connect to, and which may have folders on it you subscribe to. In those folders are a collection of messages that have been moved to that folder by either your email client automatically (trash, spam, sent, drafts) and ones you've moved yourself, whether manually or through a automated script such as a mail rule. This leads to a UI which is awash in numerous settings. You set up your account. You assign which folders on the server behave in a special way, you create mail rules, specify how SPAM should be handled, what to do with sent mail, and with drafts. In most cases, each of these actions is done in an entirely different section of the interface. Often in completely different ways. But, at their core, each of these setup steps is really the same process. You're saying "OK, when something comes in, if it meets a set of criteria, do this with it." "If a message on the server is in a folder called INBOX, download a copy to my local inbox." "If the server thinks I haven't read the message yet, mark it as new in my local UI." "If the server thinks the message is SPAM, move it to a folder I've created called "SPAM". "When I send a message through the UI, place a copy of the message in a folder I've created called "Sent". Ad infinitum. Now, part of what makes modern email clients so frustrating, especially in regards to IMAP and the disparate implementation details of each server, and the vagaries of corporate policies, is that these behaviors are often hard-coded into the email client, and you have to go out of way to override them to get them working with YOUR server. I'm wondering if you could base a UI, at least the account and processing side, on a single interface that just cares about Rules. If, instead of setting up an account, you set up a rule to fetch your email. Imagine something akin to the Automator interface of mail where you'd define a set of steps: 1. Connect to the server (server) with the username (username) and password (password). 2. Get new mail (headers only?) 3. Place a copy of the message in my local folder called Inbox. 4. If the message is new, mark it as new. 5. If I've replied to the message, mark it as replied. etc. etc. etc. I realize this might be really rough, but I think that, from a power-user perspective, making this, and not the regular "Account/Settings/Folders" flow the basic of the email client would provide for a near infinite amount of customizability on the client end, and provide a clear manner in which plugins could be added to the system. One type of "plugin" would simply be a piece of code which accepts a collection of messages and does something with them, whether it's sorting, marking for SPAM, encoding, translating, etc. These would just show up as new "actions" ala Automator, you could drag into a rule chain. Administrators could create "rule templates" for their server, that users could download and "install". Maybe there's a way to even publish/discover them through the IMAP protocol. The community could create sets for the major servers (Gmail, et. al) that could be downloaded. Maybe this is way to far out there, and maybe it doesn't make any sense, but I'm interested to hear what other people think. _______________________________________________ [email protected] mailing list List help: http://lists.ranchero.com/listinfo.cgi/email-init-ranchero.com
