Copyright © 1998 Bruce Guenter

1 Introduction
**************

This is the documentation for the CGI programs for vmailmgr.

1.1 Common Form Configuration
=============================

The following form fields are common to all of the vmailmgr CGI
programs.

1.1.1 Required Form Fields
--------------------------

*Field:*
     vdomain
*Description:*
     This field specifies the name of the virtual domain under which to
     perform this operation.
*Syntax:*
     ‘<input type=hidden name=vdomain value="DOMAIN-NAME">’ or ‘<input
     type=text name=vdomain>’

*Field:*
     password
*Description:*
     Unless noted below, this field specifies the password of the
     administrator for the given virtual domain.
*Syntax:*
     ‘<input type=password name=password>’

1.1.2 Optional Form Fields
--------------------------

*Field:*
     error_redirect
*Description:*
     If this field is set, any operation that results in an error will
     be redirected to the given URL. If not set, a pre-programmed
     document (which includes the error message) will be output.
*Syntax:*
     ‘<input type=hidden name=error_redirect value="URL">’

*Field:*
     redirect
*Description:*
     If this field is set, any operation that completes successfully
     with be redirected to the given URL. If not set, a pre-programmed
     document (which includes the completion message) will be output.
*Syntax:*
     ‘<input type=hidden name=redirect value="URL">’

2 listvdomain
*************

2.1 Overview
============

This CGI program will list the mailboxes and aliases in a virtual domain
in a three-column table.  The first column lists the mailbox or alias
name, the second column is either ‘Alias’ or ‘Mailbox’, and the third
column lists the destination.

2.2 Form Configuration
======================

2.2.1 Required Form Fields
--------------------------

No additional form fields are Required.

2.2.2 Optional Form Fields
--------------------------

*Field:*
     body-flags
*Description:*
     If present, the contents of this field is inserted into the
     ‘<body>’ tag at the start of the document.
*Syntax:*
     ‘<input type=hidden name=body-flags value="bgcolor=ffffff">’

*Field:*
     cell-align
*Description:*
     Sets the cell alignment.  Defaults to ‘left’.
*Syntax:*
     ‘<input type=hidden name=cell-align value=center>’

*Field:*
     cell-post
*Description:*
     If present, the contents of this field will be output prior to
     every ‘</td>’ tag.
*Syntax:*
     ‘<input type=hidden name=cell-post value="</font>">’

*Field:*
     cell-pre
*Description:*
     If present, the contents of this field will be output after every
     ‘<td>’ tag.
*Syntax:*
     ‘<input type=hidden name=cell-pre value="<font size=1
     name=ariel>">’

*Field:*
     p-align
*Description:*
     Sets the default paragraph alignment.  Defaults to ‘left’.
*Syntax:*
     ‘<input type=hidden name=p-align value=center>’

*Field:*
     title-post
*Description:*
     If present, the contents of this field are output after the title
     text.  Defaults to ‘</h1>’.
*Syntax:*
     ‘<input type=hidden name=title-post value="</font>">’

*Field:*
     table-align
*Description:*
     Sets the allignment of the table listing the users.  Defaults to
     ‘left’.
*Syntax:*
     ‘<input type=hidden name=table-align value=center>’

*Field:*
     title-pre
*Description:*
     If present, the contents of this field are output before the title
     text.  Defaults to ‘<h1>’.
*Syntax:*
     ‘<input type=hidden name=title-pre value="<font size=3
     face=verdana>">’

*Field:*
     userlink
*Description:*
     If this field is present, all user names will be enclosed in a link
     to the contents of this field.  If the field contains a '%', it
     will be replaced by the user name.
*Syntax:*
     ‘<input type=hidden name=userlink
     value="/cgi-bin/admin-user?name=%">’

3 vaddalias
***********

3.1 Overview
============

This CGI program can be used to add an alias to a virtual domain.

3.2 Form Configuration
======================

3.2.1 Required Form Fields
--------------------------

*Field:*
     username
*Description:*
     The virtual user name of the alias to create.
*Syntax:*
     ‘<input type=text name=username>’

*Field:*
     destination
*Description:*
     The destination address or addresses of the alias, separated by
     commas.  If an address does not contain a host name (separated from
     the user name with an ‘@’), it is treated as local to the virtual
     domain and must already exist.
*Syntax:*
     ‘<input type=text name=destination>’

3.2.2 Optional Form Fields
--------------------------

*Field:*
     newpass1, newpass2
*Description:*
     These two fields specify the new password of the user.  They must
     match for the password to be changed.  The first eight characters
     are relevant, and may be any combination of letters, digits, or
     punctuation symbols.  If these fields are not present or are empty,
     a null passcode is used.
*Syntax:*
     ‘<input type=password name=newpass1><input type=password
     name=newpass1>’

4 vadduser
**********

4.1 Overview
============

This CGI program can be used to add a user mailbox to a virtual domain.

4.2 Form Configuration
======================

4.2.1 Required Form Fields
--------------------------

*Field:*
     username
*Description:*
     The virtual user name of the alias to create.
*Syntax:*
     ‘<input type=text name=username>’

*Field:*
     newpass1, newpass2
*Description:*
     These two fields specify the new password of the user.  They must
     match for the password to be changed.  The first eight characters
     are relevant, and may be any combination of letters, digits, or
     punctuation symbols.
