overview |
|
mairix is a program for indexing and searching email messages stored in Maildir (see the documentation section below), MH or mbox folders.
|
Some features:
- Indexing is fast. It runs incrementally on new messages - any particular
message only gets scanned once in the lifetime of the index file.
- The search mode populates a "virtual" maildir (or MH) folder with
symlinks which point to the real messages. This folder can be opened as usual
in your mail program. (Note, if messages are in mbox folders, copies are made.
Similarly if the virtual folder has mbox format, it is filled with copies of
the matched messages.)
- The search mode is very fast.
- Indexing and searching works on the basis of words. The index file tabulates
which words occur in which parts (particular headers + body) of which
messages.
|
|
mairix is licensed under the GPL.
Suggestions, bug reports, experiences, praise, complaints etc to
the author, please. See this page for contact details.
|
mailing list |
|
The mairix-users list is hosted at SourceForge.
To subscribe, visit The subscription page .
|
stable releases |
| Version 0.21 |
22 June 2007 |
|
|
Available as
GPG signature for mairix-0.21.tar.gz
Release notes:
- Fix make clean target in dfasyn/ (Benj. Mako Hill)
- Limit number of messages that are examined when an end boundary is missing in
an mbox (Chung-chieh Shan)
- Avoid examining . and .. when traversing MH folder hierarchy (Steven Lumos)
- Fix various bugs in the name/value parser
- Add some RFC2231 support to the name/value parser (continuations)
- Fix indexing when existing database only contains 1 message
|
| Version 0.20 |
20 March 2007 |
|
|
Available as
GPG signature for mairix-0.20.tar.gz
Release notes:
- Cache uncompressed mbox data (Chris Mason, further work by me)
- Fix gaps in date ranges for search
- Unlock database if mairix is interrupted (Paul Fox)
- Add fast index option (-F)
- Fix conditional compilation errors for compressed mbox
- Reimplement MIME header parsing
- Add capability to search on names of attachments
- Add capability to search on state of message flags
- Create maildir-format mfolder filenames correctly with regard to flags
- Various bug fixes (Oliver Braun, Matthias Teege)
|
| Version 0.19 |
15 July 2006 |
|
|
Available as
GPG signature for mairix-0.19.tar.gz
Release notes:
- mairix.spec fixes (André Costa)
- bug fix: freeing of message structures (Karsten Petersen)
- Add new -x (--excerpt-output) option, an alternative mode for searching.
This displays the key headers from the matching messages on stdout.
- Add notes about the mairix-users mailing list and the SourceForge page to
README.
- Fix configuration + compilation to allow building with gzip support but
without bzlib support.
- Rename internal functions like zopen() to avoid name conflicts on MacOS X.
(Vincent Lefevre)
- Remove a spurious ; in bison input file (Vincent Lefevre)
- Improve output given in various error conditions (based on patch by Karsten
Petersen)
|
| Version 0.18 |
10 March 2006 |
|
|
Available as
GPG signature for mairix-0.18.tar.gz
Release notes:
- Support bzip2'd mbox folders
- Fix bugs in parsing mbox folders containing unquoted 'From ' lines inside
MIME body parts
- Fix bug in parsing content-type data containing quotes with whitespace
before
- Clone the message flags (when both the source folder and mfolder are both
of maildir type)
- New manpages mairix.1 and mairixrc.5 are included, and the old texinfo-based
documentation is deprecated into the old_docs/ directory.
- Upgrade scanners to new version of dfasyn
- Support Mew's MH folder subtype
|
| Version 0.17.1 |
16 December 2005 |
|
|
Available as
GPG signature for mairix-0.17.1.tar.gz
Release notes:
- Fix detection of MH folder subtype used by nnml (Gnus)
- Fix filename format generated in the /cur/ directory for maildir mfolders.
- Syntax fix in configure script
|
| Version 0.17 |
14 November 2005 |
|
|
Available as
GPG signature for mairix-0.17.tar.gz
Release notes:
- Support gzipped mbox folders (any file matched by a mbox= line in the config
file is considered as a gzipped mbox if its name ends in .gz)
- Rework directory traversal for the '...' construct to speed up indexing and
the check that mfolder isn't going to overwrite a real folder when searching.
- Check whether database exists before attempting to do searching.
- Matched new maildir messages go in /new/ subdirectory of maildir mfolder.
- Fix lots of compiler warnings generated by gcc4.x
- Don't create and immediately scrub database entries for empty mbox folders.
- Fix usage() info for bare word in searching
- Allow '.' on the ends of numeric filenames in MH folders (to work
with Evolution)
- Update .PHONY target so that 'make install' etc are more reliable.
- Add --version switch
- Fix bug with size argument passed to memset
- Add X-source-folder header to indicate the original folder of a match
found in an mbox.
- Migration to git for revision control.
|
| Version 0.16.1 |
24 May 2005 |
|
|
Available as
GPG signature for mairix-0.16.1.tar.gz
Release notes:
- Remove lockfile if the program terminates abnormally.
|
|
|
Available as
GPG signature for mairix-0.16.tar.gz
Release notes:
- Home directory (~) and environment variable ($foo / ${foo}) expansion in the
.mairixrc file
- Add -Q flag to skip database integrity checks during indexing (equivalently
the nochecks option in .mairixrc file). This speeds up indexing but loses
some robustness.
- Add ^ word prefix to require substring search to be left-anchored
- Split 'make clean' into separate clean and clean_docs
- Improve some error messages
- Add online help entries for -o and -d
- Don't write out the database if there are no changes found during indexing.
- Fix stale information about the 'and' and 'or' delimiters in the online help.
- Add the capability to omit particular folders from indexing (omit keyword in
.mairixrc file.) This allows broad wildcards to be used with selected
folders removed from the wildcard which is much more convenient in many
set-ups.
- Avoid writing matches to any folder on the list of folders to be indexed
(affects both mfolder option and argument of -o command line switch.) This
prevents disasterous loss of messages in the event of trying to overwrite an
wanted folder with the matches.
- Implement dot-locking on the database file to prevent corruption due to
concurrent updates. Add --unlock file to forcibly remove a stray lockfile.
- Display message path in warning messages from rfc822 parsing.
|
| Version 0.15.2 |
3 February 2005 |
|
|
Available as
GPG signature for mairix-0.15.2.tar.gz
Release notes:
- Fix segfault if messages are deleted during indexing.
|
| Version 0.15.1 |
4 December 2004 |
|
|
Available as
GPG signature for mairix-0.15.1.tar.gz
Release notes:
- Fix bugs in handling Pine's mbox file formats.
- Fix minor typo in the dump output
|
| Version 0.15 |
11 August 2004 |
|
|
Available as
GPG signature for mairix-0.15.tar.gz
Release notes:
- Migrate to GNU Arch for hosting the development archive
- In mbox parsing, handle return path in 'From ' line only being a local part
(reported by several people)
- Don't output number of matched messages in raw mode (to make output more
useful to scripts etc) (Samuel Tardieu)
- Fix vfolder->mfolder in dotmairixrc.eg (reported by several people)
- Handle spaces in multipart message boundary strings (Chung-chieh Shan)
- Be more tolerant of bad multipart message boundary separators (Chung-chieh
Shan)
- Add rudimentary database dump command (-d/--dump)
- Fix bug in handling of per-database hash key
- Fix casting between pointers to 8-byte v 4-byte integers on 64-bit platforms
- Fix calling ctype.h functions with negative arguments
- Improve standards-compliance of maildir output file names (Jeff King)
- Remove most compiler warnings
|
| Version 0.14.1 |
3 February 2004 |
|
|
Available as
GPG signature for mairix-0.14.1.tar.gz
Release notes:
- Bug fix : splitting of messages in mboxes was too strict regarding whitespace
|
| Version 0.14 |
11 January 2004 |
|
|
Available as
GPG signature for mairix-0.14.tar.gz
Release notes:
- Bug fix : using path search (p:) with mbox folders didn't work
- Update run-time help
|
| Version 0.13 |
6 January 2004 |
|
|
Available as
GPG signature for mairix-0.13.tar.gz
Release notes:
- Fixes to support the mbox format used by Mozilla mail
- When creating mfolder directories for maildir/mh, remove existing
non-directory at the same path, if present. When creating mbox mfolder file,
complain if there's already a directory at the same path and exit.
- Switch from the term "virtual folder" to "match folder"
- Fix bug in path matches (p:) containing upper-case letters - previously they
matched on corresponding all lower-case paths.
|
| Version 0.12 |
4 December 2003 |
|
|
Available as
GPG signature for mairix-0.12.tar.gz
Release notes:
- Indexing of mbox folders in addition to the existing maildir & MH support
- Output to mbox format mfolder
- Return exit status 1 if no messages are matched in search mode, and exit
status 2 for all error conditions.
- Allow wildcards to be used in specifying maildir and mh folder paths.
- Searching on messages having a particular Message-ID (m:msgid expression in
search mode).
- When indexing whole email addresses, '+' is now considered a valid character.
- Use ',' instead of '+' in search expressions, and '/' instead of ','. This
is to allow '+' to be used inside email addresses that are being searched
for. The '/' character is traditionally associated with meaning 'or', so it
made more sense to move ',' to mean 'and'. (Unfortunately, there were very
few metacharacters left which don't have some special meaning to shells, and
I wanted to avoid the need to quote or escape the search expressions.)
- Bug fix checking return status of mmap.
- Handle ">From " at the start of the message headers
- Handle mis-formatted encoding strings "7 bit" and "8 bit"
- Make every database use a random seed for the token hash function (to prevent
denial of service attacks against mairix through carefully crafted messages.)
- Rename some options in the mairixrc file, to put the folder formats on an
equal footing.
- Properly handle the case where a maildir mfolder exists but one or more of
the new,tmp,cur subdirectories is missing.
- Add configure script (not autoconf-based)
|
|
Available as
Release notes:
- Detect failed malloc (out of memory) conditions properly and report it.
- Improved date specification syntax for d: option
- Allow mfolder to be an absolute path or relative to current directory,
instead of just relative to base directory.
|
| Version 0.10 |
10 January 2003 |
|
Available as
Release notes:
- Add 'raw' mode for searching.
- When purging, only print the pass[12] message in verbose mode
- Add an ACKNOWLEDGEMENTS file.
- Hack to handle missing NAME_MAX on various non-Linux systems
- Improve mairix.spec file for RPM building
- Change default value for prefix in Makefile to make it more standard.
|
development releases |
|
WARNING : these releases may be buggy, half-finished, lack
documentation for new features etc. Please try, test and report problems.
Even better, fix the problems and send me the patches! Also, I might modify or
remove features in later releases
|
Tarball releases |
| Version 0.17pre2 |
9 November 2005 |
|
|
Available as
GPG signature for mairix-0.17pre2.tar.gz
Release notes:
- Fix various bugs handling MH folders
- Add --version switch
- Fix bug with size argument passed to memset
Note, the hyphen has been removed from the release name because it apparently
caused problems for people producing RPMs from the -pre1 version.
|
| Version 0.17-pre1 |
19 October 2005 |
|
|
Available as
GPG signature for mairix-0.17-pre1.tar.gz
Release notes:
- Support gzipped mbox folders (any file matched by a mbox= line in the config
file is considered as a gzipped mbox if its name ends in .gz)
- Rework directory traversal for the '...' construct to speed up indexing and
the check that mfolder isn't going to overwrite a real folder when searching.
- Check whether database exists before attempting to do searching.
- Matched new maildir messages go in /new/ subdirectory of maildir mfolder.
- Fix lots of compiler warnings generated by gcc4.x
- Don't create and immediately scrub database entries for empty mbox folders.
- Fix usage() info for bare word in searching
- Allow '.' on the ends of numeric filenames in MH folders (to work
with Evolution)
- Update .PHONY target so that 'make install' etc are more reliable.
|
| Version 0.16-pre3 |
27 April 2005 |
|
|
Available as
GPG signature for mairix-0.16-pre3.tar.gz
Release notes:
- Home directory (~) and environment variable ($foo / ${foo}) expansion in the
.mairixrc file
- Add -Q flag to skip database integrity checks during indexing (equivalently
the nochecks option in .mairixrc file). This speeds up indexing but loses
some robustness.
- Add ^ word prefix to require substring search to be left-anchored
- Split 'make clean' into separate clean and clean_docs
- Improve some error messages
- Add online help entries for -o and -d
- Don't write out the database if there are no changes found during indexing.
- Fix stale information about the 'and' and 'or' delimiters in the online help.
- Add the capability to omit particular folders from indexing (omit keyword in
.mairixrc file.) This allows broad wildcards to be used with selected
folders removed from the wildcard which is much more convenient in many
set-ups.
- Avoid writing matches to any folder on the list of folders to be indexed
(affects both mfolder option and argument of -o command line switch.) This
prevents disasterous loss of messages in the event of trying to overwrite an
wanted folder with the matches.
- Implement dot-locking on the database file to prevent corruption due to
concurrent updates. Add --unlock file to forcibly remove a stray lockfile.
- Display message path in warning messages from rfc822 parsing.
|
git repository |
|
mairix is now using git for revision control. The current archive is hosted at
http://www.rpcurnow.force9.co.uk/git/mairix.git
|
Packages |
Debian |
|
Debian packages for mairix are available at
http://packages.debian.org/testing/mail/mairix.html
|
The files necessary to build a Debian package for version 0.11 can be found below. mairix_0.11-2.dsc mairix_0.11-2.diff.gz
|
SuSE |
|
Packages for SuSE have been made available here
|