My Wishes for an Email Application
Martin Winter asked me what I meant by “someone should write a decent mail application” so let me clarify. The Hawk Wings blog already has two dozen interviews with prominent Mac people about Mail, so this is just my point of view, not claiming to be original or anything.
I also know that I could get some of this if I used other email programs. But frankly, Mail is still the best option for me.
I think most people who deal with high traffic mailing lists would like this. Mail does grouping based on subject (likely by design), but this is not the real thing.
Grouping makes too many mistakes, both with unrelated letters that share the same subject or on mailing lists where a subject is sometimes changed e.g. from:
Re: [TxMt] something to
[TxMt] Re: something.
Real threading (based on
in-reply-to headers) would show the thread as the true tree it is, so that you can see from the message overview alone, to whom new letters are replying.
It would also allow for features such as “Kill Offspring” or “Kill Siblings” which can be used to quickly prune a thread into only the interesting branches.
As countless of web applications have shown, tagging is useful. I could easily do without a dedicated ticket system if I could tag incoming mail with BUG, CRASH, REQUEST, FIXED (and Mail handled the
Of course there are other uses for tagging, e.g. tagging interesting letters on mailing lists. Currently Mail supports flagging them, but some stuff is “I should blog this”-interesting, and other is “I should link to this when people ask support questions”-interesting.
I often have to search my mail boxes, and even though Spotlight is fast, it generally takes too long. Why? Because I get far to many results. What I want is the ability to provide multiple match conditions. A simple date interval alone would be a tremendous help.
I can do this with smart mail boxes, but even these are lacking in features, e.g. I can’t match arbitrary message headers, and as others have ranted on before me, it is either “match all these conditions” or “match any of these conditions”. There is no way to do boolean logic.
When doing support, I write a fair amount of identical text. Mail has no way to help me with that.
Needless to say that something like snippets would be wonderful in Mail. It should also do a better job at controlling how the initial reply looks. I have read rants about this before, but it is really weird how Mail sets up things, with an initial empty line that holds the insertion point, and then the signature below the quoted text. I mean, if it was setup for top-posting, shouldn’t the signature be above the letter?
Often I end up re-typing my signature, because the last 10+ lines of the quoted text needs to be deleted, and here it is simply easier to use ⇧↘ + ⌫ (that’s select to end of letter and delete) and re-type it.
I realize here though that what I really want is just better support for external editors, and with the Edit in TextMate input manager, I have gotten that. In TextMate I have all the snippets I need, and I am even toying with a command that reformats the pristine reply, as produced by Mail, into how I would like it to look.
Email Address Mapping
It seems to me that some behavior can be controlled based on email address patterns. For example, when I reply to someone who uses a
*.dk email address, I most certainly do not want the English spell checker enabled. I would also like the “On XYZ someone wrote:” replaced with a more informal greeting.
I also want to setup how email addresses should be mapped when replying to a letter. For example when people write to one of my outdated email addresses, I want the reply to be from my current. There are also a few other situations where I do not want to reply from the email address to which the letter is sent.
Speaking of mapping, many mailing lists are setup so that only subscribers can post, and many subscribers have multiple email addresses. Being able to indicate that messages sent to a particular mailing list should use a given from address, would be useful.
In addition, when I hit “New Message” the
To: field should be pre-filled with the address corresponding to the currently selected message box (mailing list). This would need to be a per message box property.
I have seen many attempts of smarter message display. For example Google knows when to hide quoted text (and make it into a link). How the message should be displayed is likely a very personal thing, and subject to tweaking a lot of heuristics.
So in my ideal email application, the message would be displayed with WebKit and piped through a user controllable chain of filters (plug-ins/scripts).
Then I could do a simple
sed filter to highlight various keywords, or I could pipe letters through Markdown :)
I am thinking that formatting the reply to a letter, could use a similar system.
The key point from the previous section is that the user should be able to shape his email program.
I think we are many who deal with high volumes of email, and being able to better shape our email client would save us a lot of work.
For example searching through the offline archives of the TextMate mailing list is faster and generally gives better results than searching online, but that means I need to transform the offline match to an URL which points to the archive (something I do a lot).
It would be nice if this transformation was automatically done when displaying messages from the mailing list. Something that the scheme outlined above would allow. Think GreaseMonkey for your mailer.
Naturally sharing extensions should be dead simple, and so should the creation of these be. I have mentioned a few different things that I want to customize, but an attempt should be made to unify this into one system. A bit like how TextMate has 3 parts to customization: 1) when should this be active (the scope selector), 2) how should it be activated (the actual activation mechanism, be it a hotkey or mouse gesture), and 3) the actual action (running a command, inserting a snippet, or just changing a preference value).
I know Apple’s Mail does most things for most people, is free, and comes bundled with the operating system. Heck, I mostly enjoy using it myself, despite its delightful quirks such as showing duplicates of each letter (IMAP support), the compose window which can’t handle tabs (making majority of the patches I receive useless), the weird “end of document” behavior, swallowing half my letter when I switch the from email address (because it thinks it was my signature, which is tied to account), etc.
But I do think there is a lot of power users out there, like me, who long for an email application which can be a little smarter in handling our email related tasks.
If you have anything to add, please do so in the comments, as I have almost successfully convinced a friend to work on this.