Manitou is a database-driven mail user-agent and associated
utilities. It provides a framework and tools for storing and exposing
mail as organized data, accessible by SQL. It is aimed at seamlessly
handling large mailboxes, possibly processed by multiple concurrent
users. In addition to the features commonly found in traditional mail
programs, its user interface (C++/Qt) aims at providing some more unique,
database oriented ways to organize, process and retrieve mail
Manitou is also free software, released under the GNU Public License.
Read the full license text.
Here is how it fits into the chain of mail programs:
A desktop user interface based on the Qt library and running
under MS-Windows, MacOS X or Unix/X11. The user interface
is only connected to the PostgreSQL database (it
doesn't do any smtp, pop3, imap or similar, but only SQL). In addition to
extended search capabilities, the interface provides the same kind of
features than traditional mail user agents.
A Perl script that imports the incoming email stream into the
database, and delivers outgoing messages to the mail transport system.
The main script is called manitou-mdx, the mdx suffix standing for
"mail/database exchanger". This program is intended to mostly run as a daemon.
It is responsible for the MIME encoding and decoding, for applying filters
and generally carrying on the automated actions needed to process
The database, mdx and user interface can run on the same machine or
on different nodes of a network.
- Openness of the data: it's all in documented PostgreSQL tables, so
third-party programs can access and enrich the mail data in decoded
and parsed form.
- Sharing of mailboxes between different users at the database
level. Users can work concurrently. Users rights can be fine-tuned
at the database level.
- Separation between user interface and mail system: the user interface
is only connected to the database, allowing fine control of permissions
and remote access via SSH tunnels or PostgreSQL SSL encryption.
- Seamless support for gigabytes mailboxes.
- Multi-categorization with hierarchical message tags (labels).
- Full text indexing of the bodies of messages, integrated search engine.
- Fast retrieval, with extended search criteria (authors, subjects,
full text search, word search, dates, tags, status, priorities...)
- Extended server-side filtering capabilities.
- User-written server-side perl plugins that run on pre-analyzed
incoming messages, allowing customized filtering or hooks to
other programs (antispam, dictionaries, external databases)
- Internal user notes on messages.
- SQL queries allowed at the user interface level to retrieve lists
of messages with complex user-defined criteria. Queries can be elaborated
by an admin and reused by non SQL-aware users.
- Unicode support (international character sets)
- Multiple identities.
- Browser-like navigation through lists of messages.