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 doctor away: MillWheel: Fault-Tolerant Stream Processing at Internet Scale

The recent data explosion, and the increase in appetite for fast results spurred a lot of interest in low-latency data processing systems. One such system is MillWheel, presented in the paper " MillWheel: Fault-Tolerant Stream Processing at Internet Scale ", which is widely used at Google. In MillWheel, the users specify a directed computation graph that describe what they would like to do, and write application code that runs on each individual node in the graph. The system takes care of managing the flow of data within the graph, persisting the state of the computation, and handling any failures that occur, relieving the users from that burden. MillWheel exposes an API for record processing, that handles each record in an idempotent fashion, with an exactly once delivery semantics. The system checkpoints progress with a fine granularity, removing the need to buffer data between external senders. The authors describe the system using the Zeitgeist produ...