.TH"VMM""1""2012-09-27""vmm 0.6""vmm".SHNAMEvmm \- command line tool to manage email domains/accounts/aliases.\" -----------------------------------------------------------------------.SHSYNOPSIS.Bvmm.IRsubcommand" [""argument ..."].\" -----------------------------------------------------------------------.SHDESCRIPTION.Bvmm(a virtual mail manager) is the easy to use command line tool foradministrators and postmasters to manage (alias) domains, accounts, aliasesand relocated users.It allows you to simply and quickly administer your mail server..brIt's designed for Dovecot and Postfix with a PostgreSQL backend..PPEach.Isubcommandhas both a long and a short form.The short form is shown enclosed in parentheses.Both forms are case sensitive..PPMost of the.IRsubcommandstake one or more.IRarguments..\" -----------------------------------------------------------------------.SHARGUMENTS.TP12.IaddressThe complete e\-mail address.RI(local\-part@fqdn)of an user account, alias address or relocated user..\" --------------------------.TP.IdestinationIs either an e\-mail.Iaddresswhen used with.IR"ALIAS SUBCOMMANDS".Or a.Ifqdnwhen used with.IR"ALIASDOMAIN SUBCOMMANDS"..\" --------------------------.TP.IfqdnThe fully qualified domain name \- without the trailing dot \- of a domainor alias domain..\" --------------------------.TP.ImessagesAn integer value which specifies a quota limit in number of messages..B0(zero) means unlimited \- no quota limit for the number of messages..\" --------------------------.TP.Ioptionis the name of a configuration option, prefixed with the section name and adot.For example:.IBmisc.transport.brAll configuration options are described in.BRvmm.cfg(5)..\" --------------------------.TP.IserviceThe name of a service, commonly used with Dovecot.Supported services are:.BRimap", "pop3", "sieve" and "smtp..\" --------------------------.TP.IstorageSpecifies a quota limit in bytes.One of the following prefixes can be appended to the integer value:.BRb" (bytes), "k" (kilobytes), "M" (megabytes) or "G(gigabytes)..B0(zero) means unlimited \- no quota limit in bytes..\" --------------------------.TP.ItransportA transport for Postfix, written as:.IBtransport:or.IBtransport:\c.IRnexthop.See.BRtransport(5)for more details..\" -----------------------------------------------------------------------.SHGENERALSUBCOMMANDS.SSconfigget(cg).BI"vmm configget"" option".PPThis subcommand is used to display the actual value of the givenconfiguration.IRoption..PPExample:.PP.nf.Bvmmconfiggetmisc.crypt_sha512_roundsmisc.crypt_sha512_rounds = 5000.fi.\" ------------------------------------.SSconfigset(cs).Bvmmconfigset.Ioptionvalue.PPUse this subcommand to set or update a single configuration option's value..Ioptionis the configuration option,.Ivalueis the.IRoption'snew value..IPNote:This subcommand will create a new.Ivmm.cfgwithout any comments.Your current configuration file will be backed as.IRvmm.cfg.bak..PPExample:.PP.nf.Bvmmconfiggetdomain.transportdomain.transport = dovecot:.Bvmmconfigsetdomain.transportlmtp:unix:private/dovecot\-lmtp.Bvmmcgdomain.transportdomain.transport = lmtp:unix:private/dovecot\-lmtp.fi.\" ------------------------------------.SSconfigure(cf).Bvmmconfigure.RI[section].PPStarts the interactive configuration for all configuration sections..PPIn this process the currently set value of each option will be displayed insquare brackets.If no value is configured, the default value of each option will bedisplayed in square brackets.Press the return key, to accept the displayed value..PPIf the optional argument.Isectionis given, only the configuration options from the given section will bedisplayed and will be configurable.The following sections are available:.RS.TP10.BaccountAccount settings.TP.BbinPaths to external binaries.TP.BdatabaseDatabase settings.TP.BdomainDomain settings.TP.BmailboxMailbox settings.TP.BmiscMiscellaneous settings.RE.PPAll configuration options are described in.BRvmm.cfg(5)..IPNote:This subcommand will create a new.Ivmm.cfgwithout any comments.Your current configuration file will be backed as.IRvmm.cfg.bak..PPExample:.PP.nf.BvmmconfiguremailboxUsing configuration file: /usr/local/etc/vmm.cfg* Configuration section: `mailbox'Enter new value for option folders [Drafts:Sent:Templates:Trash]:Enter new value for option format [maildir]: mdboxEnter new value for option subscribe [True]:Enter new value for option root [Maildir]: mdbox.fi.\" ------------------------------------.SSgetuser(gu).BI"vmm getuser"" uid".PPIf only the.Iuidis available, for example from process list, the subcommand.Bgetuserwill show the user's address..PPExample:.PP.nf.Bvmmgetuser79876Account information------------------- UID............: 79876 GID............: 70704 Address........: a.user@example.com.fi.\" ------------------------------------.SShelp(h).Bvmmhelp.RI[subcommand].PPPrints a list of available subcommands with a short description to stdout.When a.Isubcommandwas given, help for that.Isubcommandwill be displayed.After this.Bvmmexits..\" ------------------------------------.SSlistdomains(ld).Bvmmlistdomains.RI[pattern].PPThis subcommand lists all available domains.All domain names will be prefixed either with `[+]', if the domain is aprimary domain, or with `[-]', if it is an alias domain name.The output can be limited with an optional.IRpattern..PPTo perform a wild card search, the % character can be used at the startand/or the end of the.IRpattern..PPExample:.PP.nf.Bvmmlistdomains%example%Matching domains---------------- [+] example.com [\-] e.g.example.com [\-] example.name [+] example.net [+] example.org.fi.\" ------------------------------------.SSlistaddresses(ll).Bvmmlistaddresses.RI[pattern].PPThis command lists all defined addresses. Addresses belonging toalias-domains are prefixed with a '-', addresses of regular domains witha '+'. Additionally, the letters 'u', 'a', and 'r' indicate the type ofeach address: user, alias and relocated respectively.The output can be limited with an optional.IRpattern..PPTo perform a wild card search, the % character can be used at the startand/or the end of the.IRpattern..PPExample:.PP.nf.Bvmmlistaddressesexample.com.Bvmmlistaddresses%master@%.\" ------------------------------------.SSlistaliases(la).Bvmmlistaliases.RI[pattern].PPThis command lists all defined aliases. Aliases belonging toalias-domains are prefixed with a '-', addresses of regular domains witha '+'.The output can be limited with an optional.IRpattern..PPTo perform a wild card search, the % character can be used at the startand/or the end of the.IRpattern..PPExample:.PP.nf.Bvmmlistaliasesexample.com.Bvmmlistaliases%master@%.\" ------------------------------------.SSlistrelocated(lr).Bvmmlistrelocated.RI[pattern].PPThis command lists all defined relocated addresses. Relocated entriesbelonging to alias-domains are prefixed with a '-', addresses of regulardomains witha '+'.The output can be limited with an optional.IRpattern..PPTo perform a wild card search, the % character can be used at the startand/or the end of the.IRpattern..PPExample:.PP.nf.Bvmmlistrelocatedexample.com.Bvmmlistrelocated%master@%.\" ------------------------------------.SSlistusers(lu).Bvmmlistusers.RI[pattern].PPThis command lists all user accounts. User accounts belonging toalias-domains are prefixed with a '-', addresses of regulardomains witha '+'.The output can be limited with an optional.IRpattern..PPTo perform a wild card search, the % character can be used at the startand/or the end of the.IRpattern..PPExample:.PP.nf.Bvmmlistusersexample.com.Bvmmlistusers%master@%.\" ------------------------------------.SSlistpwschemes(lp).Bvmmlistpwschemes.PPThis subcommand lists all password schemes which could be used in the.Ivmm.cfgas value of the.Imisc.password_schemeoption.The output varies, depending on the used Dovecot version and the system'slibc..brWhen your Dovecot installation isn't too old, you will see additionally afew usable encoding suffixes.One of them can be appended to the password scheme..PPExample:.PP.nf.BvmmlistpwschemesUsable password schemes----------------------- CRYPT SHA512-CRYPT LDAP-MD5 DIGEST-MD5 SHA256 SHA512 SSHA512 SKEY SSHA NTLM RPA MD5-CRYPT HMAC-MD5 SHA1 PLAIN SHA CRAM-MD5 SSHA256 MD5 LANMAN CLEARTEXT PLAIN-MD5 PLAIN-MD4 OTP SMD5 SHA256-CRYPTUsable encoding suffixes------------------------ .B64 .BASE64 .HEX.fi.\" ------------------------------------.SSversion(v).Bvmmversion.PPPrints.BRvmm'sversion and copyright information to stdout.After this.Bvmmexits..\" -----------------------------------------------------------------------.SHDOMAINSUBCOMMANDS.SSdomainadd(da).Bvmmdomainadd.IRfqdn" ["transport].PPAdds the new domain into the database and creates the domain directory..PPIf the optional argument.Itransportis given, it will override the default transport.RI(domain.transport") from "vmm.cfg.The specified.Itransportwill be the default transport for all new accounts in this domain..PPConfiguration\-related behavior:.RS.TP.Idomain.auto_postmasterWhen that option is set to.BRtrue" (default) "vmmwill automatically create the postmaster account for the new domain andprompt for.BIpostmaster@fqdn\c\(aqs password..TP.Iaccount.random_passwordWhen the value of that option is also set to.BRtrue", "vmmwill automatically create the postmaster account for the new domain andprint the generated postmaster password to stdout..RE.PPExamples:.PP.nf.Bvmmdomainaddsupport.example.comsmtp:[mx1.example.com]:2025Creating account for postmaster@support.example.comEnter new password:Retype new password:.Bvmmcsaccount.random_passwordtrue.Bvmmdomainaddsales.example.comCreating account for postmaster@sales.example.comGenerated password: pLJUQ6Xg_z.fi.\" ------------------------------------.SSdomaindelete(dd).BI"vmm domaindelete "fqdn.RB[force].PPThis subcommand deletes the domain specified by.IRfqdn..PPIf there are accounts, aliases and/or relocated users assigned to the givendomain,.Bvmmwill abort the requested operation and show an error message.If you know, what you are doing, you can specify the optional keyword.BRforce..PPIf you really always know what you are doing, edit your.Ivmm.cfgand set the option.Idomain.force_deletionto.BRtrue..\" ------------------------------------.SSdomaininfo(di).Bvmmdomaininfo.IRfqdn\ [ details ].PPThis subcommand shows some information about the given domain..PPFor a more detailed information about the domain the optional argument.Idetailscan be specified.A possible.Idetailsvalue can be one of the following six keywords:.RS.TP14.Baccountsto list the e\-mail addresses of all existing user accounts.TP.Baliasdomainsto list all assigned alias domain names.TP.Baliasesto list all available alias e\-mail addresses.TP.Bcatchallto list all catch\-all destinations.TP.Brelocatedto list the e\-mail addresses of all relocated users.TP.Bfullto list all information mentioned above.RE.PPExample:.PP.nf.Bvmmdomaininfosales.example.comDomain information------------------ Domain Name......: sales.example.com GID..............: 70708 Domain Directory.: /srv/mail/c/70708 Quota Limit/User.: Storage: 500.00 MiB; Messages: 10,000 Active Services..: IMAP SIEVE Transport........: lmtp:unix:private/dovecot-lmtp Alias Domains....: 0 Accounts.........: 1 Aliases..........: 0 Relocated........: 0 Catch-All Dests..: 1.fi.\" ------------------------------------.SSdomainquota(dq).Bvmmdomainquota.IR"fqdn storage"" ["messages].RB[force].PPThis subcommand is used to configure a new quota limit for the accounts ofthe domain - not for the domain itself..PPThe default quota limit for accounts is defined in the.IRvmm.cfg" ("domain.quota_bytes" and "domain.quota_messages)..PPThe new quota limit will affect only those accounts for which the limithas not been overridden. If you want to restore the default to all accounts,you may pass the keyword.BRforce..brWhen the argument.Imessageswas omitted the default number of messages.B0(zero) will be applied..PPExample:.PP.nf.Bvmmdomainquotaexample.com1gforce.fi.\" ------------------------------------.SSdomainservices(ds).Bvmmdomainservices.IRfqdn" [""service ..."].RB[force].PPTo define which services could be used by the users of the domain \(em withthe given.Ifqdn\(em use this subcommand..PPEach specified.Iservicewill be enabled/usable.All other services will be deactivated/unusable.Possible service names are: .BRimap", "pop3", "sieve" and "smtp..brThe new service set will affect only those accounts for which the set has notbeen overridden. If you want to restore the default to all accounts, you maypass the keyword.BRforce..\" ------------------------------------.SSdomaintransport(dt).BI"vmm domaintransport"" fqdn transport".RB[force].PPA new transport for the indicated domain can be set with this subcommand..PPThe new transport will affect only those accounts for which the transport hasnot been overridden. If you want to restore the default to all accounts, youmay pass the keyword.BRforce..PPExample:.PP.nf.Bvmmdomaintransportsupport.example.comdovecot:.fi.\" ------------------------------------.SSdomainnote(do).BI"vmm domainnote"" fqdn".RI[note].PPWith this subcommand, it is possible to attach a note to the specifieddomain. Without an argument, an existing note is removed..PPExample:.PP.nf.Bvmmdoexample.comBelongstoRobert.fi.\" -----------------------------------------------------------------------.SHALIASDOMAINSUBCOMMANDSAn alias domain is an alias for a domain that was previously added with thesubcommand.BRdomainadd.All accounts, aliases and relocated users from the domain will be alsoavailable in the alias domain..brIn the following is to be assumed that example.net is an alias forexample.com..PPPostfix will not accept erroneously e\-mails for unknown.user@example.netand bounce them back later to the mostly faked sender.Postfix will immediately reject all e\-mails addressed to nonexistentusers..brThis behavior is ensured as long as you use the recommended databasequeries in your.I$config_directory/pgsql\-*.cfconfiguration files..\" ------------------------------------.SSaliasdomainadd(ada).BI"vmm aliasdomainadd"" fqdn destination".PPThis subcommand adds the new alias domain.RI(fqdn)to the.Idestinationdomain that should be aliased..PPExample:.PP.nf.Bvmmaliasdomainaddexample.netexample.com.fi.\" ------------------------------------.SSaliasdomaindelete(add).BI"vmm aliasdomaindelete"" fqdn".PPUse this subcommand if the alias domain.Ifqdnshould be removed..PPExample:.PP.nf.Bvmmaliasdomaindeletee.g.example.com.fi.\" ------------------------------------.SSaliasdomaininfo(adi).BI"vmm aliasdomaininfo"" fqdn".PPThis subcommand shows to which domain the alias domain.Ifqdnis assigned to..PPExample:.PP.nf.Bvmmadiexample.netAlias domain information------------------------ The alias domain example.net belongs to: * example.com.fi.\" ------------------------------------.SSaliasdomainswitch(ads).BI"vmm aliasdomainswitch"" fqdn destination".PPIf the destination of the existing alias domain.Ifqdnshould be switched to another.Idestinationuse this subcommand..nf.PPExample:.PP.Bvmmaliasdomainswitchexample.nameexample.org.fi.\" -----------------------------------------------------------------------.SHACCOUNTSUBCOMMANDS.SSuseradd(ua).Bvmmuseradd.IRaddress" ["password].PPUse this subcommand to create a new e\-mail account for the given.IRaddress..PPIf the.Ipasswordis not provided,.Bvmmwill prompt for it interactively.When no.Ipasswordis provided and.Iaccount.random_passwordis set to.BRtrue", "vmmwill generate a random password and print it to stdout after the accounthas been created..PPExamples:.PP.nf.Bvmmuad.user@example.com\(dqA5ecR3tP4s5\(rs/\(rs/0rd\(dq.Bvmmuseradde.user@example.comEnter new password:Retype new password:.fi.\" ------------------------------------.SSuserdelete(ud).BI"vmm userdelete"" address".RB[force].PPUse this subcommand to delete the account with the given.IRaddress..PPIf there are one or more aliases with an identical destination address,.Bvmmwill abort the requested operation and show an error message.To prevent this, specify the optional keyword.BRforce..\" ------------------------------------.SSuserinfo(ui).B"vmm userinfo".IRaddress" ["details].PPThis subcommand displays some information about the account specified by.IRaddress..PPIf the optional argument.Idetailsis given some more information will be displayed.Possible values for.Idetailsare:.RS.TP8.Baliasesto list all alias addresses with the destination.Iaddress.TP.Bduto display the disk usage of the user's mail directory.In order to summarize the disk usage each time this subcommand isexecuted automatically, set.Iaccount.disk_usagein your.Ivmm.cfgto.BRtrue..TP.Bfullto list all information mentioned above.RE.PPExample:.PP.nf.Bvmmuid.user@example.comAccount information------------------- Address..........: d.user@example.com Name.............: None UID..............: 79881 GID..............: 70704 Home.............: /srv/mail/2/70704/79881 Mail_Location....: mdbox:~/mdbox Quota Storage....: [ 0.00%] 0/500.00 MiB Quota Messages...: [ 0.00%] 0/10,000 Transport........: lmtp:unix:private/dovecot-lmtp SMTP.............: disabled POP3.............: disabled IMAP.............: enabled SIEVE............: enabled.fi.\" ------------------------------------.SSusername(un).BI"vmm username"" address".RI[name].PPThe user's real.Inamecan be set/updated with this subcommand..PPIf no.Inameis given, the value stored for the account is erased..PPExample:.PP.nf.Bvmmund.user@example.com\(dqJohnDoe\(dq.fi.\" ------------------------------------.SSuserpassword(up).BI"vmm userpassword"" address".RI[password].PPThe password of an account can be updated with this subcommand..PPIf no.Ipasswordwas provided,.Bvmmwill prompt for it interactively..PPExample:.PP.nf.Bvmmupd.user@example.com\(dqA|\(rs/|0r35ecur3P4s5\(rs/\(rs/0rd?\(dq.fi.\" ------------------------------------.SSusernote(uo).BI"vmm usernote"" address".RI[note].PPWith this subcommand, it is possible to attach a note to the specifiedaccount. Without an argument, an existing note is removed..PPExample:.PP.nf.Bvmmuod.user@example.comOnlyneededuntilendofMay2012.fi.\" ------------------------------------.SSuserquota(uq).BI"vmm userquota"" address storage".RI[messages].PPThis subcommand is used to set a new quota limit for the given account..PPWhen the argument.Imessageswas omitted the default number of messages.B0(zero) will be applied..PPInstead of.Istoragepass the keyword.Bdomainto remove the account\-specific override, causing the domain's value to bein effect..PPExample:.PP.nf.Bvmmuserquotad.user@example.com750m.fi.\" ------------------------------------.SSuserservices(us).Bvmmuserservices.IRaddress" [""service ..."].PPTo grant a user access to the specified services, use this command..PPAll omitted services will be deactivated/unusable for the user with thegiven.IRaddress..PPInstead of.Iservicepass 'domain' to remove the account\-specific override, causing thedomain's value to be in effect..PPExample:.PP.nf.Bvmmuserservicesd.user@example.comSMTPIMAP.\" ------------------------------------.SSusertransport(ut).BI"vmm usertransport"" address transport".PPA different.Itransportfor an account can be specified with this subcommand..PPInstead of.Itransportpass 'domain' to remove the account\-specific override, causing thedomain's value to be in effect..PPExample:.brAssumed you want to use Dovecot's.BRdsync(1)to convert a user's mailbox from Maildir format to mdbox format, youcan tell Postfix to retry later..PP.nf.Bvmmutd.user@example.com\(dqretry:4.0.0Mailboxbeingmigrated\(dq# convert the mailbox ... then set the transport to Dovecot's lmtp.Bvmmutd.user@example.comlmtp:unix:private/dovecot\-lmtp.fi.\" -----------------------------------------------------------------------.SHALIASSUBCOMMANDS.SSaliasadd(aa).BI"vmm aliasadd"" address destination ...".PPThis subcommand is used to create a new alias.Iaddresswith one or more.Idestinationaddresses..PPWithin the destination address, the placeholders.IR%n,.IR%d,and.IR%=will be replaced by the local part, the domain, or the email address with '@'replaced by '=' respectively. In combination with alias domains, this enablesdomain\-specific destinations..PPExamples:.PP.nf.Bvmmaliasaddjohn.doe@example.comd.user@example.com.Bvmmaasupport@example.comd.user@example.come.user@example.com.Bvmmaapostmaster@example.compostmaster+%d@example.org.fi.\" ------------------------------------.SSaliasdelete(ad).BI"vmm aliasdelete"" address".RI[destination" ...]".PPThis subcommand is used to delete one or multiple.IRdestinationsfrom the alias with the given.IRaddress..PPWhen no.Idestinationaddress was specified the alias with all its destinations will be deleted..PPExample:.PP.nf.Bvmmadsupport@example.comd.user@example.com.fi.\" ------------------------------------.SSaliasinfo(ai).BI"vmm aliasinfo"" address".PPInformation about the alias with the given.Iaddresscan be displayed with this subcommand..PPExample:.PP.nf.Bvmmaliasinfosupport@example.comAlias information----------------- Mail for support@example.com will be redirected to: * e.user@example.com.fi.\" -----------------------------------------------------------------------.SHRELOCATEDSUBCOMMANDS.SSrelocatedadd(ra).BI"vmm relocatedadd"" address newaddress".PPA new relocated user can be created with this subcommand..PP.Iaddressis the user's ex\-email address, for example b.user@example.com, and.Inewaddresspoints to the new email address where the user can be reached..PPExample:.PP.nf.Bvmmrelocatedaddb.user@example.comb\-user@company.tld.fi.\" ------------------------------------.SSrelocatedinfo(ri).BI"vmm relocatedinfo "address.PPThis subcommand shows the new address of the relocated user with the given.IRaddress..PPExample:.PP.nf.Bvmmrelocatedinfob.user@example.comRelocated information--------------------- User `b.user@example.com' has moved to `b\-user@company.tld'.fi.\" ------------------------------------.SSrelocateddelete(rd).BI"vmm relocateddelete "address.PPUse this subcommand in order to delete the relocated user with the given.IRaddress..PPExample:.PP.nf.Bvmmrelocateddeleteb.user@example.com.fi.\" -----------------------------------------------------------------------.SHCATCH\-ALLSUBCOMMANDS.SScatchalladd(caa).BI"vmm catchalladd"" fqdn destination ...".PPThis subcommand allows to specify destination addresses for a domain, whichshall receive mail addressed to unknown local parts within that domain.Those catch\-all aliases hence \(dqcatch all\(dq mail to any address in thedomain (unless a more specific alias, mailbox or relocated entry exists)..PPWARNING: Catch\-all addresses can cause mail server flooding becausespammers like to deliver mail to all possible combinations of names, e.g.to all addresses between abba@example.org and zztop@example.org..PPExample:.PP.nf.Bvmmcatchalladdexample.comuser@example.org.fi.\" ------------------------------------.SScatchallinfo(cai).BI"vmm catchallinfo "fqdn.PPThis subcommand displays information about catch\-all aliases defined fora domain..PPExample:.PP.nf.Bvmmcatchallinfoexample.comCatch-all information--------------------- Mail to unknown localparts in domain example.com will be sent to: * user@example.org.fi.\" ------------------------------------.SScatchalldelete(cad).BI"vmm catchalldelete "fqdn.RI[destination" ...]".PPWith this subcommand, catch\-all aliases defined for a domain can beremoved, either all of them, or those.IRdestinationswhich were specified explicitly..PPExample:.PP.nf.Bvmmcatchalldeleteexample.comuser@example.com.fi.\" -----------------------------------------------------------------------.SHFILES.TP.I/root/vmm.cfgwill be used when found..TP.I/usr/local/etc/vmm.cfgwill be used when the above file doesn't exist..TP.I/etc/vmm.cfgwill be used when none of the both above mentioned files exists..\" -----------------------------------------------------------------------.SHSEEALSO.BRdsync(1),.BRtransport(5),.BRvmm.cfg(5).\" -----------------------------------------------------------------------.SHINTERNETRESOURCES.TPHomepagehttp://vmm.localdomain.org/.TPProject sitehttp://sf.net/projects/vmm/.TPBug trackerhttps://bitbucket.org/pvo/vmm/issues.\" -----------------------------------------------------------------------.SHCOPYINGvmm and its manual pages were written by Pascal Volk <user+vmm ATlocalhost.localdomain.org> and are licensed under the terms of the BSDLicense.