*Syntax:*
     ‘<input type=password name=newpass1><input type=password
     name=newpass1>’

4.2.2 Optional Form Fields
--------------------------

*Field:*
     destination
*Description:*
     The destination address or addresses to direct a copy of incoming
     mail, separated by commas.  If an address does not contain a host
     name (separated from the user name with an ‘@’), it is treated as
     local to the virtual domain and must already exist.  If this field
     is not present or blank, no forwarding will be done.
*Syntax:*
     ‘<input type=text name=destination>’

*Field:*
     userdir
*Description:*
     This field can be used to specify the user mail directory name
     relative to the virtual domain's users directory.  If this field is
     not present, the directory name will be the same as the user name.
*Syntax:*
     ‘<input type=text name=userdir>’

5 vchattr
*********

5.1 Overview
============

This CGI program can be used to change the attributes of an existing
user in a virtual domain.

5.2 Form Configuration
======================

5.2.1 Required Form Fields
--------------------------

*Field:*
     username
*Description:*
     The virtual user name to modify.
*Syntax:*
     ‘<input type=text name=username>’

*Field:*
     attribute
*Description:*
     The number of the attribute to modify.  The possible values are:
     ‘1’
          The password.  Use the ‘vpasswd’ CGI to do this.
     ‘2’
          The forwarding destination.  Use the ‘vchforwards’ to do this.
     ‘3’
          The hard quota.
     ‘4’
          The soft quota.
     ‘5’
          The message size limit.
     ‘6’
          The message count limit.
     ‘7’
          The account's expiry time.
     ‘8’
          Set to zero to disable delivery to the account's mailbox
          (without deleting the account).  Set to non-zero to enable
          delivery.
     ‘9’
          The personal information string.
*Syntax:*
     ‘<input type=hidden name=attribute value=2>’

*Field:*
     newvalue
*Description:*
     The new value for the given attribute.  The format of this new
     value is dependant on the type of the attribute.
*Syntax:*
     ‘<input type=text name=newvalue>’

6 vchforwards
*************

6.1 Overview
============

This CGI program can be used to change the forwarding destination of an
existing user.

6.2 Form Configuration
======================

6.2.1 Required Form Fields
--------------------------

*Field:*
     username
*Description:*
     The virtual user name to modify.
*Syntax:*
     ‘<input type=text name=username>’

*Field:*
     destination
*Description:*
     The destination address or addresses of the alias, separated by
     commas.  If an address does not contain a host name (separated from
     the user name with an ‘@’), it is treated as local to the virtual
     domain and must already exist.
*Syntax:*
     ‘<input type=text name=destination>’

6.2.2 Optional Form Fields
--------------------------

*Field:*
     enable
*Description:*
     Set this field to ‘0’ to cause mailbox delivery to this account to
     be disabled after changing the alias.  Set it to any number except
     ‘0’ to cause mailbox delivery to be enabled before changing the
     alias.  If it is not set, the mailbox is neither enabled nor
     disabled.
*Syntax:*
     ‘<select name=enable> <option value=0>Disable <option
     value=1>Enable </select>’

7 vdeluser
**********

7.1 Overview
============

This CGI program deletes a user from a virtual domain.

7.2 Form Configuration
======================

7.2.1 Required Form Fields
--------------------------

*Field:*
     username
*Description:*
     The virtual user name of the user to delete.
*Syntax:*
     ‘<input type=text name=username>’

8 vpasswd
*********

8.1 Overview
============

This CGI program can be used to change the password of a user either by
the user themself or by the domain administrator.

8.2 Form Configuration
======================

The password field used by this CGI may match either the password of the
virtual domain administrator or that of the user being modified.

8.2.1 Required Form Fields
--------------------------

*Field:*
     username
*Description:*
     This field specifies the name of the user that is to be modified.
*Syntax:*
     ‘<input type=text name=username>’

*Field:*
     newpass1, newpass2
*Description:*
     These two fields specify the new password of the user.  They must
     match for the password to be changed.  The password may contain any
     combination of letters, digits, or punctuation symbols.
*Syntax:*
     ‘<input type=password name=newpass1> <input type=password
     name=newpass2>’

1 Introduction
1.1 Common Form Configuration
  1.1.1 Required Form Fields
  1.1.2 Optional Form Fields
2 listvdomain
2.1 Overview
2.2 Form Configuration
  2.2.1 Required Form Fields
  2.2.2 Optional Form Fields
3 vaddalias
3.1 Overview
3.2 Form Configuration
  3.2.1 Required Form Fields
  3.2.2 Optional Form Fields
4 vadduser
4.1 Overview
4.2 Form Configuration
  4.2.1 Required Form Fields
  4.2.2 Optional Form Fields
5 vchattr
5.1 Overview
5.2 Form Configuration
  5.2.1 Required Form Fields
6 vchforwards
6.1 Overview
6.2 Form Configuration
  6.2.1 Required Form Fields
  6.2.2 Optional Form Fields
7 vdeluser
7.1 Overview
7.2 Form Configuration
  7.2.1 Required Form Fields
8 vpasswd
8.1 Overview
8.2 Form Configuration
  8.2.1 Required Form Fields

