.TH "VMM" "1" "5 Oct 2008" "Pascal Volk"
.SH NAME
vmm \- command line tool to manage email domains/accounts/aliases
.SH SYNOPSIS
.B vmm
\fIsubcommand\fP \fIobject\fP [ \fIargs\fP ]
.SH DESCRIPTION
\fBvmm\fP (Virtual Mail Manager) is a command line tool for
administrators/postmasters to manage domains, accounts and aliases. It's
designed for Dovecot and Postfix with a PostgreSQL backend.
.SH SUBCOMMANDS
Each subcommand has both a long and a short form. Both forms are case sensitive.
.SS GENERAL SUBCOMMANDS
.TP
\fBconfigure\fP (\fBcf\fP) [ \fIsection\fP ]
Starts the interactive configuration for all configuration sections.
.br
If the optional argument \fIsection\fP is given, only the configuration options
from the given section will be displayed and will be configurable. The following
sections are available:
.RS
.PD 0
.TP
-
.B
database
.TP
-
.B
maildir
.TP
-
.B
services
.TP
-
.B
domdir
.TP
-
.B
bin
.TP
-
.B
misc
.PD
.RE
.LP
.PP
.nf
Example:
\fBvmm configure services\fP
* Config section: »services«
Enter new value for option pop3 [True]:
Enter new value for option smtp [True]:
Enter new value for option imap [True]:
Enter new value for option managesieve [True]: false
.fi
.PP
.TP
\fBgetuser\fP (\fBgu\fP) \fIuserid\fP
If only the userid is available, for example from process list, the subcommand
\fBgetuser\fP will show the user's address.
.PP
.nf
Example:
\fBvmm getuser 70004\fP
Account information
-------------------
UID............: 70004
GID............: 70000
Address........: c.user@example.com
.fi
.\"
.TP
\fBlistdomains\fP (\fBld\fP) [ \fIpattern\fP ]
This subcommand lists all available domains. All domain names will be prefixed
either with '[+]', if the domain is a primary domain, or with '[-]', if it is
an alias domain name. The output can be limited with an optional \fIpattern\fP.
.br
To perform a wild card search, the % character can be used at the start and/or
the end of the \fIpattern\fP.
.PP
.nf
Example:
\fBvmm listdomains %example%\fP
Matching domains
----------------
[+] example.com
[-] e.g.example.com
[-] example.name
[+] example.net
[+] example.org
.fi
.\"
.TP
\fBhelp\fP (\fBh\fP)
Prints all available commands to stdout. After this \fBvmm\fP exits.
.TP
\fBversion\fP (\fBv\fP)
Prints the version information from \fBvmm\fP.
.\"
.SS DOMAIN SUBCOMMANDS
.TP
\fBdomainadd\fP (\fBda\fP) \fIdomain\fP [ \fItransport\fP ]
Adds the new \fIdomain\fP into the database.
.br
If the optional argument \fItransport\fP is given, it will overwrite the
default transport from \fBvmm.cfg\fP (misc/transport). The specified transport
will be the default transport for all new accounts in this domain.
.PP
.nf
Examples:
\fBvmm domainadd support.example.com smtp:mx1.example.com
vmm domainadd sales.example.com\fP
.fi
.TP
\fBdomaininfo\fP (\fBdi\fP) \fIdomain\fP [ \fIdetails\fP ]
This subcommand shows some information about the given \fIdomain\fP.
.br
For a more detailed information about the \fIdomain\fP the optional argument
\fIdetails\fP can be specified. A possible \fIdetails\fP value may be one of
the following five keywords:
.RS
.PD 0
.TP
.B accounts
to list all existing accounts
.TP
.B aliasdomains
to list all assigned alias domains
.TP
.B aliases
to list all available aliases addresses
.TP
.B relocated
to list all relocated users
.TP
.B full
to list all information mentioned above
.PD
.RE
.LP
.nf
Example:
\fBvmm domaininfo sales.example.com\fP
Domain information
------------------
Domainname.....: sales.example.com
GID............: 70002
Transport......: dovecot:
Domaindir......: /home/mail/5/70002
Aliasdomains...: 0
Accounts.......: 0
Aliases........: 0
Relocated......: 0
.fi
.TP
\fBdomaintransport\fP (\fBdt\fP) \fIdomain\fP \fItransport\fP [ \fIforce\fP ]
A new transport for the indicated domain can be set with this subcommand.
.br
If the additional keyword '\fBforce\fP' is given all account specific transport
settings will be overwritten.
.br
Otherwise this setting will affect only new created accounts.
.PP
.nf
Example:
\fBvmm domaintransport support.example.com dovecot:\fP
.fi
.TP
\fBdomaindelete\fP (\fBdd\fP) \fIdomain\fP [ \fIdelalias\fP | \fIdeluser\fP | \fIdelall\fP ]
This subcommand deletes the specified \fIdomain\fP.
.br
If there are accounts and/or aliases assigned to the given domain, \fBvmm\fP
will abort the requested operation and show an error message. If you know, what
you are doing, you can specify one of the following keywords: '\fBdelalias\fP', '\fBdeluser\fP' or '\fBdelall\fP'.
.br
If you really always know what you are doing, edit your \fBvmm.cfg\fP and set
the option \fIforcedel\fP, in section \fImisc\fP, to true.
.\"
.SS ALIAS DOMAIN SUBCOMMANDS
.TP
\fBaliasdomainaddd\fP (\fBada\fP) \fIaliasdomain\fP \fItargetdomain\fP
This subcommand adds the new \fIaliasdomain\fP to the \fItargetdomain\fP that
should be aliased.
.PP
.nf
Example:
\fBvmm aliasdomainadd example.name example.com\fP
.fi
.TP
\fBaliasdomaininfo (\fBadi\fP) \fIaliasdomain\fP
This subcommand shows to which domain the \fIaliasdomain\fP is assigned to.
.PP
.nf
Example:
\fBvmm aliasdomaininfo example.name\fP
Alias domain information
------------------------
The alias domain example.name belongs to:
* example.com
.fi
.TP
\fBaliasdomainswitch\fP (\fBads\fP) \fIaliasdomain\fP \fItargetdomain\fP
If the target of the existing \fIaliasdomain\fP should be switched to another
\fItargetdomain\fP use this subcommand.
.PP
.nf
Example:
\fBvmm aliasdomainswitch example.name example.org\fP
.fi
.TP
\fBaliasdomaindelete\fP (\fBadd\fP) \fIaliasdomain\fP
Use this subcommand if the alias domain \fIaliasdomain\fP should be removed.
.PP
.nf
Example:
\fBvmm aliasdomaindelete e.g.example.com\fP
.fi
.\"
.SS ACCOUNT SUBCOMMANDS
.TP
\fBuseradd\fP (\fBua\fP) \fIaddress\fP [ \fIpassword\fP ]
Use this subcommand to create a new email account for the given \fIaddress\fP.
.br
If the \fIpassword\fP is not provided, \fBvmm\fP will prompt for it
interactively.
.PP
.nf
Examples:
\fBvmm ua d.user@example.com 'A 5ecR3t P4s5\\/\\/0rd'\fP
\fBvmm ua e.user@example.com\fP
Enter new password:
Retype new password:
.fi
.TP
\fBuserinfo\fP (\fBui\fP) \fIaddress\fP [ \fIdetails\fP ]
This subcommand displays some information about the account specified by
\fIaddress\fP.
.br
If the optional argument \fIdetails\fP is given some more information will be
displayed.
.br
Possible values for \fIdetails\fP are:
.RS
.PD 0
.TP
.B aliases
to list all alias addresses with the destination \fIaddress\fP
.TP
.B du
to display the disk usage of users maildir
.TP
.B full
to list all information mentioned above
.PD
.RE
.LP
.TP
\fBusername\fP (\fBun\fP) \fIaddress\fP \fI'Users Name'\fP
The user's real name can be set/updated with this subcommand.
.PP
.nf
Example:
\fBvmm un d.user@example.com 'John Doe'\fP
.fi
.TP
\fBuserpassword\fP (\fBup\fP) \fIaddress\fP [ \fIpassword\fP ]
The \fIpassword\fP from an account can be updated with this subcommand.
.br
If the \fIpassword\fP is not provided, \fBvmm\fP will prompt for it
interactively.
.PP
.nf
Example:
\fBvmm up d.user@example.com 'A |\\/|0r3 5ecur3 P4s5\\/\\/0rd?'\fP
.fi
.TP
\fBusertransport\fP (\fBut\fP) \fIaddress\fP \fItransport\fP
A different transport for an account can be specified with this subcommand.
.PP
.nf
Example:
\fBvmm ut d.user@example.com smtp:pc105.it.example.com\fP
.fi
.TP
\fBuserdisable\fP (\fBu0\fP) \fIaddress\fP [ \fIservice\fP ]
If a user shouldn't have access to one or all services you can restrict the
access with this subcommand.
.br
If neither a \fIservice\fP nor the keyword '\fIall\fP' is given all services
(\fIsmtp\fP, \fIpop3\fP, \fIimap\fP, and \fImanagesieve\fP) will be disabled
for the account with the specified \fIaddress\fP. Otherwise only the specified
\fIservice\fP will be restricted.
.PP
.nf
Examples:
\fBvmm u0 b.user@example.com imap\fP
\fBvmm userdisable c.user@example.com\fP
.fi
.TP
\fBuserenable\fP (\fBu1\fP) \fIaddress\fP [ \fIservice\fP ]
To allow access to one or all restricted services use this subcommand.
.br
If neither a \fIservice\fP nor the keyword '\fIall\fP' is given all services
(\fIsmtp\fP, \fIpop3\fP, \fIimap\fP, and \fImanagesieve\fP) will be enabled for
the account with the specified \fIaddress\fP. Otherwise only the specified
\fIservice\fP will be enabled.
.PP
.TP
\fBuserdelete\fP (\fBud\fP) \fIaddress\fP [ \fIdelalias\fP ]
Use this subcommand to delete the account with the given \fIaddress\fP.
.br
If there are one or more aliases with an identical destination address,
\fBvmm\fP will abort the requested operation and show an error message. To
prevent this, specify the optional keyword '\fIdelalias\fP'.
.\"
.SS ALIAS SUBCOMMANDS
.TP
\fBaliasadd\fP (\fBaa\fP) \fIalias\fP \fItarget\fP
This subcommand is used to create a new alias.
.PP
.nf
Examples:
\fBvmm aliasadd john.doe@example.com d.user@example.com\fP
\fBvmm aa support@example.com d.user@example.com\fP
\fBvmm aa support@example.com e.user@example.com\fP
.fi
.TP
\fBaliasinfo\fP (\fBai\fP) \fIalias\fP
Information about an alias can be displayed with this subcommand.
.PP
.nf
Example:
\fBvmm aliasinfo support@example.com\fP
Alias information
-----------------
Mail for support@example.com will be redirected to:
* d.user@example.com
* e.user@example.com
.fi
.TP
\fBaliasdelete\fP (\fBad\fP) \fIalias\fP [ \fItarget\fP ]
Use this subcommand to delete the \fIalias\fP.
.br
If the optional destination address \fItarget\fP is given, only this
destination will be removed from the \fIalias\fP.
.PP
.nf
Example:
\fBvmm ad support@example.com d.user@example.com\fP
.fi
.\"
.SS RELOCATED SUBCOMMANDS
.TP
\fBrelocatedadd\fP (\fBra\fP) \fIold_address\fP \fInew_address\fP
A new relocated user can be created with this subcommand.
.br
\fIold_address\fP is the users ex-email address, for example b.user@example.com,
and \fInew_address\fP points to the new email address where the user can be
reached.
.PP
.nf
Example:
\fBvmm relocatedadd b.user@example.com b-user@company.tld\fP
.fi
.TP
\fBrelocatedinfo\fP (\fBri\fP) \fIold_address\fP
This subcommand shows the new address of the relocated user with the
\fIold_address\fP.
.PP
.nf
Example:
\fBvmm relocatedinfo b.user@example.com\fP
Relocated information
---------------------
User »b.user@example.com« has moved to »b-user@company.tld«
.fi
.TP
\fBrelocateddelete\fP (\fBrd\fP) \fIold_address\fP
Use this subcommand in order to delete the relocated user with the
\fIold_address\fP.
.PP
.nf
Example:
\fBvmm relocateddelete b.user@example.com\fP
.fi
.\"
.SH FILES
/usr/local/etc/vmm.cfg
.SH SEE ALSO
vmm.cfg(5), configuration file for vmm
.SH AUTHOR
\fBvmm\fP and its man pages were written by Pascal Volk
<\fIp.volk@veb-it.de\fP> and are licensed under the terms of the BSD License.