Point/Counterpoint - Mutt vs. Thunderbird
In our argument...I mean, in our last column, we discussed the pros and cons of owning a large laptop versus a small one. This month, we delve into something a little more personal: choice of mail client software and why one would want to use a text-based mail client over one that's graphical.
Bill: I'm a Thunderbird user, and Kyle prefers the retro-exoticism of Mutt. I'll let Kyle kick off the conversation, as I'm sure he'll have something pithy to say about what an amazing and cool mail program Mutt is.
Kyle: For starters, let's talk about startup times. Because Mutt is so lightweight, I don't even notice the startup times. For instance, I just timed how long it took me to start Mutt and have it open the INBOX and then exit as fast as I could:
greenfly@minimus:~$ time mutt Mailbox is unchanged. real 0m0.782s user 0m0.096s sys 0m0.036s
That's right, 0.8 seconds. I could have been even faster, but my reflexes are slowing in my old age. In fact, Mutt starts up so fast, that unlike other programs on my desktop—cough, Firefox cough—I don't have to leave it open. I just press a hotkey and launch it when I have new e-mail.
Bill: I just timed Thunderbird, and it took about ten seconds to start up and be done checking mail. Thunderbird may take ten seconds to launch and check mail in all my folders, but it's not like ten seconds is a large amount of time. Once it's open, I leave it open until I'm done with the computer, so it's a ten-second hit, once. There's more to life than raw speed. Good luck with LDAP lookups for corporate address books using Mutt.
Kyle: Oh yes, ten seconds sure sounds a lot like 0.8 seconds. And yes, LDAP lookups. I guess that would be a problem if Mutt weren't so extensible. Because you can make its query command anything you want, you can point to any script. The Internet was kind enough to provide an LDAP query script for me, and other people have queried Gmail and other contact databases.
Bill: Whatever. You need Postfix or some other MTA to send e-mail. What kind of ridiculousness is that? Yeah, another server process on my laptop to maintain and troubleshoot. That sounds like a great idea. Thunderbird can talk SMTP (and even SMTP over TLS, shocking though it may seem!) natively. Even Eudora has enough brains to talk to an SMTP server natively, and that was back in 1994. Oh, wait. You use Mutt. Hey, Kyle, 1989 called; they want their VT-100 back.
Kyle: Who needs to talk to an MTA directly when every Linux system has its own mail server? A local mail server will handle delivering my mail much better and stabler than any client could. What ever happened to “Do one thing and do it well”?
Bill: That's arguable, but beyond the scope of this column. Besides, Mutt has other things that drive me batty...like the user interface. It drives me insane. It's hyper-pedantic. Gotta mark all messages as read? Ctrl-Alt-D+*+infinity sign or something. It's so much easier to right-click on the Inbox and say “Mark all as read” in Thunderbird.
Kyle: Yeah, easier up front and slower for the rest of time. Sure Mutt uses keybindings (familiar ones if you have ever used vim), but the learning curve pays off big-time as you blow through your mail. I can launch Mutt, read through all my new mail, and close it, before Bill's Thunderbird process finishes loading.
Bill: But, then I lose a valuable caffeine break. I click on Thunderbird, have a sip of Coke Zero, and take a quick peek at the latest LOLcats while it loads—no bother at all. What about mail delivery to Mutt? It doesn't support IMAP IDLE, does it? If you're all about speed, you'd want that feature. I seem to remember being more “on top” of e-mail than you were, back when we sat across from each other.
Kyle: The only systems I've ever noticed any IMAP issues on, were ones back-ended on Exchange. Mutt always has gotten fast notifications from my Linux-based IMAP servers.
Bill: And, Exchange is perhaps the most popular mail server in corporate environments.
Kyle: What about the RAM footprint? I wanted to get some metrics for this column from top, but when I launched it and sorted by RAM, Mutt didn't even show up on the console. I had to stretch my terminal until it filled the entire screen before I could find the Mutt process.
Bill: My Thunderbird process shows it eating, I mean, using 128MB of RAM. I don't mind, I have 4 gigs in this thing. What about calendar integration? Thunderbird offers a plugin called Lightning to integrate my Google Calendar in one interface. Try that with Mutt.
Kyle: Oh, that's right—you have a Sport Utility Laptop with 4GB of RAM. In any case, I never understood checking your calendar with your e-mail program. It always seemed like two unrelated things—unless I guess you were born and raised on Outlook.
Bill: Here's a clue: most of the world was born and raised on Outlook.
Kyle: My magic eight ball says “Outlook not so good.” Anyway, another great thing about Mutt is that I can check my e-mail from any system in the world, provided I can get access to putty (if it's Windows) or a Linux terminal to ssh into my server. Bill has to download and install Thunderbird, configure it, and then pay for another hour at the Internet café.
Bill: No, that's when I use my BlackBerry. If that's your “speed” use case, I'll put my quickdraw BlackBerry up against your mini laptop anytime, Black Bart.
Kyle: Certainly sounds like Thunderbird is great, since you have to supplement it with one or two other mail clients.
Bill: Man, my grandmother “gets” Thunderbird. I put Mutt in front of her, and I may as well have asked her to prove Ohm's Law using calculus.
Kyle: Ohm's Law, eh? Well not everyone shows such resistance (pun intended) to Mutt. Another thing Mutt got right is configurability. Just about anything you would want to configure, you can configure in Mutt. At first, I spent some time getting things just right, but ultimately, Mutt is like a finely tailored suit—you do a few tweaks here and there, and then it fits you perfectly. These days, I almost never change any settings.
Bill: Thunderbird has tons of configurabilty. It's a Mozilla-spawned app, not a GNOME-spawned app. And, who spends a lot of time configuring a mail client? Set it up, point it at your mailbox, and you're done. Fire and forget. I guess pedantic people would tweak their mail settings periodically, so they'd want a pedantic client.
Kyle: I know I mentioned vi keybindings, but that bears repeating—there's nothing quite like being able to manage the entire e-mail program strictly from the keyboard and even have it do all the really heavy lifting for me. There are configurable hooks for everything. So, if I want a particular signature for my LUG e-mails and a different one for my friends, Mutt takes care of it for me.
Bill: Vi keybindings, yeah yeah. I just showed my wife, Kelly, what Mutt looks like. She said, “Mutt looks like something I'd use on the Commodore 64. Kyle uses that? What's that about?”
Kyle: That's because it probably could run on a Commodore 64. Thunderbird's RAM footprint couldn't even be stored on one.
Bill: I come back to your speed argument again. I just timed Thunderbird starting up, checking mail in all folders and shutting down, and it took six seconds this time. That's not “get up and go to the bathroom” time, that's barely a couple blinks.
Kyle: No, that happens if you ever want to do something like use Thunderbird with local maildirs. The entire thing goes down the crapper.
Bill: And why would you want to do that? Store it all on the server. IMAP for the win.
Kyle: Hey, if your laptop is always on-line, why not use Gmail? For me, I like to be able to reference archived e-mail no matter what connection I have. Mutt can handle just about any e-mail source you can throw at it.
Bill: If that's an issue, just set Thunderbird to cache e-mail locally, then. Configurability.
Kyle: Then there's the mailing-list support. It's hard to beat Mutt for managing multiple folders of mailing lists. It makes it easy to sort through threads without thinking every IMAP folder is for a mailing list.
Bill: Thunderbird has a threaded reader mode.
Kyle: Must be fun to set that every time.
Bill: It's a couple clicks. What do you have against a mouse?
Kyle: I can type at almost 100 words per minute. I don't even know how to manage mouse speed, but I know it's slower. Back to configurability, managing PGP is a breeze with Mutt. You even can have it sign and encrypt replies to encrypted messages automatically, or have it always encrypt messages to particular people.
Bill: Managing PGP is easy with Thunderbird too—simply add the Enigmail plugin and configure it. It has all those features you mention.
Kyle: All of this support is built in. I didn't have to grab any plugins, and it still doesn't take up much RAM.
Bill: And, it still looks like a Commodore 64 application and is deliberately obtuse.
Kyle: Turn in your geek card now. All the geeks I know think looking like a Commodore 64 application is a bonus—especially on my green-on-black terminal.
Bill: Having a geek card is for geeks, man. You'll learn this when you surpass “system architect” and become an “IT Manager”. And I told you, 1989 called; they want their VT-100 back.
Kyle: Ahhh, I see what happened. One step into management, and Bill started pointing and clicking at everything. Next thing you know, he'll be complaining because he can't embed his PowerPoint presentation into the body of his Thunderbird e-mail.
Bill: Hey, even you dug the data-center calculator spreadsheet I came up with. Fear my OpenOffice.org mojo. I seem to remember you wanting to learn the formula-fu for that one.
Kyle: Heh, I don't remember that part. I'd be too scared I'd wake up the next morning with pointy hair.
Bill: You have to have hair long enough to be pointy.
Kyle: Back on topic, man. Another great thing about Mutt is that it makes it easy to check local mail on any server in your environment. It's much better than installing X libs, or firing up less on /var/spool/mail/.
Bill: Now that is a point I will concede, which is why I do maintain a Mutt instance on my colo'd server to access via ssh. But, I use it only about once a year. And, every time I do, I feel the pain of the interface. Reminds me of the first time I tried to use Debian's dselect program.
Kyle: Do you remember when you had too many messages in your INBOX to delete, and Thunderbird choked? I remember you asking me about my mutt-fu then too.
Bill: No, that was Exchange's IMAP support choking, not Thunderbird. I have more messages in my Zimbra mail, and it handles mass deletes just fine.
Kyle: Ahh, yet another mail program, eh? Right. All I know is how quickly Mutt churned through all of those e-mail messages.
Bill: Back to speed again. For a guy who drives a Honda, you're sure obsessed with speed.
Kyle: I'm more obsessed with efficiency than speed in both my car and my mail client. What it ultimately comes down to is efficiency in the user interface and RAM footprint, along with the fact that I can tweak just about any setting I don't like. E-mail is just one of the many things I deal with in a day, so I like to get in, get out and get on with my work. The fact that I can access the same mail client on any computer and even use it on each of my servers is a bonus. In conclusion, it has vi keybindings. Enough said.
Kyle Rankin is a Senior Systems Administrator in the San Francisco Bay Area and the author of a number of books, including Knoppix Hacks and Ubuntu Hacks for O'Reilly Media. He is currently the president of the North Bay Linux Users' Group.
Bill Childers is an IT Manager in Silicon Valley, where he lives with his wife and two children. He enjoys Linux far too much, and he probably should get more sun from time to time. In his spare time, he does work with the Gilroy Garlic Festival, but he does not smell like garlic.
Kyle Rankin is a VP of engineering operations at Final, Inc., the author of a number of books including DevOps Troubleshooting and The Official Ubuntu Server Book, and is a columnist for Linux Journal. Follow him @kylerankin.
- My Childhood in a Cigar Box
- Tech Tip: Really Simple HTTP Server with Python
- Papa's Got a Brand New NAS
- Applied Expert Systems, Inc.'s CleverView for TCP/IP on Linux
- Returning Values from Bash Functions
- Rogue Wave Software's TotalView for HPC and CodeDynamics
- Panther MPC, Inc.'s Panther Alpha
- Simplenote, Simply Awesome!
- NethServer: Linux without All That Linux Stuff