Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
289 lines (220 sloc) 8.97 KB
.TH MU-EASY 1 "July 2012" "User Manuals"
mu easy \- a quick introduction to mu
\fBmu\fR is a set of tools for dealing with e-mail messages in Maildirs. There
are many options, which are all described in the man pages for the various
sub-commands. This man pages jumps over all of the details and gives examples
of some common use cases. If the use cases described here do not precisely do
what you want, please check the more extensive information in the man page
about the sub-command you are using -- for example, the mu-index or mu-find
man pages.
\fBNOTE\fR: the \fBindex\fR command (and therefore, the ones that depend on
that, such as \fBfind\fR), require that you store your mail in the
Maildir-format. If you don't do so, you can still use the other commands, but
you won't be able to index/search your mail.
By default, \fBmu\fR uses colorized output when your terminal is capable of
doing so. If you don't like color, you can use the \fB--nocolor\fR
command-line option, or set the \fBMU_NOCOLOR\fR environment variable to
Before you can search e-mails, you'll first need to index them:
\fB$ mu index\fR
The process can take a few minutes, depending on the amount of mail you have,
the speed of your computer, hard drive etc. Usually, indexing should be able to
reach a speed of a few hundred messages per second.
\fBmu index\fR guesses the top-level Maildir to do its job; if it guesses
wrongly, you can use the \fI--maildir\fR option to specify the top-level
directory that should be processed. See the \fBmu-index\fR man page for more
Normally, \fBmu index\fR visits all the directories under the top-level
Maildir; however, you can exclude certain directories (say, the 'trash'
or 'spam' folders) by creating a file called \fI.noindex\fR in the directory.
When \fBmu\fR sees such a file, it will exclude this directory and its
sub-directories from indexing. Also see \fB.noupdate\fR in the \fBmu-index\fR
After you have indexed your mail, you can start searching it. By default, the
search results are printed on standard output. Alternatively, the output can
take the form of Maildir with symbolic links to the found messages. This
enables integration with e-mail clients; see the \fBmu-find\fR man page for
details, the syntax of the search parameters and so on. Here, we just give
some examples for common cases.
First, let's search for all messages sent to Julius Caesar regarding fruit:
\fB$ mu find t:julius fruit\fR
This should return something like:
2008-07-31T21:57:25 EEST John Milton <> Fere libenter homines id quod volunt credunt
This means there is a message to 'julius' with 'fruit' somewhere in the
message. In this case, it's a message from John Milton. Note that the date
format depends on your the language/locale you are using.
How do we know that the message was sent to Julius Caesar? Well, it's not
visible from the results above, because the default fields that are shown are
date/sender/subject. However, we can change this using the \fI--fields\fR
parameter (see the \fBmu-find\fR man page for the details):
\fB$ mu find --fields="t s" t:julius fruit\fR
In other words, display the 'To:'-field (t) and the subject (s). This should
return something like:
Julius Caesar <> Fere libenter homines id quod volunt credunt
This is the same message found before, only with some different fields
By default, \fBmu\fR uses the logical AND for the search parameters -- that
is, it displays messages that match all the parameters. However, we can use
logical OR as well:
\fB$ mu find t:julius OR f:socrates\fR
In other words, display messages that are either sent to Julius Caesar
\fBor\fR are from Socrates. This could return something like:
2008-07-31T21:57:25 EEST Socrates <> cool stuff
2008-07-31T21:57:25 EEST John Milton <> Fere libenter homines id quod volunt credunt
What if we want to see some of the body of the message? You can get
a 'summary' of the first lines of the message using the \fI--summary\fR
option, which will 'summarize' the first \fIn\fR lines of the message:
\fB$ mu find --summary napoleon m:/archive\fR
1970-01-01T02:00:00 EET Napoleon Bonaparte <> rock on dude
Summary: Le 24 février 1815, la vigie de Notre-Dame de la Garde signala le
trois-mâts le Pharaon, venant de Smyrne, Trieste et Naples. Comme
d'habitude, un pilote côtier partit aussitôt du port, rasa le château
The summary consists of the first n lines of the message with all superfluous
whitespace removed.
Also note the \fBm:/archive\fR parameter in the query. This means that we only
match messages in a maildir called '/archive'.
Let's list a few more queries that may be interesting; please note that
searches for message flags, priority and date ranges are only available in mu
version 0.9 or later.
Get all important messages which are signed:
\fB$ mu find flag:signed prio:high \fR
Get all messages from Jim without an attachment:
\fB$ mu find from:jim AND NOT flag:attach\fR
Get all messages in the Sent Items folder about yoghurt:
\fB$mu find maildir:'/Sent Items' yoghurt\fR
Note how we need to quote search terms that include spaces.
Get all unread messages where the subject mentions Ångström:
\fB$ mu find subject:Ångström flag:unread\fR
which is equivalent to:
\fB$ mu find subject:angstrom flag:unread\fR
because does mu is case-insensitive and accent-insensitive.
Get all unread messages between March 2002 and August 2003 about some bird (or
a Swedish rock band):
\fB$ mu find date:20020301..20030831 nightingale flag:unread\fR
Get all messages received today:
\fB$ mu find\fR
Get all messages we got in the last two weeks about emacs:
\fB$ mu find emacs\fR
Another powerful feature (since 0.9.6) are wildcard searches, where you can
search for the last \fIn\fR characters in a word. For example, you can search
\fB$ mu find 'subject:soc*'\fR
and get mails about soccer, Socrates, society, and so on. Note, it's important
to quote the search query, otherwise the shell will interpret
the '*'.
You can also search for messages with a certain attachment using their
filename, for example:
\fB$ mu find 'file:pic*'\fR
will get you all messages with an attachment starting with 'pic'.
If you want to find attachments with a certain MIME-type, you can use the
Get all messages with PDF attachments:
\fB$ mu find mime:application/pdf\fR
or even:
Get all messages with image attachments:
\fB$ mu find 'mime:image/*'\fR
Note that (1) the '*' wildcard can only be used as the rightmost thing in a
search query, and (2) that you need to quote the search term, because
otherwise your shell will interpret the '*' (expanding it to all files in the
current directory -- probably not what you want).
We might also want to display the complete messages instead of the header
information. This can be done using \fBmu view\fR command. Note that this
command does not use the database; you simply provide it the path to a
Therefore, if you want to display some message from a search query, you'll
need its path. To get the path (think \fBl\fRocation) for our first example we
can use:
\fB$ mu find --fields="l" t:julius fruit\fR
And we'll get someting like:
We can now display this message:
\fB$ mu view /home/someuser/Maildir/archive/cur/1266188485_0.6850.cthulhu:2,\fR
From: John Milton <>
To: Julius Caesar <>
Subject: Fere libenter homines id quod volunt credunt
Date: 2008-07-31T21:57:25 EEST
OF Mans First Disobedience, and the Fruit
Of that Forbidden Tree, whose mortal tast
Brought Death into the World, and all our woe,
While \fBmu find\fR searches for messages, there is also \fBmu cfind\fR to
find \fIcontacts\fR, that is, names + addresses. Without any search
expression, \fBmu cfind\fR lists all of your contacts.
\fB$ mu cfind julius\fR
will find all contacts with 'julius' in either name or e-mail address. Note
that \fBmu cfind\fR accepts a \fIregular expression\fR.
\fBmu cfind\fR also supports a \fI--format=\fR-parameter, which sets the
output to some specific format, so the results can be imported into another
program. For example, to export your contact information to a \fBmutt\fR
address book file, you can use something like:
\fB$ mu cfind --format=mutt-alias > ~/mutt-aliases \fR
Then, you can use them in \fBmutt\fR if you add something like \fBsource
~/mutt-aliases\fR to your \fImuttrc\fR.
Dirk-Jan C. Binnema <>
.BR mu(1)
.BR mu-index(1)
.BR mu-find(1)
.BR mu-mkdir(1)
.BR mu-view(1)
.BR mu-extract(1)
Jump to Line
Something went wrong with that request. Please try again.