Skip to main content

Back to Mutt

For the last decade I have used web based email almost exclusively for work and personal use, and in due course have accumulated a rather large email archive. Lately I have been traveling a lot, and started missing offline email, especially since the flights don't have wifi in general, so I decided to augment my online email with an offline one.

My first choice was Apple Mail. The setup and mailbox imports were a breeze, and the interface is beautiful. However the mail client crumbled under the large number of messages that I have: color beach balls were a common sight, and the client seemed to leak memory--after an hour of use, the memory footprint was roughly 2.5GB which made matters worse.

I had a similar issue with other mail clients, and while talking to a colleague at work, I remembered that I did not experience these issues with a very old mail client that I used before: mutt.  So I went back to set it up.

Mutt is not for the faint of heart, but techies should feel at home setting it up and using it. The installation is a breeze on Mac OS X, thanks to the ports system:

sudo port install mutt-devel +compress +gnuregex +gpgme +headercache +imap +pop +sasl +sidebar +smtp +ssl +tokyocabinet 

The configuration is a different story. Like most Unix programs, the installation requires editing configuration files. The first is .muttrc, that you put in your home directory. I have lost my older .muttrc, so I had to recreate it from scratch:


set realname="First Last"
set from = "email address"
set imap_user = "email address" # for google apps email
set imap_pass = "password"
set smtp_pass = "password"




set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set postponed ="+[Gmail]/Drafts"




set header_cache =~/.mutt/cache/headers
set message_cachedir =~/.mutt/cache/bodies
set certificate_file =~/.mutt/certificates


set smtp_url = "smtp://email address@smtp.gmail.com:587/"


set sort = threads
set sort_aux = last-date-received


set signature = "~/.signature
set editor = emacsclient"


set mail_check = 15
set timeout = 15
set imap_peek=no


set imap_keepalive = 900


auto_view text/html


set print_command = muttprint

Now Mutt is ready to use. There are a couple of conveniences though that would make life a lot easier. One is handling HTML emails that a lot of people tend to use these days. You can add the following to your .mailcap file in your home directory

text/html; lynx -dump %s ; nametemplate=%s.html; copiousoutput

which allows you convert HTML emails and display them as cleaned up text inside of mutt.

The second convenience is getting your address book from Google mail. Goobook script is excellent, and the installation instructions and download links are available from here.

Lastly is adding color to mutt. While you can edit the color scheme manually, it is usually better to start from a designed scheme and customize it. I like using Solarized, and you can download the schemes directly from GitHub.

And now you're ready to roll, even with a large mailbox.


Comments

Popular posts from this blog

Kindle Paperwhite

I have always been allergic to buying specialized electronic devices that do only one thing, such as the Kindle, the iPod, and fitness trackers. Why buy these when technology evolves so fast that a multi-purpose device such as the phone or a smart watch can eventually do the same thing, but with the convenience of updates that fix bugs and add functionality? So, I was shocked when this weekend I made an impulse buy and got the newest Kindle Paperwhite—a special purpose device for reading eBooks. I was walking past the Amazon store in the mall and saw that the newest Kindle Paperwhites were marked down by $40 for the holidays. The device looked good in the display, so I went in to look at it closely. The Paperwhite is small and light, with a 6” screen that is backlit and waterproof.   The text was crisp and readable, and in the ambient light, it felt like I am reading a printed book. I was sold and bought it on the spot. At home I have struggled to put it down. The bo...

A paper a day keeps the doctor away: NoDB

In most database systems, the user defines the shape of the data that is stored and queried using concepts such as entities and relations. The database system takes care of translating that shape into physical storage, and managing its lifecycle. Most of the systems store data in the form of tuples, either in row format, or broken down into columns and stored in columnar format. The system also stores metadata associated with the data, that helps with speedy retrieval and processing. Defining the shape of the data a priori, and transforming it from the raw or ingestion format to the storage format is a cost that database systems incur to make queries faster. What if we can have fast queries without incurring that initial cost? In the paper " NoDB: Efficient Query Execution on Raw Data Files ", the authors examine that question, and advocate a system (NoDB) that answers it. The authors start with the motivation for such a system. With the recent explosion of data...

A paper a day keeps the dr away: Dapper a Large-Scale Distributed Systems Tracing Infrastructure

Modern Internet scale applications are a challenge to monitor and diagnose. The applications are usually comprised of complex distributed systems that are built by multiple teams, sometimes using different languages and technologies. When one component fails or misbehaves, it becomes a nightmare to figure out what went wrong and where. Monitoring and tracing systems aim to make that problem a bit more tractable, and Dapper, a system by Google for large scale distributed systems tracing is one such system. The paper starts by setting the context for Dapper through the use of a real service: "universal search". In universal search, the user types in a query that gets federated to multiple search backends such as web search, image search, local search, video search, news search, as well as advertising systems to display ads. The results are then combined and presented back to the user. Thousands of machines could be involved in returning that result, and any poor p...