AltaVista Mail administration protocols


Digital (TM) Equipment Corporation makes no representations that the use of its products in the manner described in this publication will not infringe on existing or future patent rights, nor do the descriptions contained in this publication imply the granting of licenses to make, use, or sell equipment or software in accordance with the descriptions.

Possession, use, or copying of the AltaVista Mail software described in this publication is authorized only pursuant to a valid written license from Digital or an authorized sublicensor.

Copyright © Digital Equipment Corporation 1996.


This document describes the administration protocols used by the AltaVista Mail server.

Protocol versions: 1, 2
Software versions: 1.0, 2.0
Document revision number: 2.0
Document revision date: 13 September 1996

If you intend to use this document to help in building an application to control AltaVista Mail, we strongly encourage you to contact the AltaVista Mail engineering support address, altavista-mail@digital.com, to discuss your requirements. We'll be happy to offer advice, example programs, and any updates to this reference information.


Contents


  1. Administration protocols
  2. Entities and attributes
    1. Syntaxes
    2. Entities
      1. Environment
      2. Server
      3. Mailbox
      4. Domain
      5. Log
      6. Message
  3. Native administration protocol
    1. States
    2. Commands
    3. Responses
    4. Example session
  4. HTTP/HTML administration protocol
    1. Server-parsed HTML
    2. Additional entities and attributes
      1. Mailbox
      2. Domain
      3. Log
      4. Event
    3. Form actions and result data
    4. URLs offered by AltaVista Mail

Introduction


AltaVista Mail supports two separate administration protocols: a native protocol, and HTTP/HTML. The native protocol provides fine-grained control over every attribute of the system. The HTTP/HTML version is built on top of the native protocol and permits higher-level administration through the browser of user choice. It allows server-side user extension of administration functions by modifying the HTML pages supplied with AltaVista Mail.

Both protocols operate on a handful of managed entities and manipulate the attributes of those entities.


Entities and attributes


Syntaxes

Syntaxes used in this section are:

Entities

The managed entities are:

Environment

The Environment entity is a representation of the local host environment. Its attributes are:

Server

The Server entity is a representation of the AltaVista Mail server itself. Attributes of the server provide global configuration information.

Server attributes are:

Mailbox[ mailbox-name]

A mailbox is a is a storage area for messages awaiting delivery to a client of the AltaVista Mail server, together with some information about that client.

Clients are typically mail user agents, gateways and mail redirectors, but administration programs are also clients. The primary use for an administration program's mailbox is to authenticate connections from the program, not to receive mail.

Mailbox attributes are:

Domain[ domain-name]

A Domain entity is a representation of a remote domain, a target for messages. Note that a domain isn't necessarily a remote host; a domain name can represent some service rather than an actual host, and the server uses lookups of MX records in the DNS to find out which actual hosts serve the target domain.

A domain entity appears when a message is enqueued for the domain, and disappears during a regular cleanup operation.

Domain attributes are:

Log[ log-name]

A Log entity is an activity log. It records all AltaVista Mail operations. There are administration operations to read and write logs.

The builtin logs are:

Log attributes are:

Message message-id

A Message entity is a representation of a message currently stored in the server. Attributes are:


Additional entities and attributes

The AltaVista Mail HTTP/HTML administration system supports all the entities and attributes exposed by the native administration protocol, and also adds a few new ones to support access in a manner convenient to HTML page definition.

All data returned by AltaVista Mail entities is encoded in an HTML-safe manner. That is, any HTML special characters are escaped so they are displayed rather than being interpreted by the browser.

Mailbox[?Mailbox=mailbox-name]

The Mailbox entity has a new attribute:

Domain[?Domain=domain-name]

The Domain entity has a new attribute:

Log[?Log=log-name]

The Log entity has a new attribute:

Event?Log=log-name&Event=event-id

The Event entity is a new entity subordinate to a Log entity. It represents a specific event in the log. Its attributes are the parameters to the event, which vary according to the specific event but always include:


Form actions and result data

A form action is a program executed externally to an HTTP server. It accepts input arguments in the form of variable names and values, and in a normal HTTP server, it generates a page of HTML to pass back to the requesting client.

The AltaVista Mail HTTP server must allow full customization of the user interface simply by editing HTML pages, so its forms cannot work in this way. Instead, a form's Action attribute (the "something" in <form action="something">) is actually the name of the HTML page to display after the form has been submitted.

The form submission itself involves making zero or more calls to the various AltaVista Mail components. A separate Action variable gives a newline-separated list of URLs denoting the calls to make.

Input parameters to the calls are given an a separate Attributes variable: this is a newline-separated list of variable names. Any output parameters, plus any input parameters that haven't been overwritten by a call, are finally made available to the next page to display: they appear as arguments to the page's URL. The server-parsed HTML support in the HTTP server allows the appearance and function of this new page to vary with the values of the arguments passed to it.

