Path: seismo!harvard!husc6!talcott!panda!soma!sob From: sources-request@panda.UUCP Newsgroups: mod.sources Subject: uumail 3.0 (Part 1 of 2) Message-ID: <1790@panda.UUCP> Date: 4 May 86 13:09:59 GMT Sender: jpn@panda.UUCP Lines: 1359 Approved: jpn@panda.UUCP Mod.sources: Volume 4, Issue 91 Submitted by: soma!sob #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create the files: # README # domains # palias # rmail.c # address.c # makefile # uux.c # uumail.1 # opath.3 # address.1 # Alias.Design # Sendmail # Binary.Only # This archive created: Fri May 2 17:48:10 1986 export PATH; PATH=/bin:$PATH echo shar: extracting "'README'" '(8177 characters)' if test -f 'README' then echo shar: will not over-write existing file "'README'" else cat << \SHAR_EOF > 'README' 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 provides an alias and forwarding facility. For details on aliasing see the file "Alias.Design". The forward facility is similiar to the one in sendmail. A user may forward his mail by adding a file called ".forward" in his home directory. This file conatains the address(es) to which mail is to be forwarded. These addresses are not reprocessed by the aliasing subroutine, but may be in domain format (if the -DOPATH flag is used when compiling and the /usr/lib/uucp/domains file is correctly configured). There is also some experimental sections in this release that binary only sites might like to experiment with. See the file "Binary.Only" for details on this experiment. There has been some confusion in the past on configuring uumail to work with sendmail. See the file "Sendmail" for information on this. * 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. * To add the sentinel, use the "makedb" command. * makedb -a dbrootname < @@@ * should append the sentinel to the database. There are some compile flags to be aware of when making uumail. When defining these, place them on the OPTIONS line in the makefile. 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 (be sure that the file you specify in uuconf.h is world writable or this option will not work). UGLYUUCP causes the From_ line produced by uumail to contain the "remote from hostname" string. This is usually necessary for reliable use of uumail especially on SYSV and V7 machines. 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. NOALIAS will not compile in the Aliasing and Forward facilities. You probably want to define this if you are running sendmail or some other mailer that already does this. OPIMIZE will attempt to send mail by a "more optimal" path. This is experimental. RFC976 will cause uumail to behave as a CLASS 3 mailer as defined in RFC976. Defining this flag may cause your mail to behave differently than it has in the past (particularly if you are a UUCP-only site). Please be sure to read the RFC carefully to understand the differences between the different class of mailers. See more on this below. There are some other items that should be noted when configuring uumail. In the makefile, set UUMAIL equal to the location of the uumail program on your system FOLLOWING INSTALLATION! Set REALUUX equal to the location of the uux program. This will be /usr/bin/uux on most systems. Binary only site should check the "Binary.Only" file for more information on the use of this symbol. BINDIR should be set to the directory you want the address and uupath program to go, usually /usr/ucb, /usr/local, or /usr/lbin. 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. A manual page for address, opath, uumail and uupath are included. RFC976 Compliance notes Uumail is capable of satisfying Class 3 requirements as specified in RFC976. It can also be compiled to satisfy Class 2 and Class 1 requirements only. Here are the appropriate compile time flags for compliance with with the three classes; these are only the flags necessary to make uumail perform in a particular class. Other flags may be needed to use the dbm-type database and other options. It should be noted that each higher numbered class is a superset of the lower numbered class, so if you are a class 3 you will automatically comply with Classes 1 and 2. The following is excerpted from the RFC976 document. Class 1 old-style UUCP ! routing only. We assume that the host understands local user names: rmail user and bang paths rmail host1!host2!user but we assume nothing more about the host. If we have no information about a host, we can treat it as class 1 with no problems, since we make no assumptions about how it will handle hybrid addresses. COMPILE FLAGS NEED FOR THIS CLASS: UGLYUUCP Class 2 Old style UUCP ! routing, and 4.2BSD style domain parsing. We assume the capabilities of class 1, plus the ability to understand rmail user@domain if the "domain" is one outside the UUCP zone which the host knows about. Class 2 hosts do not necessarily understand domain!user or have routers. Hosts in non- UUCP RFC-920 domains are considered class 2, even though they may not understand host!user. COMPILE FLAGS NEED FOR THIS CLASS: OPATH UGLYUUCP Class 3 All class 1 and 2 features are present. In addition, class 3 hosts must be able to route UUCP mail for hosts that are not immediately adjacent and also understand the syntax rmail domain!user as described above. All gateways into UUCP must be class 3. COMPILE FLAGS NEED FOR THIS CLASS: OPATH UGLYUUCP RFC976 One final note: Uumail does not use the Algorithm specified in RFC976 to perform its work. That algorithm is likely to be a part of the Batch SMTP program referred to in the RFC. Please forward comments and bug fixes to me at sob@rice.edu or ihnp4!shell!soma!sob or seismo!drillsys!sob or sdcsvax!drillsys!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. *************************************************************************** This work in its current form is Copyright 1986 Stan Barber with the exception of opath, gethostname and the original getpath which as far as I know are in the Public Domain. This software may be distributed freely as long as no profit is made from such distribution and this notice is reproducted in whole. *************************************************************************** This software is provided on an "as is" basis with no guarantee of usefulness or correctness of operation for any purpose, intended or otherwise. The author is in no way liable for this software's performance or any damage it may cause to any data of any kind anywhere. *************************************************************************** SHAR_EOF if test 8177 -ne "`wc -c < 'README'`" then echo shar: error transmitting "'README'" '(should have been 8177 characters)' fi fi echo shar: extracting "'domains'" '(1093 characters)' if test -f 'domains' then echo shar: will not over-write existing file "'domains'" else cat << \SHAR_EOF > 'domains' # # Domain Table # # Format: ,,,