This is an updated version of uumail (and uupath) that can 
access a pathalias-generated database to facilitate routine mail.

These program can cope with DBM and standard line-oriented forms of 
pathalias-generated databases.

This version of uumail can be used as uupath by linking uumail to
uupath. Also, this version can handle domain addresses (user@host.domain).
You can put as many addresses on a line as you like.

This version fixes a few bugs in the previous release. Some additional 
functionality and robustness are added as well. The bugs included 
lack of initilization of some variables in address.c, inconsistant calling
of getpath in uumail, address and opath, and failure to handle % in addresses
correctly. Additional features include  the ability of getpath to detect when
the database is being updated and wait or abort as necessary, the ability to 
retry accessing the database when it will not open (as might be the case when
updating it), the ability (if the database is sorted) to search a plain-text
database much faster.

 *    IF YOU ARE USING A DBM DATABASE, READ THIS!
 *    If the special sentinel value of @@@ is not present in the
 *    database, then getpath will assumed that the database is being
 *    rebuilt and will block for TIMEOUT (default = 180) seconds.  
 *    If, after 5 such blocks, the sentinel is not present,
 *    the error code EX_TEMPFAIL is returned.
 *    The same is true if the dbm files cannot be initialized.
 *    Please be sure to add the sentinal to the DBM database when
 *    it is created.
 *

There are some compile flags to be aware of when making uumail.
Here is a list of them.

DEBUG compiles in the debugging code.
OPATH causes the opath subroutine to be used to resolve addresses.
If you do not use this flag, you cannot use the user@host.domain style
addresses with uumail.
DBM causes uumail to use the DBM format patalias database. If you do not
have the dbm libraries, do not use this flag.
SYSIII will make adjustments for system that are derived from UNIX System
III or System V.
NOGRADE should be used if your uux does not understand the -g flag.
NORETURN should be used if your uux does not understand the -a flag.
LOG will enable logging of uumail traffic.
UGLYUUCP causes the From_ line produced by uumail to contain the
"remote from hostname" string.
GETHOSTNAME will cause the system call gethostname to be used. If you
are a BSD site, define this.
SYSTEMNAME will cause the systemname to be derived from the file
/usr/lib/uucp/SYSTEMNAME. This should be defined if your machine
is a Sperry 5000.
SORTED will cause the non-DBM database to be searched fasted, BUT
it assumes that this database is SORTED. If you do not sort your
database, do not define this.

If you want to install this system, use "make install". If you want
to have it do all the work for incoming mail, type "make mailer". You
probably do not want to "make mailer" if you run sendmail.

Here is the mailer segment of a sendmail configuration file that you
can use to define the uumail program as a mailer.
-------------------------------------------------------------------
############################################################
#### This is a special mailer that takes advantage of    ###
#### usemap database for addresses to UUCP sites         ###
############################################################

Muumail, P=/usr/lib/uucp/uumail,F=sDFhuUM,S=13,R=23,M=1000000,
	A=uumail -h -gC -f$g $h!$u
--------------------------------------------------------------
Please be sure that the S= and R= rules are correct for your
system. They should match the uucp mailer rules exactly.

A manual page for address, opath, uumail and uupath are included.

Please forward comments and bug fixes to me at sob@rice.edu or 
ihnp4!shell!neuro1!sob or texsun!drilltech!sob

Stan Barber
Baylor College of Medicine
Houston, Texas

P.S. My thanks to all those who reported bugs from the previous release.
Please continue to send them in, and I will try to keep fixing them.
