mu-small
mu

welcome to mu

E-mail is the 'flow' in the work flow of many people. Consequently, one spends a lot of time searching for old e-mails, to dig up some important piece of information. With people having tens of thousands of e-mails (or more), this is becoming harder and harder. How to find that one e-mail in an evergrowing haystack?

Enter mu. 'mu' is a set of command-line tools for Linux/Unix that enable you to quickly find the e-mails you are looking for, assuming that you store your e-mails in Maildirs (e-mail directories).

how does it work?

First there is mu index which fills a database with information about all your e-mails; this may take a couple of minutes the first time you do it, but after that it's a lot faster.

  $ mu index
It tries to pick reasonable defaults, but you can of course specify your own options. You can run mu index periodically to keep your database up-to-date.

After building the database, it's easy to search for messages. For example:

  • get all mails about birds and bees (and similar words)
      $ mu find bird bee
      
    if you want to find message with either one of those, you can do:
      $ mu find 'bird OR bee'
      
  • get all Smith's mails with 'capybara' in the subject line
      $ mu find from:smith subject:capybara
      
  • get the mails in the archive folder where Mary was Cc'd
      $ mu find path:archive cc:mary
      
The way to express the searches may be a bit cryptic at first, but easy to learn (in the author's humble opinion); the mu manpage discusses syntax and usage, and contains examples.

mu is Free Software (GPLv3), runs on Unix/Linux-based systems, and uses the Xapian text indexing engine. Important: for mu to work, your mails must be stored in a set of maildirs

news

  • [2010-01-26] mu version 0.6-beta. After some hiatus in the release schedule, mu is back now! The new version is a total overhaul of what was there before. It's smaller and faster, and removes quite a bit of the (in the eyes of the author) needless complexity. It adds some new features that users asked for, such as a way to exclude directories from indexing (simply put a file called .noindex in it. The queries are bit less featureful, the more useful parts will slowly be added again in future versions. Note, this is version 0.6-beta, the 'real' 0.6 will follow in a few weeks.
  • [2008-11-01] mu version 0.4 released. This version adds extensions to the query language and the ability to get statistics about the messages that match some queries. mu-index is substantially faster. Also, mu-msginfo has been extended. Small optimizations have been done, and some bugs have been fixed. Finally, some GTK+-widgets have been added; they are to be considered 'experimental'.
  • [2008-09-25] mu version 0.3 released; this version adds further signicant indexing speedups (esp. on ext3-file systems). Added searching for relative dates ('3w' for 'three weeks ago'); search for message properties such as has-attachment/signed/encrypted; search for message priority; updated documentation; define bookmarks for search queries; more unit-tests.
  • [2008-09-10] mu version 0.2 released; this version adds supports for message-body searches (Xapian); indexing is much faster; added Maildir++ support; sorting of results; added mu-mkmdir/mu-msginfo. Improved documentation, unit tests.
  • [2008-08-25] mu version 0.1 released

features

mu find:
  • search for sender and recipient; subject,message body text
  • output to stdout, or as maildirs with links to the original messages
mu index:
  • scan messages in recursive Maildirs, Maildir++ or separate files;
  • only changed messages are considered when re-indexing;

download and license

You can download mu releases from their download page (Google Code). mu is released under the terms of the GNU General Public License (GPL), version 3 or later.

repository

The mu source code is available in Gitorious; get it from there:
  $ git clone git://gitorious.org/mu/mu-ng.git
This is the source code for the new versions of mu (0.6 beta and beyond). Unless you are a developer, it is recommend you use the actual releases, as the git-version may break at times.

building and dependencies

mu uses GMime 2.4 and Xapian; you'll need to have those installed to build mu. On Debian/Ubuntu, the following should get you all you need:
 # apt-get install libxapian-dev libgmime-2.4-dev 
(obviously, you also need the normal build tools; gcc/g++, make and friends).

mu uses autotools, so building follows the normal configure/make pattern.

This should work without any problems at least on recent Debian/Ubuntu, for both 32-bit and 64-bit architectures. If it does not work for your distribution, please file a bug with all the error messages, relevant information about your system etc. that you got.

contact

If you think you have found a bug, or you have a good idea for a feature, please put them in the issue list (Google Code).

mu was designed and implemented by me, Dirk-Jan C. Binnema, as a hobby project for my copious free time. It has no relation to my employer.

You can send e-mail to djcb-at-djcbsoftware-dot-nl.

©2008 Dirk-Jan C. Binnema