BSD 4 development
authorBill Joy <wnj@ucbvax.Berkeley.EDU>
Sat, 1 Nov 1980 05:18:42 +0000 (21:18 -0800)
committerBill Joy <wnj@ucbvax.Berkeley.EDU>
Sat, 1 Nov 1980 05:18:42 +0000 (21:18 -0800)
Work on file usr/src/cmd/delivermail/READ_ME

Synthesized-from: CSRG//cd1/4.0

usr/src/cmd/delivermail/READ_ME [new file with mode: 0644]

diff --git a/usr/src/cmd/delivermail/READ_ME b/usr/src/cmd/delivermail/READ_ME
new file mode 100644 (file)
index 0000000..4683a9a
--- /dev/null
@@ -0,0 +1,135 @@
+This directory contains the files for delivermail.  On some
+installations it may also contain the source files for
+auxiliary mailers.
+
+The approximate description of each file is as follows:
+
+TO_BE_DONE     New features to be put in (maybe) at some time.
+addr.c         Routines to manipulate addresses and address
+               lists.
+alias.c                Does name aliasing in all forms.
+alias.c.save   An old version which has a tentative (and later
+               rejected) method of mail forwarding.
+arpa-mailer.8  Documentation for arpa.c.
+arpa.c         The auxiliary mailer for the ARPANET.
+arpadate.c     A subroutine used by delivermail & arpa.c which
+               creates ARPANET standard dates.
+bmove.c                A core-to-core move.  This is in a seperate file
+               because it can easily be replaced by a blindingly
+               efficient version on Vaxes.
+conf.ucb.c     Our configuration file.  This uses compilation flags
+               from <whoami.h> to figure out what to do.
+conf.c         A stripped version of conf.ucb.c; if you are forced to
+               build a configuration file from scratch, you are
+               probably better off starting with this one.
+deliver.c      Routines to deliver mail, including queueing up
+               for eventual delivery & actual sending.
+delivermail.8  Documentation for delivermail.
+dlvrmail.h     Main header file for delivermail.
+err.c          Routines to print error messages.
+mail-dm.c      Example of the code in server ftp for the Arpanet
+               software.
+mailaliases.5  Documentation for the alias file used by delivermail.
+main.c         The main routine to delivermail.  This file also
+               contains some miscellaneous routines.
+makefile       The makefile used here.
+maketemp.c     The routine that actually reads the mail into a temp
+               file.  It also does a certain amount of parsing of
+               the header, etc.
+matchhdr.c     A routine used by delivermail & arpa.c (& others?)
+               which performs a match on ARPANET format header items.
+parse.c                The routines which do address parsing.
+savemail.c     Routines which save the letter on processing errors.
+sysexits.c     List of error messages associated with error codes
+               in sysexits.h.
+sysexits.h     List of exit statuses that could someday become a
+               standard.  In any case, they are what delivermail &
+               a handful of other programs use.
+useful.h       A header file containing a few things that appear to
+               be useful for even the most various programs.
+userinfo.5     Tentative documentation for the proposed (and rejected)
+               user info database.
+util.c         Some general purpose routines used by delivermail.
+v6-mail.c      Local mailer under version 6.  This is included to
+               permit you to see the sorts of modifications that
+               had to take place.
+vax-mail.c     Local mailer under VM/UNIX (similar for V7).  This
+               is also included as an example.  This is more complex
+               than v6-mail.c because it has to be able to deal with
+               UUCP mail also.  Beware of local hacks that will not
+               apply to your installation.
+version.c      A file defining the version.  This gets bumped every
+               time a new version is installed (theoretically).
+
+[This list was current as of 10/27/80]
+
+The configuration table distributed here should work with a vanilla
+system.  It will try to figure out who you are from whoami.h.  It
+depends on:
+       BERKELEY -- if set, does all the Berkeley-specific stuff.
+               Other local compilation flags provide machine-
+               specific definition.
+       V6 -- set this if you are on version 6 system.
+       sysname -- a defined constant which is your name on the
+               UUCP net.  It is assumed that you are on the UUCP
+               net.
+
+There are two tables in conf.c which are critical.  The first is
+the Mailers table.  This describes each mailer available to your
+system.  The second is the parse table, describing how to decide
+what net an address applies to, etc.  The comments in the code
+should explain how to set these up.  If you do not have any more
+nets than berknet, uucp, and arpanet, and if the mailers for these
+are in the standard places, you probably won't have to touch the
+Mailers table.
+
+You will also have to create a new makefile.  There are only two
+basic types: for a v6 system & for a v7 system.  All pathnames &
+system dependent stuff should be in conf.c.  The makefile distributed
+is for our CSVAX site, and should work for you.  You may want to
+change some of the compile flags as listed in the makefile; these
+control things like logging, hashed alias tables, and debugging
+info.
+
+You will have to change your equivalent of /bin/mail to take a
+"-d" flag.  If this flag is not asserted, /bin/mail should just
+turn itself into /etc/delivermail (this is probably in a routine
+called "bulkmail" or "sendmail").  The code looks like something
+like:
+
+# ifdef DELIVERMAIL
+       {search argv for a -d flag}
+       if (!dflag)
+       {
+               argv[0] = "-delivermail";
+               argv[argc] = 0;
+               execv(DELIVERMAIL, argv);
+               perror(DELIVERMAIL);
+       }
+       {ignore -d flag in further processing}
+# endif
+
+This is actually somewhat oversimplified.  See the example mailers
+for something more realistic.  Besides the mailers in this directory,
+see ../berknet/v6mail.c.
+
+Argv[0] should begin with a "-" to indicate that it is being called
+from /bin/mail.
+
+If you are running server ftp on arpanet, you will have to change
+the incoming mail routine to accept mail for any address (rather than
+checking to see that the user exists).  Instead of writing the
+mail in some non-standard mailbox, pipe the mail to /etc/delivermail
+instead (include the -a flag).  Delivermail will mail back a message
+if the letter can't be sent.  Also, I have changed the "success"
+message to read "Mail accepted" rather than "Mail delivered", since
+the mere fact that delivermail chewed up the mail does not mean that
+it has been delivered.  Our "mail-dm.c" is given as an example.
+
+Sometimes (particularly in Arpa-land) mail comes from a person who
+doesn't really exist.  Some mail will be returned to them from a
+pseudo-user named ~MAILER~DAEMON~, which will of course be returned.
+But ~MAILER~DAEMON~ does not exist, so it is returned.... and you have
+a loop.  To break this, every site should have the entry:
+       ~MAILER~DAEMON~:root
+in their aliases file.