Manitou-Mail logo title

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 messages.

Manitou is also free software, released under the GNU Public License. Read the full license text.

Architecture

Here is how it fits into the chain of mail programs:

Components

  • A desktop user interface based on the Qt library and running under MS-Windows, MacOS X or Linux/Unix. 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 mail.

    The database, mdx and user interface can run on the same machine or on different nodes of a network.

Main features

  • 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 gigabyte mailboxes.
  • Per-identity statistics with built-in charts and CSV exports.
  • HTML editor based on webkit.
  • 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)
  • Threading based on In-Reply-To and References fields.
  • Seamless handing of multiple identities. The choice to partition by identity or unify all or some of them is left to the user.