xref: /csrg-svn/usr.sbin/sendmail/cf/README (revision 51220)
1*51220Seric@(#)README	2.1 (Berkeley) 10/02/91
2*51220Seric
3*51220SericThis document describes the sendmail configuration files being used
4*51220Sericat Berkeley.  There have been several previous versions.  This file
5*51220Sericis being written on 24 July 1991, and will probably not be generally
6*51220Sericavailable for several months.
7*51220Seric
8*51220SericINSTALLING A NEW SITE CONFIGURATION
9*51220Seric
10*51220SericConfiguration files are contained in the subdirectory "cf", with a
11*51220Sericsuffix ".mc".  They must be run through "m4" to produce a ".cf" file.
12*51220Seric
13*51220SericEvery .mc file SHOULD begin with:
14*51220Seric
15*51220Seric	divert(-1)
16*51220Seric	COPYRIGHT NOTICE
17*51220Seric	divert(0)
18*51220Seric
19*51220SericIf you don't care about copyrights, you can omit this.  If you try
20*51220Sericto patent this, I'll be very, very pissed.  I haven't patented a lot
21*51220Sericof hot ideas so that you can use them; I expect reciprocal courtesy.
22*51220SericA copyleft is a copyright by another name.
23*51220Seric
24*51220SericThe copyright, if any, MUST be followed by:
25*51220Seric
26*51220Seric	include(../m4/cf.m4)
27*51220Seric
28*51220SericThis will pull in the M4 macros you will need to make sense of
29*51220Sericeverything else.  As the saying goes, don't think about it, just
30*51220Sericdo it.  If you don't do it, don't bother reading the rest of this
31*51220Sericfile.
32*51220Seric
33*51220SericAt this point, let me make one thing perfectly clear.  I am a rope
34*51220Sericsalesman.  I sell you rope.  I haven't produced a new M4 system
35*51220Sericthat detects latent bugs, nor have I tried to fix the old one.
36*51220Seric(However, I have decided to rely on a post-V7 version; if you
37*51220Sericare running the 4.2bsd, SysV.2, or 7th Edition version, I suggest
38*51220Sericfinding a friend with a newer version.  You can m4-expand on
39*51220Serictheir system, then run locally.)
40*51220Seric
41*51220SericLet's examine a typical .mc file (cf/cs-exposed.mc):
42*51220Seric
43*51220Seric	divert(-1)
44*51220Seric	#
45*51220Seric	# Copyright (c) 1983 Eric P. Allman
46*51220Seric	# Copyright (c) 1988 The Regents of the University of California.
47*51220Seric	# All rights reserved.
48*51220Seric	#
49*51220Seric	# Redistribution and use in source and binary forms are permitted
50*51220Seric	# provided that the above copyright notice and this paragraph are
51*51220Seric	# duplicated in all such forms and that any documentation,
52*51220Seric	# advertising materials, and other materials related to such
53*51220Seric	# distribution and use acknowledge that the software was developed
54*51220Seric	# by the University of California, Berkeley.  The name of the
55*51220Seric	# University may not be used to endorse or promote products derived
56*51220Seric	# from this software without specific prior written permission.
57*51220Seric	# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
58*51220Seric	# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
59*51220Seric	# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
60*51220Seric	#
61*51220Seric
62*51220SericIf you copy this file and modify it, you should maintain this copyright
63*51220Sericnotice.  If you actually start from scratch you can delete it -- but be
64*51220Serichonest!
65*51220Seric
66*51220Seric	include(`../m4/cf.m4')
67*51220Seric
68*51220SericYou need this line!
69*51220Seric
70*51220Seric	VERSIONID(@(#)README	2.1 (Berkeley) 10/02/91)
71*51220Seric
72*51220SericVERSIONID is a macro that stuffs the version information into the
73*51220Sericresulting file.  We use SCCS; you could use RCS, something else, or
74*51220Sericomit it completely.
75*51220Seric
76*51220Seric	DOMAIN(cs.exposed)dnl
77*51220Seric
78*51220SericThis example exposes the host inside of the CS subdomain -- that is,
79*51220Sericit doesn't try to hide the name of the workstation to the outside
80*51220Sericworld.  Changing this to DOMAIN(cs.hidden) would have made outgoing
81*51220Sericmessages refer to "<username>@CS.Berkeley.EDU" instead of using the
82*51220Sericlocal hostname.  This can also be effected by using:
83*51220Seric
84*51220Seric	define(`MASQUERADE_AS', `masquerade.host.name.domain.name')dnl
85*51220Seric
86*51220Sericin the ".mc" file.
87*51220Seric
88*51220Seric	MAILER(local)dnl
89*51220Seric	MAILER(smtp)dnl
90*51220Seric
91*51220SericThese describe the mailers used at the default CS site site.
92*51220Seric
93*51220SericNote that cf/cs-exposed.mc omits an OSTYPE macro -- this assumes
94*51220Sericdefault Computer Science Division environment.  There are several
95*51220Sericenvironments available: bsd4.3, bsd4.4, riscos4.5, sunos3.5,
96*51220Sericsunos4.1, and ultrix4.1.  These change things like the location
97*51220Sericof the alias file and queue directory.
98*51220Seric
99*51220SericMAILERS
100*51220Seric
101*51220SericThere are fewer mailers supported in this version than the previous
102*51220Sericversion, owing mostly to a simpler world.
103*51220Seric
104*51220Sericlocal		The local and prog mailers.  You will almost always
105*51220Seric		need these; the only exception is if you relay ALL
106*51220Seric		your mail to another site.
107*51220Seric
108*51220Sericsmtp		The Simple Mail Transport Protocol mailer.  This does
109*51220Seric		not hide hosts behind a gateway or another other
110*51220Seric		such hack; it assumes a world where everyone is
111*51220Seric		running the name server.
112*51220Seric
113*51220Sericuucp		The Unix-to-Unix Copy Program mailer.  Actually, this
114*51220Seric		defines two mailers, "uucp" and "suucp".  The latter
115*51220Seric		is for when you know that the UUCP mailer at the other
116*51220Seric		end can handle multiple recipients in one transfer.
117*51220Seric
118*51220SericHIERARCHY
119*51220Seric
120*51220SericWithin this directory are several subdirectories, to wit:
121*51220Seric
122*51220Sericm4		General support routines.  These are typically
123*51220Seric		very important and should not be changed without
124*51220Seric		contacting your lawyer.
125*51220Seric
126*51220Sericcf		The configuration files themselves.  They have
127*51220Seric		".mc" suffixes, and must be run through m4 to
128*51220Seric		become complete.  The resulting output should
129*51220Seric		have a ".cf" suffix.
130*51220Seric
131*51220Sericostype		Definitions describing a particular operating
132*51220Seric		system type.  These should always be referenced
133*51220Seric		using the OSTYPE macro in the .mc file.  Examples
134*51220Seric		include "bsd4.3", "bsd4.4", "sunos3.5", and
135*51220Seric		"sunos4.1".
136*51220Seric
137*51220Sericdomain		Definitions describing a particular domain, referenced
138*51220Seric		using the DOMAIN macro in the .mc file.  These are
139*51220Seric		site dependent; for example, we contribute "cs.exposed.m4"
140*51220Seric		and "cs.hidden.m4" which both describe hosts in the
141*51220Seric		CS.Berkeley.EDU subdomain; the former displays the local
142*51220Seric		hostname (e.g., mammoth.CS.Berkeley.EDU), whereas the
143*51220Seric		latter does its best to hide the identity of the local
144*51220Seric		workstation inside the CS subdomain.
145*51220Seric
146*51220Sericmailer		Descriptions of mailers.   These are referenced using
147*51220Seric		the MAILER macro in the .mc file.
148*51220Seric
149*51220Sericsh		Shell files used when building the .cf file from the
150*51220Seric		.mc file in the cf subdirectory.
151*51220Seric
152*51220Sericfeature		These hold special orthogonal features that you might
153*51220Seric		want to include.  They should be referenced using
154*51220Seric		the FEATURE macro.
155*51220Seric
156*51220Serichack		Local hacks.  These can be referenced using the HACK
157*51220Seric		macro.  They shouldn't be of more than voyeuristic
158*51220Seric		interest outside the .Berkeley.EDU domain, but who knows?
159*51220Seric		We've all got our own peccadilloes.
160*51220Seric
161*51220Seric
162*51220SericADMINISTRATIVE DETAILS
163*51220Seric
164*51220SericThe following sections detail usage of certain internal parts of the
165*51220Sericsendmail.cf file.  Read them carefully if you are trying to modify
166*51220Sericthe current model.  If you find the above descriptions adequate, these
167*51220Sericshould be {boring, confusing, tedious, ridiculous} (pick one or more).
168*51220Seric
169*51220SericRULESETS (* means built in to sendmail)
170*51220Seric
171*51220Seric   0 *	Parsing
172*51220Seric   1 *	Sender rewriting
173*51220Seric   2 *	Recipient rewriting
174*51220Seric   3 *	Canonicalization
175*51220Seric   4 *	Post cleanup
176*51220Seric   5	Back compatibility for UUCP
177*51220Seric   6	Bottom half of Ruleset 3
178*51220Seric   7	--unused--
179*51220Seric   8	"host dependent cleanup" -- unused?
180*51220Seric   9	change rightmost % to @ -- needed?
181*51220Seric
182*51220Seric
183*51220SericMAILERS
184*51220Seric
185*51220Seric   0	local, prog	local and program mailers
186*51220Seric   1	smtp		SMTP channel
187*51220Seric   2	uucp
188*51220Seric
189*51220Seric
190*51220SericMACROS
191*51220Seric
192*51220Seric   A
193*51220Seric   B	Bitnet Relay
194*51220Seric   C	CSNET Relay
195*51220Seric   D
196*51220Seric   E
197*51220Seric   F
198*51220Seric   G
199*51220Seric   H
200*51220Seric   I
201*51220Seric   J
202*51220Seric   K
203*51220Seric   L
204*51220Seric   M	Masquerade (who I claim to be)
205*51220Seric   N
206*51220Seric   O
207*51220Seric   P
208*51220Seric   Q
209*51220Seric   R	Relay (for unqualified names)
210*51220Seric   S
211*51220Seric   T
212*51220Seric   U	UUCP Relay (all hosts)
213*51220Seric   V	UUCP Relay (class V hosts)
214*51220Seric   W	UUCP Relay (class W hosts)
215*51220Seric   X	UUCP Relay (class X hosts)
216*51220Seric   Y	UUCP Relay (class Y hosts)
217*51220Seric   Z	Version number
218*51220Seric
219*51220Seric
220*51220SericCLASSES
221*51220Seric
222*51220Seric   A
223*51220Seric   B
224*51220Seric   C
225*51220Seric   D
226*51220Seric   E
227*51220Seric   F
228*51220Seric   G
229*51220Seric   H
230*51220Seric   I
231*51220Seric   J
232*51220Seric   K
233*51220Seric   L	addresses that should not be forwarded to $R
234*51220Seric   M
235*51220Seric   N
236*51220Seric   O	operators that indicate network operations (cannot be in local names)
237*51220Seric   P
238*51220Seric   Q
239*51220Seric   R
240*51220Seric   S
241*51220Seric   T
242*51220Seric   U	locally connected UUCP hosts
243*51220Seric   V	UUCP hosts connected to host $V
244*51220Seric   W	UUCP hosts connected to host $X
245*51220Seric   X	UUCP hosts connected to host $Y
246*51220Seric   Y	UUCP hosts connected to host $Z
247*51220Seric   Z
248*51220Seric
249*51220Seric
250*51220SericM4 DIVERSIONS
251*51220Seric
252*51220Seric   1	Versions
253*51220Seric   2	Local Ruleset 0 additions
254*51220Seric   3	Local Ruleset 3 additions
255*51220Seric   4
256*51220Seric   5
257*51220Seric   6
258*51220Seric   7	mailer definitions
259*51220Seric   8
260*51220Seric   9
261