I’ve recently started reading Hawk Wings, a blog focused mostly on Apple’s Mail.app and other personal-information programs like iCal and Address Book. I’m always keen on ways to tweak Mail, but I was moved to actually write about it by the recent post Mail’s most annoying bug. It got me thinking about all the ways Mail could be better.

When it was released with OS X 10.0, Mail was barely usable. I had used Eudora up to that point, but when I made the switch to X, I decided to leave the old OS behind completely. While Eudora was available, it did not handle Japanese; it only handled Japanese on OS 9 thanks to a plugin that had not been ported to X (I know nothing of the state of Eudora’s i18n today). I looked at some third-party alternatives, and gladly would have paid for one that I liked, but I found nothing that I liked better than Mail, so I stuck with that.

Today, Mail is a pretty good program, but it has obvious problems, and even if those were all fixed, would be solid but not innovative.

Bad/no keyboard equivalents: Mail lets you read messages one of two ways: by splitting the window into a message-list pane and a message-viewing pane, or by showing each message in its own window. My natural inclination (probably inherited from Eudora) is to open each message in its own window, but when you do this, it is impossible to use the keyboard to navigate between messages while viewing the message. You need to close the current message window, then arrow up/down, then open that message. It’s a small thing, but multiplied out hundreds of times a day it adds up. I am dumbfounded by the lack of this, as well as some of the strange keyboard commands that are there—the commands to send and check mail, two of the most common e-mail activities, are obscure and non-mnemonic.

Bad threading: Mail tries to group messages by thread, but also groups based on subject line. I have a client that uses the subject line “request” on every message he sends me, so every time he sends me work, I need to disclose an increasingly ungainly list of messages (I keep all the old ones around just because I am that way). Another weakness in this quasi-threading is that it is “flat”–it doesn’t show which message is replying to which. This is possible. Properly threaded e-mail been possible for decades. Apple should be able to figure it out.

Inclusion of .sig in body: As far as I can tell, most civilized mail clients segregate the signature line from the body of the message when you are editing. Not Mail. This means you needs to edit around the .sig, or add it back after you’ve deleted it.

Reply format oriented towards top-posters: I’m not going to say that top-posting is wicked and only evil, stupid people do it, but I don’t do it. [Update: Holy crap, look at the passions this topic arouses.] When replying to an e-mail, I try to interleave my points with the sender’s points. Mail is set up to encourage top-posting though: it places the cursor on a blank line above the quoted text, and prefaces the quoted text not with a salutation but with a more bureaucratic “on such-and-such a date, so-and-so wrote:”. So there’s that wasted blank line, and a first line that I almost invariably wind up editing (if you get e-mail from me that has that introductory line unedited, it means either that I’m really busy, that you are bugging me, or that I don’t know how to address you). Again, customized salutation lines have been around for a very long time. Mail should solve this and not assume that everyone is a top-poster. And when I want to interleave my response into the quoted text, Mail does a lazy job. The helpful thing would be to create three blank, unquoted lines with the cursor on the middle line. Mail creates one blank unquoted line. If I’m inserting a comment between two paragraphs of quoted text, there will be one blank quoted line just hanging there—it should clean that up. I think Eudora did.

Simple filtering: I use a lot of rules in Mail to direct my mail into the appropriate slots. I know that Boolean logic can get confusing, but Mail could offer an expert mode for creating rules like “If (A or B) not C” Yes, I know that Mailsmith can do this. I also know that Mailsmith has no support for Japanese. i18n is a real bright spot in Mail: before Mail, e-mail containing Japanese was a frequent PITA. I still have occasional problems with it, but the problem is mostly solved.

No queue for outgoing mail: This is another one of those Eudora features I miss. With Eudora, it was possible to write a message and queue it for delivery later (indeed, this was the default, though it was also possible to send immediately). Not with Mail: you send it, it’s gone. A five-minute grace period would save a lot of mistakes.

So far, these complaints are just of the “this is broken” variety. There are lots of ways Mail could actually be innovative.

Presentation of threads: This is one thing where gmail is out in front: it shows “conversations,” including both messages you received and sent as part of the conversation. Even if Mail would show all the messages in a mailing-list thread in one window—ideally with proper threading indicated—I’d be very happy. If it could go a step further and strip off all the detritus of footers and excess quoting, I’d be amazed.

Mailing-list handling: As long as we’re talking about mailing lists, Mail should be smart enough to recognize “hey, you’ve subscribed to a mailing list” and offer to set up special mailboxes and filters for it. Since almost all mailing lists run on a handful of platforms (Yahoo Groups, Google Groups, Mailman, and maybe one or two others), it should be possible to create special actions for quitting a list, etc, so that newbies who subscribe to a list they then decide to leave don’t post annoyed and annoying messages to the list asking “how do I leave this list?” (actually, this suggests a whole xmlrpc mechanism for managing lists, but that’s a topic for another day).

Ad-hoc mailing lists: this could be dangerous in the wrong hands, but sometimes it is useful to have a mailing list for a short period of time and a small number of people. With the right rules and actions, a mail client could emulate a mailing list well enough. There should be a quick way to set this up.

Alternate views: It could be useful (or at least interesting) to be able to view my mail database in calendrical form. Or by person. It would be interesting, for example, to see a histogram of all the mail exchanged between me and Gwen over time.