1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214
|
$Id: README,v 1.15 1999/12/02 01:19:06 chip Exp $
This is the README file for Deliver 2.1.
WHAT IS DELIVER?
Deliver delivers E-Mail on the local system.
Deliver allows any user to write a shell script that processes all
incoming mail messages for that user. The system administrator may
also install scripts that process all messages.
The output of a script is a list of mail addresses, files and programs
that should receive the message. It has access to each message as it
is processed, so the action can be content dependent. The script may
also generate automatic replies, like the "vacation" program, or pass
along a modified version of the original message.
Deliver can be used to construct mail-based services (e.g. automatic
mailing list maintenance). It can also be used to filter mail
automatically in prearranged ways (e.g. encryption and decryption,
tossing junk mail, or vacation notices).
Although deliver works best when installed set-user-id root, it can
perform many of its functions even when installed in the private bin
directory of a regular user.
HOW PORTABLE IS IT?
Deliver runs under (in alpabetical order):
Op. Sys. Vendor Comments
------------------ -------------- ------------------------------
Linux (free) kernel 0.99.13+, libc 4.4.4+
BSD (free)
3B1 System V AT&T
AIX 3.1 IBM
Coherent Mark Williams
CX/UX Harris
HP-UX 8.x HP using cc or c89
NeWS-OS 3.2 Sony
NextOS 2.x NeXT
RiscOS ? both flavors (BSD, SysV)
SCO UNIX 3.2 SCO using cc, rcc or gcc
SCO Xenix 2.x, 3.x SCO both Xenix/286 and Xenix/386
SunOS 3.x, 4.x Sun
System V (generic)
System V r4 (generic)
V7 AT&T
Configuration headers for various operating systems are found in
the "conf" directory of the Deliver distribution.
(The "conf" directory and the OS configuration header files found
therein are a new feature of Deliver 2.1. Therefore, only a few of
the above operating systems have configuration headers in the current
Deliver distribution.)
The configuration system is designed to simplify the creation of new
configuration headers. It is suggested that a new header include one
of base-posix.h, base-sysv.h, base-bsd.h or base-v7.h, followed by
"#define" and "#undef" directives describing the differences between
the included configuration and the target. See os-sco.h for an example
of this approach.
If your installation of Deliver requires a new OS configuration
header, please send me a copy at <chip@pobox.com>, so I can include
it in the next patch. If that address doesn't work, try @valinux.com
and @perlsupport.com.
HOW DOES DELIVER FIT INTO YOUR MAIL SYSTEM?
Deliver can fit into your E-Mail system in three ways, depending on
the mail transport software you currently use:
1. Smail 2.x.
You can use Deliver for local mail by changing the local mailer
definition in defs.h:
#define LMAIL(frm) "/usr/bin/deliver -r '%s'",frm
Smail 2.5 can be configured to use Deliver for non-local mail as
well, but no one in their right mind is still using Smail 2.x, so
what's the point?
2. Sendmail, Exim, Smail 3.x, etc.
Any user can let Deliver handle all his mail by putting the
following line in his .forward file:
"|/usr/bin/deliver username"
Be sure to specify the correct username, or someone else will
get your mail!
Sendmail users should read the file SENDMAIL for hints on other
ways to integrate Deliver and Sendmail.
3. The SCO Xenix mail system.
Deliver was invented to be a direct replacement for the Xenix
program /usr/lib/mail/mail.local. In fact, when I ran Xenix,
mail.local was a link to /usr/bin/deliver. But I'm better now.
DANGER, WILL ROBINSON!
1. Deliver is intended to be run setuid root; otherwise it would
not be possible to execute a user delivery file in the context
of its owner. Any setuid root program is a potential security
hole! Be careful of the modes on the Deliver binary and the
directory where it lives. See the file INSTALL for details.
2. Deliver's flexibility makes it easy to lose lots of mail through
carelessness in configuration. Write delivery files with
extreme care.
CAVEAT ADMINISTRATOR
-or-
DISCLAIMER? I DON'T EVEN KNOW HER!
Everyone makes mistakes, even (gasp!) me.
It is therefore possible that, despite all the care that went into
Deliver, some until-now unimagined condition might trigger a bug,
maybe even opening a security hole. It could also happen (and, in
fact, it _has_ happened) that some new whiz-bang operating system
feature might allow an end-run around Deliver's security precautions.
Of course, if you find a bug, you can also fix it, because you have
the source code. Remember my motto:
If you don't have source code, it isn't software.
It's just hardware on a CD-ROM.
See also http://www.opensource.org for more info on this subject.
COMPILING AND INSTALLING
Edit the Makefile to taste. In particular, set OSHEADER to the name
of the configuration header file that describes your OS. To make
configuration changes specific to your site, edit conf/local.h. See
the Makefile for more instructions.
** Note that HAS_NFS must be set before conf/local.h is included,
typically in the OS configuration header.
You can arrange to have all Deliver files installed in subdirectories
of a single directory. If such an arrangement suits you, edit the
Makefile: set DELHOME to the desired directory, and uncomment the
definition of HDEFS. If DELHOME is defined, Deliver binaries are
installed in DELHOME/bin, global delivery files are located in
DELHOME/lib, and log files are created in DELHOME/log. See config.h
for details.
After configuration, type "make". To install, type "make install".
For more information on installation, read the file INSTALL.
ACKNOWLEDGEMENTS
Deliver would be a mere shadow of its present self if not for help
from the many people who contributed suggestions and bug fixes. Thank
you.
Special thanks go to the Deliver 2.1 beta testers: Neil Rickert
<rickert@cs.niu.edu>, Goran Larsson <hacker@isadora.sypro.se> and G.
Paul Ziemba <paul@alantec.com>. I couldn't have done it without you.
COPYING CONDITIONS
As the author of Deliver, I (Chip Salzenberg) retain copyright to it.
However, I hereby state that anyone may freely redistribute Deliver
and works derived from it, with or without source code, as long as no
false claims of authorship or ownership are made.
HELP SAVE THE WORLD!
If you run into a bug, you are probably not alone. Save your fellow
human beings from toil and trouble! All bug reports and patches are
appreciated. Please mail them to the one of the addresses below.
Thank you, and good night.
Chip Salzenberg <chip@pobox.com>
|