Mutt is surly Men’s best friend when it comes to managing huge amount of emails with Powers in hand.

Some updates which I made to my .muttrc to make my Mutt faster (on Max OSX):

set header_cache         = /Volumes/ramdisk/headers
set sleep_time = 0
set timeout = 15         # idle time before scanning
set mail_check = 60      # minimum time between scans

As seen above, I am keeping the header cache on a ramdisk, it makes reading the same at least 50% faster. Create a RAM Disk of 100MB by running:

diskutil erasevolume HFS+ "ramdisk" `hdiutil attach -nomount ram://204800`

In the example above 204800 means 100*2048, will create a ramdisk of 100MB.

You can see my .muttrc here, customized to my taste (or download from my github):

# Paths ----------------------------------------------
set folder           = ~/.mail               # mailbox location
set alias_file       = ~/.mutt/alias         # where to store aliases
#set header_cache     = ~/.mutt/cache/headers # where to store headers
set header_cache      = /Volumes/ramdisk/headers # where to store headers
#set message_cachedir = ~/.mutt/cache/bodies  # where to store bodies
set certificate_file = ~/.mutt/certificates  # where to store certs
set mailcap_path     = ~/.mutt/mailcap       # entries for filetypes
set tmpdir           = ~/.mutt/temp          # where to keep temp files
set signature        = ~/.mutt/sig           # my signature file

unset maildir_header_cache_verify # don’t verify cache folder-hook . ‘set read_inc=10000’ # don’t update progress too fast set sleep_time = 0 bind index,pager f next-new-then-unread bind index,pager F forward-message bind index,pager b previous-new-then-unread bind index,pager B bounce-message bind index S sort-mailbox auto_view text/html set sendmail_wait=-1 set mime_forward=yes set mime_forward_rest=yes

Basic Options ————————————–

set wait_key = no # shut up, mutt set mbox_type = Maildir # mailbox type set timeout = 15 # idle time before scanning set mail_check = 60 # minimum time between scans unset move # gmail does that set delete # don’t ask, just do unset confirmappend # don’t ask, just do! set quit # don’t ask, just do!! unset mark_old # read/new is good enough for me unset beep_new # bell on new mails set pipe_decode # strip headers and eval mimes when piping set thorough_search # strip headers and eval mimes before searching

Sidebar Patch ————————————–

set sidebar_delim = ’ ’ set sidebar_visible = yes set sidebar_width = 26 color sidebar_new color221 color233

Sidebar Navigation ———————————

bind index,pager sidebar-next bind index,pager sidebar-prev bind index,pager sidebar-open

Status Bar —————————————–

set status_chars = " *%A" set status_format = “───[ Folder: %f ]───[%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]───%>─%?p?( %p postponed )?───”

Header Options ————————————-

ignore * # ignore all headers unignore from: to: cc: date: subject: user-agent: # show only these unhdr_order * # some distros order things by default hdr_order from: to: cc: date: subject: user-agent: # and in this order

Index View Options ———————————

set date_format = “%D %r” #set index_format = “[%Z] %D (%4c) %-30.30F %s” set index_format="%4C %Z %D %-22.22F (%4c) %s" set sort = reverse-date #set sort_aux = reverse-last-date-received # like gmail #set uncollapse_jump # don’t collapse on an unread message #set sort_re # thread based on regex set reply_regexp = “^(([Rr][Ee]?([[0-9]+])?: *)?([[^]]+] )?)

Index Key Bindings ———————————

bind index gg first-entry bind index G last-entry

bind index R group-reply bind index sync-mailbox bind index collapse-thread

Pager View Options ———————————

set pager_index_lines = 10 # number of index lines to show set pager_context = 3 # number of context lines to show set pager_stop # don’t go to next message automatically set menu_scroll # scroll in menus set tilde # show tildes like in vim unset markers # no ugly plus signs

set quote_regexp = “^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+” alternative_order text/plain text/enriched text/html

Pager Key Bindings ———————————

bind pager k previous-line bind pager j next-line bind pager gg top bind pager G bottom set editor=“vim -c ‘set spell spelllang=en’”

bind pager R group-reply

View attachments properly.

bind attach view-mailcap

Ctrl-R to mark all as read

macro index \Cr “T~UN.” “mark all messages as read”

URL View

macro pager \Cu “|urlview” “call urlview to open links”

Saner copy/move dialogs

macro index C “?” “copy a message to a mailbox” macro index M “?” “move a message to a mailbox”

Compose View Options ——————————-

set realname = “Abhinav Gupta” # who am i? set envelope_from # which from? set sig_dashes # dashes before sig set edit_headers # show headers when composing set fast_reply # skip to compose when replying set askcc # ask for CC: set fcc_attach # save attachments with the body #set mime_forward # forward attachments as part of body set forward_format = “Fwd: %s” # format of subject when forwarding set forward_decode # decode when forwarding set attribution = “On %d, %n wrote:” # format of quoting header set reply_to # reply to Reply to: field set reverse_name # reply as whomever it was to set include # include message in replies set forward_quote # include message in forwards bind compose p postpone-message

Contacts

set query_command = “contacts -Sf ‘%eTOKEN%n’ ‘%s’ | sed -e ’s/TOKEN/\t/g’” bind editor complete-query bind editor ^T complete

Biggest Reference: Steve Losh’s guide to Homely Mutt.