README
author martin f. krafft <madduck@madduck.net>
Sun, 15 Apr 2012 13:17:21 +0200
branchv0.6.x
changeset 555 499c63f52462
parent 535 e956ddc868c0
child 575 f9e6e0a237f0
permissions -rw-r--r--
Provide list{addresses,aliases,users,relocated} subcommands The patch provides the list{addresses,aliases,users,relocated} subcommands to the UI. All commands actually take the same path in the code and only one query is run with different parameters for each case. There are still two shortcomings: 1. With alias domains, the output order is not as one might want it, e.g. foo@example.org bar@example.org foo@example.com bar@example.com when it should really be foo@ twice and then bar@ twice. I have not found a way to modify the SQL accordingly. 2. The SELECT queries for Accounts, Alias and Relocated are hard-coded in common.py.

.. -*- restructuredtext -*-

============================
vmm - a virtual mail manager
============================

Welcome to vmm!

**vmm** is the easy to use and configurable command line tool for
administrators and postmasters, to manage domains, alias-domains, accounts and
relocated mail users. It allows the fast and easy management of mail servers.

vmm is written in Python_. It's designed for installations using Dovecot_ and
Postfix_ with a PostgreSQL_ backend.

Features
========
• General features

  ‣ Unicode/UTF-8 capable (input/storage/output)
  ‣ supports IDN_
  ‣ supports the mailbox format Maildir_ and Dovecot's own high-performance
    mailbox formats single- and multi-\ dbox_
  ‣ configurable basic mailbox structure, including sub-mailboxes
  ‣ multilingual — currently:

     * Dutch
     * English
     * Finnish
     * French
     * German
     * Vietnamese

• Domain features

  ‣ configurable transport_ setting per domain
  ‣ unique group identifier (GID) per domain
  ‣ each domain may have one or more alias domain names
  ‣ activate or deactivate services (SMTP, POP, IMAP and ManageSieve) for new
    or all accounts of a domain
  ‣ configurable quota limits (size and/or number of messages) for the
    domain's accounts
  ‣ supports relocated_ users
  ‣ the postmaster account can be created automatically when a new domain is
    created
  ‣ supports per-domain catch-all aliases

• Alias domain features

  ‣ alias domain names can be switched between domains

• Account features

  ‣ configurable transport per account
  ‣ activate or deactivate one/more/all services (SMTP, POP, IMAP and
    ManageSieve) per account
  ‣ configurable quota limit (size and/or number of messages) per user
  ‣ per-account configuration overrides defaults defined by the domain,
    otherwise the setting is inherited
  ‣ unique user identifier (UID) per user

• Alias features

  ‣ supports multiple destinations per e-mail alias
  ‣ destinations can be deleted separately
  ‣ destinations can be interpolated using the original address' localpart
    and domain, allowing aliases to have different meaning in aliasdomains,
    e.g. with the following defined in example.org::

      postmaster@example.org  →  postmaster+%d@admin.example.org

    If example.com is an aliasdomain of example.org, the alias will become::

      postmaster@example.org  →  postmaster+example.org@admin.example.org
      postmaster@example.com  →  postmaster+example.com@admin.example.org

Installation Prerequisites
==========================
You already should have installed and configured Postfix and Dovecot with
PostgreSQL support. You also need access to a local or remote PostgreSQL
server.

To verify that your Dovecot and Postfix installation has support for
PostgreSQL use the ``postconf`` and ``dovecot`` commands as shown below::

        hostname ~ # postconf -m | grep pgsql
        pgsql
        hostname ~ # postconf -a | grep dovecot
        dovecot
        hostname ~ # dovecot --build-options | grep postgresql
        SQL drivers: mysql postgresql sqlite

vmm depends on Python (≥ 2.4.0) and Psycopg_ (≥ 2.0) or pyPgSQL_ (≥ 2.5.1).
Psycopg and pyPgSQL are depending on parts of the *eGenix.com mx Base
Distribution* (mxDateTime_ and mxTools_).

If you are using Python ≤ 2.5.0:

  • if you want to store your users' passwords as ``PLAIN-MD4`` digest in the
    database, vmm will try to use ``Crypto.Hash.MD4`` from PyCrypto_
  • if you are using Dovecot ≥ v1.1.0 and you want to store your users'
    passwords as ``SHA256`` or ``SSHA256`` hashes, vmm will try to use
    ``Crypto.Hash.SHA256`` from PyCrypto. For ``SHA256``/``SSHA256`` you
    should have installed PyCrypto, at least in version 2.1.0alpha1.

  When the Crypto.Hash module couldn't be imported, vmm will use
  dovecotpw/doveadm, if  the *misc.password_scheme* setting in your *vmm.cfg*
  is set to ``PLAIN-MD4``, ``SHA256`` or ``SSHA256``.

Source code
===========
vmm's source code is available from the Mercurial_ repositories:

• main repository

``http://hg.localdomain.org/vmm``

• mirror repositories

``https://bitbucket.org/pvo/vmm``
``http://vmm.hg.sourceforge.net/hgweb/vmm/vmm``

Released versions are also available as gzip compressed tar archives at:
https://sourceforge.net/projects/vmm/files/vmm/

Installation/Upgrade
====================
For installation or upgrading instructions read the `INSTALL` or `UPGRADE`
file.

License
=======
In short: "**New BSD License**" aka "3-clause license". For a few more
details see the `COPYING` file.

.. External references
.. _dbox: http://wiki2.dovecot.org/MailboxFormat/dbox
.. _Dovecot: http://dovecot.org/
.. _IDN: http://en.wikipedia.org/wiki/Internationalized_domain_name
.. _Maildir: http://wiki2.dovecot.org/MailboxFormat/Maildir
.. _Mercurial: http://mercurial.selenic.com/
.. _mxDateTime: http://www.egenix.com/products/python/mxBase/mxDateTime/
.. _mxTools: http://www.egenix.com/products/python/mxBase/mxTools/
.. _Postfix: http://www.postfix.org/
.. _PostgreSQL: http://www.postgresql.org/
.. _Psycopg: http://initd.org/psycopg/
.. _PyCrypto: http://www.pycrypto.org/
.. _pyPgSQL: http://pypgsql.sourceforge.net/
.. _Python: http://www.python.org/
.. _relocated: http://www.postfix.org/relocated.5.html
.. _transport: http://www.postfix.org/transport.5.html