Let’s Design a Next Generation Desktop E-mail App, Part II

| Analysis

In the first article in this series, I looked at how a combination of filters, then handlers, then a smart viewer for each e-mail program would assist with the various tasks that can be associated with each e-mail. In this installment, synthesized in box viewers are examined.

When I think about named mailboxes, what I see is the easiest and quite possibly lamest solution to sorting and filing e-mail. That's because computers tend to be hierarchical, and programmers take the easiest route. But, really, should (and can we) have a named mailbox for every possible project? That just doesn't account for the volume of e-mail we receive these days over broadband. Soon, the proliferation of named mailboxes leads us to strain for simplification by creating hierarchies of named folders. All that does is create an artificial visual simplicity while burying important e-mails still farther.

Metadata is Our Friend

Just as Apple found it useful to modify its file System, HFS+ Journaled, to include metadata for Spotlight, it's far more useful to attach metadata to an e-mail. In Part I, I described how this would work. Messages that, for example, name you specifically get through the filtering process. Then a Handler assists with figuring out what task, if any, is associated with each message. Then, the message is stored in a database archive.

Those messages that, for example, end up creating a calendar entry are filed away in the database, never to disgrace the in box again. The reason we retain those kinds of messages is because there's no innate assistance by the program, so we trust our own ingenuity to go back and look for the message, likely in the in box. Bleccch.

Synthesize the In Box

However, it's also desirable to also define an overall view option. Thunderbird 3 does this with the "View:" popup. For example, it's easy to bring up a synthesized in box that contains "All messages received this week." Or, "All messages that contain the tern 'Psystar'." These views are customizable in many ways and essentially create a software controlled work around to the finite, static, named folders that we waste our time copying messages into. As a result, the in box is never a lazy list of messages we never got around to dealing with. Rather, it's always synthesized, recreated, by some user definable rule.

That brings up the idea of what metadata is associated with each message. That's where the Handler comes in. In some cases, the Handler can use predefined rules. For example, if the Subject line contains the string #admin, the Handler knows how to add that term to the catalog of tags. That's something familiar users can agree on without requiring standards adoption. Then, instead of a mailbox named Admin, I have a lot of messages tagged with the term admin, and I can create a synthesized inbox, ordered by time or sender, whose metadata includes the term 'admin'.

When I double click on a message of interest, the Smart Viewer shows a log of how the message was originally handled, whether an event was scheduled, the tags, the contact information of the person who sent it, and so on.

After awhile, more and more e-mails should be auto-tagged requiring only occasional manual intervention by the user to create new tags. A list of tags should be trivially easy to call up. One tag might also be, "unhandled," but any e-mail message can still be searched for by key word in the body or sender, date... all the usual ways.

The Apple mail.app tries to do this with Smart Folders, but one cannot have, so far as I know, a Smart Inbox. One might be able to funnel every message into a Smart Folder called INBOX, then work from there. But after the Smart Folder is defined, there's no Smart Viewing as in Thunderbird 3.  In other words, one has to work hard to get it all set up. Instead, the philosophy above should be part of the design of the app itself.

An Example

So let's look at a hypothetical example. I have a filter set so that the only messages I need to handle are those addressed to johnm@macobserver.com. The rest are dropped into the database. Next, the incoming message is analyzed by the Handler. I supply a tag (tech info, person of interest, useful attachment, etc.) if necessary, allow it to schedule an event or reminder, and the message also gets dropped into the database.

What if someone calls and says, "Did you get my message on Monday?" I may not remember, but I can always pull up one of the view options and display all the messages that arrived on Monday, even spam, and scan through them.

More Perspiration and Inspiration

The bottom line here is that e-mail developers have gotten lazy because there's no money to be made. Or so it seems. Accordingly, they place a lot of the burden on the user to manually organize information by creating folders, dragging and dropping, using keyboard shortcuts, searching the inbox and so on. Or, as a cop-out, they let various plug-ins that achieve, in a rather haphazard way, what they should have been coding for in the first place.

I think users would gladly pay for a next generation e-mail program that has no named folders, no static, but only a dynamically created in box, and which can work with the Mac without having to appeal to standards to be imposed on the rest of the industry. Surely, with a Mac capable of 50 gigaflops and a terabyte drive, we can write an app that serves us instead of making the user its slave.

If that happens, every other developer will be thinking how they were so asleep at the wheel.

Popular TMO Stories



Good ideas, but although I use mail a lot, I have never learnt to become a power user who organises messages into various folders etc. I have a couple of rules set up but I find the whole process somewhat tedious and complicated.
I think a mail application should be much like Time Machine; it should handle all the tedious stuff for you. Then there should be advanced options for those who are more advanced.
But for the rest of us, what do we need? Well, we need a way to handle the ever growing Inbox. The easiest way would be to put it into an archive, wouldn?t it? I remember to do so when it has grown to more than 5000 messages and begin to behave a bit sluggish. Why not have a slider with which one could set when the inbox should be put into an archive? The slider could have amount or time as a measure. Every third month or when it reaches 2000 messages. Whatever. Something simple, anyway.

