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