Majordomo2 Administrative Commands
==================================

This is a basic overview of the commands and features available for use by
the list owner.

Many commands have options available to modify their behavior.  Options
will appear next to the command names in (parentheses).  Commands with
options should be sent in the format:

        command-option argument(s)

Multiple options may be strung together like so:

        command-option1-option2-option3 argument(s)

Examples of the commands that follow will assume an imaginary list named
'scooters' using the master password 'vespa'.


accept [token]
--------------
  Some commands will require  confirmation before their actions will be
  taken; this can help protect subscribers and lists from mischief.  In
  such a case, a 'token' may be mailed to the list owner for approval.

  The 'accept' command tells Majordomo to accept a confirmation or
  consultation token, thus approving the requested action.  The stalled
  command will be executed and the results returned in the response
  message.

  If the token is omitted from the command, the Subject: header will be
  searched for one; accepting a token therefore usually requires only that
  the user hit "reply" on his or her mailer and type the word "accept".

    See Also:  reject


approve password command
------------------------
  This runs the given command (and arguments) with the supplied password.
  Essentially any command can be executed with privileges using the approve
  command.  The 'default' command described below can make it much easier
  to approve several commands at once.

  Most admin commands are of little use without "approve" and the
  appropriate password.  If an admin command fails, check to make sure
  you are approving it correctly.

    Example:  approve vespa subscribe scooters jdoe@example.com

    See also:  default


auxsubscribe list sublist address
---------------------------------
  Adds an address to the named sublist of a given list.

    Example:  auxsubscribe scooters posters buster@example.com

    See also:  'admin sublists' help subtopic


auxunsubscribe list sublist address (-regexp, -allmatching)
-----------------------------------
  Removes an address or addresses from the named sublist of a given list.

  If the 'regexp' option is given, the address will be interpreted as a
  regular expression rather than an address; in this case, the first match
  found in the list will be unsubscribed.  The 'allmatching' option will
  cause every address that matches the regular expression to be removed
  from the sublist.

    Examples:  auxunsubscribe scooters posters buster@example.com
               auxunsubscribe-regexp scooters posters buster\@
               auxunsubscribe-regexp-allmatching scooters posters
                 \@example\.com

    See also:  'admin sublists' help subtopic
               'regexp' help topic


auxwho list sublist
-------------------
  Return the contents of the named sublist of a given list.

    Examples:  auxwho scooters posters

    See also:  'admin sublists' help subtopic


configdefault list variable
---------------------------
  Sets the variable back to the default value.  Note that this causes the
  variable to track changes in the default value whenever they are made; a
  variable can be fixed to the current default value by setting it to that
  value.

    Example:  configdef scooters restrict_post

    See also:  The 'admin configuration' help subtopic


configedit list variable (-comments)            NOTE:  Shell interface only
------------------------
  Retrieves the value of the variable and opens an editor on it.  When the
  editor is exited, the variable is set to the new value.  If the
  'comments' argument is used, explanatory information about the variable
  will be included in the output.

  Multiple variables can be edited by listing them separated by commas, and
  groups can be specified with upper case letters.  Listing no variable
  name at all retrieves the complete list of variables.

  The editor to use is chosen from the EDITOR environment variable.

    Examples:  configedit-comments scooters restrict_post
               configedit scooters
               configedit scooters restrict_post,access_rules


configset list variable = value
configset list variable
-----------------------
  Sets the given variable to the given value.  A single value can be
  specified directly on the command line after an equals sign, or the
  usual '<< TAG' include until tag or '<@ part' include from part
  syntaxes can be used.  (See the 'parser' help topic for more
  information on this.)

  The value will be syntax-checked against the allowable values for the
  given variable.

  The 'default' command described below can make it much easier to submit
  several configset commands at once.

    See also:  default
               The 'admin configuration' help subtopic
               The 'parser' help topic


configshow list variable (-comments)
------------------------
  Retrieves the value of the given variable.  If the 'comments' argument
  is given, explanatory information about the variable will be returned
  as well.

  Multiple variables can be retrieved by listing them separated by commas,
  and groups can be specified with upper case letters.  Listing no variable
  name at all retrieves the complete list of variables.

  The response is in such a form that it can be fed back to the parser
  verbatim.  It is essentially a series of configset commands, which may
  be edited at will and sent back to the parser.

  Note also that only the variables that can be seen by the current
  authorization level will be returned.  This means that with no
  authentication at all, a small list of variables will still be visible
  (though of course they cannot be modified).

  Finally, note that not all per-list variables can be modified by the list
  owner.  Some require global priviliges.

    Examples:  configshow-comments scooters
               configshow-comments scooters restrict_post
               configshow scooters restrict_post,access_rules

    See also:  The 'admin configuration' help subtopic


createlist list owner (-nocreate, -noheader, -force, -quiet)
---------------------
  Creates the internal structures needed to maintain a list with the given
  name.  This will also suggest the necessary MTA configuration if the MTA
  in use is supported -- for example, if sendmail is the MTA in use, a
  set of sendmail aliases will be generated.  Note that Majordomo does not
  (yet) handle configuring the MTA itself, although it generally provides
  data which can simply be pasted into the necessary configuration file.

  If the list is 'GLOBAL', the setup for the Majordomo address is given.
  If the list is 'ALL, a complete set of aliases is given.

  Arguments include the following:

    force:  If the list already exists, the 'createlist' command will fail
    unless the 'force' argument is used.  Note that the owner address you
    enter when you force the list creation will replace any previous owner
    addresses associated with the list.

    nocreate:  This argument will cause 'createlist' to suggest the MTA
    configuration without actually creating the list; the command will not
    fail if the list already exists.

    noheader:  The instructional information that precedes the suggested
    MTA configuration info will not be displayed.

    quiet:  No introductory mail will be sent to the list owner.  (This
    is not currently implemented in any case.)

    Examples:  createlist scooters modgirl@example.com
               createlist-noheader-quiet scooters modgirl@example.com