Something along those lines. I think that to create a better mail application one really needs to understand how non-technical and non-organised users use e-mail. Most people do not set up different folders etc. They receive mail and read it and reply to what needs a reply.

If something more is needed, it must be implemented in such a way that it is obvious for such users. (I am one of them, myself:) That is the tricky stuff and that is what Apple is often very good at.

Well, maybe not so many concrete ideas, I am afraid, but perhaps a hint as to the direction to follow?

John Martellaro

Great ideas there! I’ve seen a procedure to speed up Apple mail when there are too many messages.  Don’t know if it still works in Snow Leopard.

I also like the idea of incrementally discovered/revealed complexity. That’s an art form in app development.

Lee Dronick

I have never learnt to become a power user who organises messages into various folders etc. I have a couple of rules set up but I find the whole process somewhat tedious and complicated.

I use mailboxes/folders and rules a good bit, but yes it could be a simpler process. At least I would like to be able to create a new mailbox when in the rules preference pane.

One feature of Mail that I have started use since getting my iPhone is Notes. I find this particularly useful for shopping lists because they are easier and faster to type up on the Mac than on the iPhone. I have my important email accounts set up for IMAP. When I create a Note is shows up almost instantaneously in the appropriate email account on my iPhone. I also use the Notes app on the iPhone, but mostly when I am out and about.


As I’ve gotten older I’ve found that I’m just not interested in the noise anymore. When I go to the mailbox the junk mail never even gets inside the house. I’m at the same point for email. So I have no problem living with simple filters that keep the small percentage I’m interested in. I don’t even bother checking the spam folder anymore for anything that should be in my inbox.

I do understand that that would not be good enough for some people. But for most of us… I suspect it is. Which may also be a significant reason for why we don’t see more sophisticated email clients.


A lot can be gained from personal behavior changes in how you handle email. It seems like there are three forces that people fight against, that tends to make email more difficult: 1. junkmail & spam, 2. the human need to organize files, and 3. the tendency to view email as something that you should hang on to indefinitely.

I’ve got a system in place that seems to work really well for me, using Time Machine, an iPod Touch, Mail and its rules & smart filters, and probably most importantly, my own web domain with access to rules that can be set at the server level. 

1. I filter down probably 90% of the crap that spammers send, so I don’t ever have to see it - from rules I set for spam, and occasionally URL blocking in my web mail. The rest gets sorted out with Mail rules, if it even gets that far.

2. Maybe once a year or so I go through and clear out most of my junk, hanging on to a spare handful of emails that I might have more immediate need for. Mail is one of the few apps that can interface directly with Time Machine, and on the rare occasions where I need to go back and reference something prior to a couple of months ago (this has only happened two or three times since TM came about), I can simply search for the old email and recover it. Nice to have a back up of old emails, without the client software bloat.

3. I check emails a few times while I’m at work on my iPod, which I have set to delete emails from the server (when deleted from the iPod). That way, emails that should never get more than a glance will never reach my inbox in Mail, so I never have to look at it twice.

That might sound like a complex system to put in place, but it’s really helped me manage the glut with minimal effort.


I’m usually happy to read your articles, but this one really needs editing. Sentences like this “However, it it’s also desirable to also define an overall view option,” are inexcusable in a professional publication. And there are many, many other errors.


One problem with the idea you suggested in your Metadata is your Friend paragraph—most of my most personal emails do _not_ include my name. In fact, most of the time, emails that include my name are spam trying to appear personal! I do a lot of emailing with people that are single sentences, or maybe shortish paragraphs, and we don’t mention names all that frequently, as it just takes time to type.

This got me to thinking. If we could integrate the metadata with the Address Book groups feature, that would work quite well for me. If someone happens to be in my “family” or “close friends” group, they would be handled a certain way than somebody in a work associates group, or clients group, or vendors group. And if you could tumble-down these things even, for instance, if somebody is in a clients group, as well as a group for a particular project, they would be handled differently than if they were not in that project group.

I see a lot of potential value for this way of working, and think you are on to something here…. now, for someone to write it _exactly_ the way I want. wink

I have some more thoughts in mind, but haven’t had time to flesh them out enough to even express myself properly. I’ve been loving this series.

Question. Would it be possible to even do this stuff with plugins to Mail and Address Book? If we could stick with Apple’s tools, it seems, it would be best.


Log in to comment (TMO, Twitter or Facebook) or Register for a TMO account