A review of Mac OS X’s Mail application

Now that Rescomp has an IMAP server, I finally took the opportunity to try out Mac OS X’s Mail application on my “real” mail—I’ve previously tried it a few times, but never with the same quantity and type of mail I actually receive. Normally, I use Mutt from a Unix terminal, but I’ve always liked the idea of using a graphical client, and Mail has always seemed pretty well-designed and feature-complete to me.

I had expected Mail to work slightly differently than how I was used to reading mail, and I was prepared to change my behavior slightly to accommodate it. But within the first hour, I had identified three major issues that seriously cramped my ability to read mail:

  • Mail doesn’t show messages threaded. I had gotten so used to Mutt’s display of mail folders with threads grouped and displayed as thread trees that I had forgotten that most mail clients don’t do this.

  • I get a lot of mailing list digests, most of them in multipart/digest attachments. Mutt lets me view a digest of this type as its own mail folder, showing me a list of the subjects in the digest and letting me pick which messages to read without having to scroll through the whole message. I read a few mailing lists (e.g., carbon-dev) where I care about some threads but would rather just ignore others, and if I have to page through the whole digest just to see the messages I want to read, I usually won’t bother. Mutt also lets me reply to a digested message as if I had received it a directly, which is a feature I absolutely love. Replying to a digested message without this is a pain in the rear, if you want the quoted text and subject lines (not to mention In-Reply-To and References headers) to look right.

  • Mail makes it much too hard to save a message from my inbox to another mailbox. For ten years, I’ve read email as follows:

    1. All new mail goes into my inbox.
    2. I read each message, and process it (e.g., reply) as necessary.
    3. If it’s junk or bulk mail, I delete it. If it’s personal or important, I save it to a mail folder for future use.

    In Mutt (and Pine and Elm and tin and slrn and every other Unix mail or news client I’ve ever used), this is easy—I hit S, type in a mailbox name, and hit return. In fact, most of the time I don’t have to type in the mailbox name, since it has a default mailbox that is right 90% of the time (I can configure what the default is using regular expressions in the .muttrc file, so it knows my habits). In other words, filing a message in Mutt takes an average of a little over two key presses, and is usually under a second.

    On the other hand, Mail appears to encourage me to either leave messages in my inbox or delete them immediately. The only way to save a message to another mailbox is to drag it there, or to select the “Transfer” submenu and pick the mailbox I want from a list of all my mailboxes. As of right now, I have over three hundred, so this is no easy task. It takes a lot of mousing around and thought, and Apple appears to provide no shortcuts for this behavior except a “Transfer again” command which is useless to me, as I almost never want to move a message to the same mailbox as the previous one.

When I discovered that last flaw is when I pretty much gave up on Mail. It intrigued me, though, since it’s not quite a functionality problem like the first two, but rather an interface issue that I hadn’t expected. At first, it seemed like a serious flaw in the graphical interface, and I concluded that a keyboard-driven interface was simply capable of certain things that a GUI wasn’t. Then I realized this was silly—Mutt is also a graphical client (Laura pointed this out to me last night), it’s just limited to the VT100 interface, and keyboard-driven instead of mouse-driven. The Mail app could provide the exact same interface if it wanted; the S key could (and should!) bring up a dialog that let me type in a mailbox name in the exact same way as Mutt does. This was a surprising realization, although I guess it shouldn’t have been.

I’ve filed my three issues as enhancement requests with Apple (3147482, 3147473 and 3147487, respectively), and I hope they’ll add them to a future version of Mail. For now, I might fire it up occasionally, for things like saving and receiving attachments (IMAP makes this finally feasible), but I’m back to Mutt full-time.