A call name given in an Action variable is a URL. There is no important distinction between a URL used as a form call and one used to read data; when a form has been submitted, all its action's output arguments are made available to the next page displayed, and when reading data (for example using the $inline(url) construct), the output argument called 'Value' is used, and any other output arguments are ignored.


URLs offered by AltaVista Mail

The URLs correspond largely to commands in the native administration protocol, and operate on the same entities.

URL and input arguments Output arguments Comments
/avmail/Login
?Hostname="hostname"
&Username="username"
&Method="method"
&Password="password"
&ProxyAddress="proxy-address"
Sid
ErrorMessage
Creates a session for further operations
  • hostname is host to manage
  • username is the administrator's username
  • method is the authentication method, 'Clear' or 'MD5'
  • password is the administrator's password
  • proxy-address is the browser's IP address
/avmail/Logout
?Sid=sid
Invalidates a session
  • sid is a session-id, avmail/Login's Sid output parameter
/avmail/Session/Invalid Value
?Sid=sid&ProxyAddress="proxy-address"
Value Returns "1" if session is invalid, otherwise nothing
/avmail/Session/Mailbox Value
?Sid=sid&ProxyAddress="proxy-address"
Value Returns the mailbox name associated with the session, "" if session is invalid
/avmail/Test/Server
?Sid=sid&ProxyAddress="proxy-address"
[&Verbose=verbose]
Value Tests the server
  • verbose is 1 or empty; if 1, all text is returned. Otherwise, an empty string is returned on success and a non-empty summary on failure.
/avmail/Test/Domain
?Sid=sid&ProxyAddress="proxy-address"
&Domain=domain-name
[&Verbose="1"]
Value Tests SMTP access to the dmain
  • domain-name is a domain name, or a host address in the form [a.b.c.d]
/avmail/Create/Mailbox
?Sid=sid&ProxyAddress="proxy-address"
&Mailbox=mailbox-name
[Superior=mailbox-name]
[Attributes="attribute-name+..."
&attribute-name="value"...]
ErrorMessage Creates a mailbox
  • mailbox-name is a mailbox name
  • attribute-name is any attribute name
  • value is a value for that attribute
/avmail/Delete/Mailbox
?Sid=sid&ProxyAddress="proxy-address"
&Mailbox=mailbox-name
ErrorMessage Deletes a mailbox
/avmail/Reset/Message
?Sid=sid&ProxyAddress="proxy-address"
&Message=message-id
ErrorMessage Sends a message back for routing again
  • message-id is a message-id, a value read from the Messages attribute of a server, mailbox, or domain
/avmail/Reset/Mailbox
?Sid=sid&ProxyAddress="proxy-address"
&Mailbox=mailbox-name
ErrorMessage Removes attack records from a mailbox
/avmail/Reset/Domain
?Sid=sid&ProxyAddress="proxy-address"
&Domain=domain-name
ErrorMessage Enables new connection to a domain
/avmail/Set/writable-entity
?Sid=sid&ProxyAddress="proxy-address"
[&Attributes="attribute-name+..."
&attribute-name="value"...]
ErrorMessage Sets attributes of a server, mailbox, domain, or log
  • writable-entity is 'Server', 'Mailbox[?Mailbox=mailbox-name]', 'Domain[?Domain=domain-name]', or 'Log[?Log=log-name]'
  • attribute-name is any attribute name
/avmail/Add/writable-entity
?Sid=sid&ProxyAddress="proxy-address"
[&Attributes="attribute-name+...]"
&attribute-name="value"...]
ErrorMessage Adds values to an attribute of a server, mailbox, domain or log
/avmail/Remove/writable-entity
?Sid=sid&ProxyAddress="proxy-address"
[&Attributes="attribute-name+..."
&attribute-name="value"...]
ErrorMessage Removes values from an attribute of a server, mailbox, domain or log
/avmail/Show/readable-entity
?Sid=sid&ProxyAddress="proxy-address"
[&Attributes="attribute-name+..."]
[&Qualifiers="qualifier-name+..."
&qualifier-name=qualifier-value...]
Value Reads values of an attribute of a server, mailbox, domain, log, or event
  • readable-entity is 'Server', 'Mailbox[?Mailbox=mailbox-name]', 'Domain[?Domain=domain-name]', 'Log[?Log=log-name]', 'Event?Log=log-name ?Event=event-id', or 'Message?Message=message-id
  • event-id is an event-id, a value read from the Events attribute of a log
  • qualifier-name is the name of an attribute that qualifies the search
  • qualifier-value is its value