Mutt & Maildir Mini-HOWTO

Introduction

This document describes how to use the Maildir format with the Mutt MUA. It has technical and performance advantages over the mbox format.

It is supported by MTA's like Exim, Postfix and qmail, MDA's like maildrop and procmail and IMAP4/POP3 servers like Dovecot and Courier to just name a few.

This document uses the Maildir++ directory layout for Maildir subfolders.

Using Maildir format with Mutt

Basic setup

You should already have setup your system to use Maildir. This assumes your Maildir being ~/Maildir and that it contains Drafts and Sent subfolders as commonly used by other MUAs via IMAP4.

Mutt configuration

This section describes the statements to put into your muttrc.

First tell Mutt to use the Maildir format:

set mbox_type=Maildir

Next configure the locations of the common folders:

set folder="~/Maildir"
set mask="!^\\.[^.]"
set mbox="~/Maildir"
set record="+.Sent"
set postponed="+.Drafts"
set spoolfile="~/Maildir"

Set up mailboxes by scanning for all subfolders in ~/Maildir:

mailboxes `echo -n "+ "; find ~/Maildir -maxdepth 1 -type d -name ".*" -printf "+'%f' "`

Note that this requires find(1) from the GNU findutils, which on BSD systems usually is installed as gfind(1).

Add macros to make the folder browser usable by always using the mailboxes setup above:

macro index c "<change-folder>?<toggle-mailboxes>" "open a different folder"
macro pager c "<change-folder>?<toggle-mailboxes>" "open a different folder"

To additionally get straight to the folder browser when copying, moving and attaching mail, add the following macros:

macro index C "<copy-message>?<toggle-mailboxes>" "copy a message to a mailbox"
macro index M "<save-message>?<toggle-mailboxes>" "move a message to a mailbox"

macro compose A "<attach-message>?<toggle-mailboxes>" "attach message(s) to this message"

License

This document is free documentation; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Acknowledgments

Thanks to Alexandre Beelen for suggesting a fix to the original mailboxes command to handle folder names that contain white space, to Martin Steigerwald for suggesting to simplify the mailboxes command by using find(1), to Dave Kiddell for pointing out that the latter depends on a GNU findutils specific feature and to Abel Daniel for pointing out some minor errors.