13 thoughts on “A review of Mac OS X’s Mail application

  1. I’m curious, why use message digests? In my experience, they make it much more complicated to track a thread spilling across multiple days, or marking parts of the day’s traffic for later consideration; and the one advantage I can see of having it chunked and categorized can be matched by automatically sorting list messages into a group. But presumably they do something for you, so what am I missing?

  2. In part, I use message digests because that’s what I do :) It’s what I’ve always done. I like them, though, especially for high-traffic mailing lists where I don’t care about most of the content most of the time. Yes, I could do some sort of automatic filtering or sorting, but (as I said) I like having my mail all end up in a single mailbox—I tend to forget to read mail if it goes someplace different—and so filtering on the server side isn’t an option. There are clients that group and sort automatically, but I like being able to read my mail with any mail client, not just my “preferred” one, and a dumb webmail client or the Unix “from” command is never going to understand how to filter and sort my mailing lists. Having digests means that the mail I care about isn’t lost in a swarm of arguments about what version control system GCC should be using. (Instead, it’s lost in a sea of spam.) Digests also make email easier to delete: If I decide I don’t feel like reading carbon-dev today, I can delete it with a single keystroke, instead of having to find and delete each message individually—even with a grouped approach, I’d still have to at least acknowledge the existence of multiple messages.

    Plus, my telnet session beeps and spews at me every time I get new mail. I like this feature, but if I had got too much more mail, it might become too frequent to be convenient. I get enough mail as it is. Digests make me feel like I’m getting less, even if it’s not true…

    I suppose I could set up filtering on the mail server, have mailing list traffic deposited directly into individual mailboxes, which I could then treat more like I do Usenet, using a single client to access them at regular intervals, instead of having them pushed to me along with my email. This would require the addition of a whole new form of message-reading to my online routine. I’m still getting used to checking the RSS aggregator.

  3. Ah. I can understand where you’re coming from. I addressed not having to add a new form of message-reading by switching my mail to gnus, so my Usenet and email come simultaneously. (It also makes it easier to explain where I spend free time to friends and family;rather than explain Usenet, I just say I’m checking my mail :-)

  4. Okay, you’ve convinced me I won’t be trying Mac OS X Mail any time soon; I’m an elm->pine->mutt user from way back and being unable to save easily to different archival mailboxes is a deal-killer for me, too.

    But have you tried any other GUI clients? Maybe Mozilla? Right now if I get HTML mail or an attachment (that’s not spam or a virus :-) ) I have to go through major gyrations to read it. I’m also attracted to the idea of keeping my mail archives on my laptop rather than on a server. But I don’t want to give up mutt-style features. Are there no GUI solutions for mutt lovers?

  5. P.S. I dream in vi and am not sure I could ever get used to a GUI for text entry. I don’t suppose any of the GUI mail clients permit you to define an external text editor, do they?

  6. I agree that Mail does not handle threaded mailing lists well. I have Mail filter my newsgroup mail into a separate folder so it doesn’t clog up my inbox. Selecting a message in the Viewer window will highlight that thread in bright yellow making it easier to follow. If you then click on the “Subject” column header the topic will then become grouped together which makes it pretty easy to follow.

    For me it is the sorting and searching functions that makes Mail much easier to use than textual interfaces.

    It is trivial to move messages to another folder. Just select the mail entries in the viewer window and drag them to a different mailbox folder. You guys do know how to use a mouse, right? If you want to repeat this on another set of message(s) without using a mouse then type option-command-T.

  7. I appreciate your patronizing and completely unhelpful tone, Matthew, I really do. As I mentioned in my entry, I have over three hundred mail folders. It is not trivial to “just” drag a message onto a folder when you have to spend thirty seconds waiting for the list of mailboxes to scroll to the one you want. I know how to use a mouse, but this is once instance where being able to use the keyboard would make things that much quicker.

    Command-option-T is a completely useless shortcut key, by the way, because I never (and by never, I mean it’s happened once in the past year) want to move a message to the same folder I moved the previous message to. I want to move it someplace else.

    I use Mail every day (and the scripts I wrote make it much easier), but if you really think that Mail’s “sorting and searching functions” set it apart from command-line mail programs, that just means you haven’t used a really good one.

    Really, it’s not about the input mechanism—GUI mail clients have extra input methods (the mouse, buttons, icons, menus, etc…) to draw upon, but it’s just as easy (easier!) to write a bad GUI mail interface as it is to write a bad text-based one. Writing a good mail client is hard, and no one’s made a perfect one yet. Mail is good, and it’s getting better, but it definitely has a ways to go.

  8. Matthew’s comment and Alexei’s response are timely. Just this weekend I’ve been trying to use Mail.app and running into all of the problems described above. I, too, have hundreds of very specific mail folders and dragging is ridiculous. There are a number of other essential operations in Mail.app which too mouse-dependent as well. For instance, I can’t find a keyboard shortcut to go from the sub-window containing the message list to the sub-window containing an individual message, and the arrow keys scroll through the messages but won’t scroll down within a message.

    At the moment I’m nursing a sore shoulder from struggling with Mail.app for a couple of hours this morning and I’ve had to move my mouse pad over to my left hand in order to avoid aggravating it into a full-blown RSI. That’s nuts.

    So: is there really no decent IMAP solution for Mac OS X that doesn’t have the shortcoming above, can do what Unix geeks are used to in elm/pine/mutt, and nevertheless can display HTML mail? Please please please?

    P.S. I’ve tried enabling the “keyboard mouse” in Universal Access but my number keys have no visible effect on the cursor. I’ve got a third-party USB keyboard and mouse (I can’t stand my PowerBook’s built-in keyboard and trackpad for more than a few minutes, also for ergonomic reasons) and I’m wondering whether their drivers are at fault. Anybody heard of another possible explanation?

  9. Just to the HTML mail. Set up your mailcap (I do not know, where it is on Mac, but I would try /etc/mailcap first). Put there a line (somewhere to the bottom)

    text/html; dehtml ‘%s’ ; copiousoutput

    where dehtml is this script:

    #!/bin/sh
    # $Id: dehtml,v 1.5 2003/03/27 03:14:08 matej Exp $
    lynx -force_html -localhost -nopause -pseudo_inlines \
    -width=65 -dump -hiddenlinks=ignore -underscore \
    2>/dev/null \
    $1 \
    | tr -s ‘ ‘ \
    | sed -e ‘s/^[[:space:]]*//’ \
    | cat -s

    and do not forget to add this to your .muttrc:

    alternative_order text/plain text/html
    auto_view text/html

    Cheers,

    Matej

  10. I can’t find a keyboard shortcut to go from the sub-window containing the message list to the sub-window containing an individual message, and the arrow keys scroll through the messages but won’t scroll down within a message.

    You can tab to change focus between the various parts of the message viewer window, including the panes. So if you the message list is focused and you want to use the arrow keys to scroll the message instead, just press tab. To go back, press shift-tab (or tab a few times to cycle around the other parts of the window).

  11. It’s a very good coincidence for me that I found this webpage as I was just struggling with Mail’s inability to efficiently save to specified mailbox. I too have many mailboxes, and have had to come up with a rather cumbersome way to organize my mail.

    Basically what I’ve been doing is letting my mail build up in my inbox, and then use the “list by sender” function so that I can use the “transfer again” option repeatedly with each person in order. This might normally be considered a good fix, except for the fact that (as I believe many do) I use my inbox to store the important messages that I don’t at that moment have time to reply to or read. Cluttering up my inbox is clearly not a good idea.

    Anyway, thanks for writing those scripts. At least this way I don’t have to go back to using PINE; I’ve been tempted, but Mail has enough good features that I’ve been reluctant. For the moment, with your scripts, I don’t see any reason to switch back, but who knows, that may change.

  12. Aaack. I just realized after trying to get your “Save to Mailbox” script to work with my local mailboxes, that you have it listed as a “known issue”. Drat.

    Any chance you can get the script to work with local mailboxes anytime soon?

  13. I use pine and OSX Mail combined … pine on my unix host is my “first run through” of my mail – this is how I read my mail, and where I filter out the nonsense. Some email that I think I will need quick access to is saved (using those terrific keyboard clicks) in a pine folder. Then, step two, that I do once a week or so, is download my pine inbox to OSMail (for archival storage I guess). Here, I do the second stage of storing – emails that I saved just because I wanted the person’s email address are handled (email address saved in the Address Book, message deleted), and then finally the messages to keep get filed. This is pretty smooth for me, and really helps me to fight the packrat urge to save every email message I’ve ever received.

    The one problem is importing my pine sent-mail into OSX Mail. I did this once (I thought by using the Mail Import tool) but today I’m trying again and it’s not working. So I have to figure that out again. Any ideas?

Comments are closed.