[mod.computers.vax] Another Approach to Mail Delivery

RAY@SRI-VAX.ARPA (Ramon Curiel) (11/12/86)

Thought people might be interested in slightly different approach to
mail delivery.  

I didn't like the idea of everyone writing to a central directory or the
idea of detached process waking up every so often to look around for work
to do.  So what I developed, about 95% complete, is a symbiont to do the
mail delivery. What follows is description of some of the highlights.


The way it works is you set up a Generic Queue Mail$Queue that feeds one
or more mail delivery queues. The queues deliver all the mail, local,
SMTP over internet (using SRI's Multinet), Decnet.  I borrowed the
DECNET code from the V4 mail system so it should be able to handle
other protocols. The system knows about clusters and has two mechanisms
to allow you to specify who is in the cluster (1. Translates a logical
name Mail$Cluster or 2. Reads a list from an Init file). The init file
it reads let you specify things like TimeOuts, Queue to requeue to, how
many times to retry, who is in the cluster and few other things.

If a message fails the system will try requeue the message for known
transitory problems and send a Failed message to the sender for
other problems. It also sends a copy of failed messages to the user
Postmaster.

The Queues use the VMSMAIL.DAT file to get their information. It
DOES NOT use the system UAF file.  This means that some of the information
that is kept in the UAF file need to be moved into the VMSMAIL.DAT file.
I used the spare fields in the VMSMAIL.DAT file to store some of the
info, UIC and DEFAULT directory.  I tried to maintain compatibility
with the Standard DEC mail system's interpretations of this file, but
there are a couple of gotcha's for users of the DEC mail system. I
wrote a authorize-like utility to maintain this database.

The Queue file is simply a queue file header, followed by the from
site and user, followed by a list of the Hosts and the users at each
host followed by the text of the message. It uses a Tops20 like
format for the mail queue message (for those familiar with Tops20).
There is one Queue file for each Message sent out regardless of number
of hosts or users. One requeue and Failed message is created for each
message processed.

One of the things the queue doesn't do, is muck with headers (well,
almost - it does expect a header to be there for decnet messages).
The mail program needs to write a header for it. 


This is much longer then I really intended, if you have questions
about it, send me some mail and I will try and answer all questions.


Ray