default variable value                     NOTE: email and text parser only
----------------------
  Sets a default value for a variable used by the command parser when
  processing a batch of commands.  Currently, you may set a default
  approval password or a default list name.

  Setting a default password will implicitly do the equivalent of 'approve
  password' on all following commands.  This makes it especially useful
  when returning the output of a 'configshow' command to the parser to
  change some variables; simply add the 'default password' command to the
  beginning of the message or file, and the parser will accept the
  'configset' commands as written.

  Setting a default list makes the list an optional argument for all
  commands which take one (excepting the createlist command).  Note that
  this is not without ambiguity, as the parser cannot always tell when
  the default list is implied.  When running at the -request address, the
  parser generally starts with a default list in place.

  If the value is omitted, the default setting is removed.

  Both of these commands make it much simpler to submit multiple commands
  to the parser in one fell swoop.  Essentially, it makes all of the
  following sets of commands equivalent:

    approve vespa configset scooters reply_to = scooters@example.com
    approve vespa configset scooters resend_host = example.com
    approve vespa configset scooters subject_prefix = [Scooter List]
    approve vespa subscribe scooters sadiej@example.com

  Or:

    default password vespa
    configset scooters reply_to = scooters@example.com
    configset scooters resend_host = example.com
    configset scooters subject_prefix = [Scooter List]
    subscribe scooters sadiej@example.com

  Or even better:

    default password vespa
    default list scooters
    configset reply_to = scooters@example.com
    configset resend_host = example.com
    configset subject_prefix = [Scooter List]
    subscribe sadiej@example.com


filesync list
-------------
  This updates the filespace information database.  Since Majordomo needs
  to know more information about a file than is provided by the file system
  (a description and the required MIME types, for instance), it keeps
  additional data in a simple database.  If files are added or removed by
  means other than Majordomo commands, the database must be updated with
  the new information by way of this command.

    Example:  filesync scooters


post list
---------
  Sends a message to the given list.  Note that the message must be fully
  formed, with all necessary headers.  Majordomo will not add omitted
  headers, nor does it check the validity of the message.  All of the
  normal resend access checks apply.

  This enables a Majordomo list to be run without doing any MTA
  configuration at all.  The list will not, however, be terribly
  functional.  This will probably work for announcement lists, though.


put list file subject (-data)
put-data list file content-type charset content-transfer-encoding subject
-------------------------------------------------------------------------
  Uploads a file to the given list's filespace.  The file will be assumed
  to be text/plain with 8bit encoding.

  If the "data" mode is given, the command expects additional data about
  the file; these should be legal MIME values for those fields.


reject [token]
--------------
  This rejects a token, preventing the requested action from being taken.
  If no 'accept' command is received, the token will eventually be rejected
  by default.  Issuing a 'reject' command will immediately delete the token
  and requested action from the server's database.  In either case, when
  the token is rejected, notification of the rejection will be sent to the
  site owner, the list owner, and the victim of the rejection.

    See Also:  accept


set list flag address
---------------------
  This sets various subscription parameters.  More documentation to come.


show address
------------
  This displays various information about the address:

    - Whether or not the given address is legal
    - The mailbox and comment, extracted from the address
    - What the address transforms to, under the various address
      equivalencies
    - Any aliases attached to the address
    - Any lists the address is subscribed to
    - The time the address was registered
    - The time the registration data was last updated
    - For each list the address is subscribed to:
      - What address is receiving the list mail
      - The time that the address was subscribed to the list
      - The subscription class
      - The subscriber flags
      - The time the record was last updated

    Example:  show joe@example.com


subscribe list address (-nowelcome)
----------------------
  This adds the address to the given list and, if the address is not
  already in the registration database, registers the address with the
  list's domain.  The 'nowelcome' option prevents the server from sending
  the welcome message that is usually mailed to new subscribers.

    Examples:  subscribe scooters martha@example.com
               subscribe-nowelcome scooters martha@example.com


unregister address
------------------
  This removes the given address from the registration database and from
  every list that it might be subscribed to.

    Example:  unregister someone@example.com

    See Also:  register, unsubscribe


unsubscribe list address (-regexp, -allmatching)
------------------------
  Removes an address or addresses from the given list.

  If the 'regexp' option is given, the address will be interpreted as a
  regular expression rather than an address; in this case, the first match
  found in the list will be unsubscribed.  The 'allmatching' option will
  cause every address that matches the regular expression to be removed
  from the list.

    Examples:  unsubscribe scooters buster@example.com
               unsubscribe-regexp scooters buster\@
               unsubscribe-regexp-allmatching scooters \@example\.com

    See also:  'regexp' help topic


which string (-regexp)
------------
  This shows which lists contain addresses which contain the given string.
  The regex option causes the string to be interpreted as a Perl regular
  expression.

    Examples:  which buster@example.com
               which-regexp buster\@

    See also:  'regexp' help topic


who list [regexp]
-----------------
  Returns all members of the list.  If a regular expression is given as an
  argument, only matches will be returned.

    Examples:  who scooters
               who scooters \@example\.com

    See also:  'regexp' help topic
