This commit was generated by cvs2svn to track changes on a CVS vendor
[unix-history] / usr.sbin / sendmail / cf / README
CommitLineData
15637ed4 1
15637ed4 2
6f14531a
RG
3 NEW SENDMAIL CONFIGURATION FILES
4
5 Eric Allman <eric@CS.Berkeley.EDU>
6
3a363396 7 @(#)README 8.3 (Berkeley) 7/13/93
6f14531a
RG
8
9
10This document describes the sendmail configuration files being used
11at Berkeley. These use features in the new (R6) sendmail, and although
12there is an ``OLDSENDMAIL'' mode, they haven't really been tested on
13old versions of sendmail and cannot be expected to work well.
14
15These configuration files are probably not as general as previous
16versions, and don't handle as many of the wierd cases automagically.
17I was able to simplify by them for two reasons. First, the network
18has become more consistent -- for example, at this point, everyone
19on the internet is supposed to be running a name server, so hacks to
20handle NIC-registered hosts can go away. Second, I assumed that a
21subdomain would be running SMTP internally -- UUCP is presumed to be
22a long-haul protocol. I realize that this is not universal, but it
23does describe the vast majority of sites with which I am familiar,
24including those outside the US.
25
26Of course, the downside of this is that if you do live in a wierd
27world, things are going to get wierder for you. I'm sorry about that,
28but at the time we at Berkeley had a problem, and it seemed like the
29right thing to do.
30
31This package requires a post-V7 version of m4; if you are running the
324.2bsd, SysV.2, or 7th Edition version, I suggest finding a friend with
33a newer version. You can m4-expand on their system, then run locally.
34SunOS's /usr/5bin/m4 or BSD-Net/2's m4 both work. GNU m4 (which is a
35language unto itself) also works, but I don't intend to work so hard
36to keep this up in the future. [Note to GNU folks: the construct
37"define(`FOO')" should work without my having to add a null value.]
38
39IF YOU DON'T HAVE A BERKELEY MAKE, don't despair! Just run
40"m4 foo.mc > foo.cf" -- that should be all you need.
41
42To get started, you may want to look at tcpproto.mc (for TCP-only
43sites) and uucpproto.m4 (for UUCP-only sites). Others are versions
44that we use at Berkeley, although not all are in current use. For
45example, ucbarpa has gone away, but I've left ucbarpa.mc in because
46it demonstrates some interesting techniques.
47
48I'm not pretending that this README describes everything that these
49configuration files can do; clever people can probably tweak them
50to great effect. But it should get you started.
51
52
53+--------------------------+
54| INTRODUCTION AND EXAMPLE |
55+--------------------------+
56
57Configuration files are contained in the subdirectory "cf", with a
58suffix ".mc". They must be run through "m4" to produce a ".cf" file.
59
60Let's examine a typical .mc file (cf/cs-exposed.mc):
61
62 divert(-1)
63 #
64 # Copyright (c) 1983 Eric P. Allman
65 # Copyright (c) 1988 The Regents of the University of California.
66 # All rights reserved.
67 #
68 # Redistribution and use in source and binary forms are permitted
69 # provided that the above copyright notice and this paragraph are
70 # duplicated in all such forms and that any documentation,
71 # advertising materials, and other materials related to such
72 # distribution and use acknowledge that the software was developed
73 # by the University of California, Berkeley. The name of the
74 # University may not be used to endorse or promote products derived
75 # from this software without specific prior written permission.
76 # THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
77 # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
78 # WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
79 #
80
81The divert(-1) will delete the crud in the resulting output file.
82The copyright notice is what your lawyers require. Our lawyers require
83the one that I've included in my files. A copyleft is a copyright by
84another name.
85
86The next line MUST be
87
88 include(`../m4/cf.m4')
89
90This will pull in the M4 macros you will need to make sense of
91everything else. As the saying goes, don't think about it, just
92do it. If you don't do it, don't bother reading the rest of this
93file.
94
95 VERSIONID(`<SCCS or RCS version id>')
96
97VERSIONID is a macro that stuffs the version information into the
98resulting file. We use SCCS; you could use RCS, something else, or
99omit it completely. This is not the same as the version id included
100in SMTP greeting messages -- this is defined in m4/version.m4.
101
102 DOMAIN(cs.exposed)
103
104This example exposes the host inside of the CS subdomain -- that is,
105it doesn't try to hide the name of the workstation to the outside
106world. Changing this to DOMAIN(cs.hidden) would have made outgoing
107messages refer to "<username>@CS.Berkeley.EDU" instead of using the
108local hostname. Internaly this is effected by using
109"MASQUERADE_AS(CS.Berkeley.EDU)".
110
111 MAILER(smtp)
112
113These describe the mailers used at the default CS site site. The
114local mailer is always included automatically.
115
116
117+--------+
118| OSTYPE |
119+--------+
120
121Note that cf/cs-exposed.mc omits an OSTYPE macro -- this assumes
122default Computer Science Division environment. There are several
123explicit environments available: bsd4.3, bsd4.4, hpux, irix, osf1,
124riscos4.5, sunos3.5, sunos4.1, and ultrix4.1. These change things
125like the location of the alias file and queue directory. Some of
126these files are identical to one another.
127
128Operating system definitions are easy to write. They may define
129the following variables (everything defaults, so an ostype file
130may be empty).
131
132ALIAS_FILE [/etc/aliases] The location of the text version
133 of the alias file(s). It can be a comma-separated
134 list of names.
135HELP_FILE [/usr/lib/sendmail.hf] The name of the file
136 containing information printed in response to
137 the SMTP HELP command.
138QUEUE_DIR [/var/spool/mqueue] The directory containing
139 queue files.
140STATUS_FILE [/etc/sendmail.st] The file containing status
141 information.
142LOCAL_MAILER_PATH [/bin/mail] The program used to deliver local mail.
143LOCAL_MAILER_FLAGS [rn] The flags used by the local mailer. The
144 flags lsDFMm are always included.
3a363396
NW
145LOCAL_MAILER_ARGS [mail -d $u] The arguments passed to deliver local
146 mail.
6f14531a 147LOCAL_SHELL_PATH [/bin/sh] The shell used to deliver piped email.
3a363396
NW
148LOCAL_SHELL_FLAGS [eu] The flags used by the shell mailer. The
149 flags lsDFM are always included.
150LOCAL_SHELL_ARGS [sh -c $u] The arguments passed to deliver "prog"
151 mail.
6f14531a
RG
152USENET_MAILER_PATH [/usr/lib/news/inews] The name of the program
153 used to submit news.
154USENET_MAILER_FLAGS [rlsDFMmn] The mailer flags for the usenet mailer.
155USENET_MAILER_ARGS [-m -h -n] The command line arguments for the
156 usenet mailer.
157SMTP_MAILER_FLAGS [undefined] Flags added to SMTP mailer.
158UUCP_MAILER_FLAGS [undefined] Flags added to UUCP mailer.
3a363396
NW
159UUCP_MAILER_ARGS [uux - -r -z -a$f -gC $h!rmail ($u)] The arguments
160 passed to the UUCP mailer.
161UUCP_MAX_SIZE [100000] The maximum size message accepted for
162 transmission by the UUCP mailers.
6f14531a
RG
163HOSTMAP_SPEC [dbm -o /etc/hostmap] The value for the builtin
164 hostmap key definition. You can redefine this
165 to change the class, flags, and filename of
166 the hostmap. The default flag (-o) makes this
167 map optional.
168
169In addition, the following boolean flags may be defined -- the value
170is ignored.
171
172NEED_DOMAIN If set, the $j macro is defined as $w.$D.
173 If not set, $j is defined as $w. If this is
174 set, the domain must be defined using the line
175 DD<domainname> (probably in the domain file,
176 but possibly in the .mc file). You will only
177 need this if you define your system hostname
178 without a domain (type "hostname" -- if it
179 has no dots in the output, you qualify) AND
180 if you are not running the nameserver AND if
181 the first (canonical) name in /etc/hosts for
182 your machine has no domain -- OR if you are
183 running Ultrix or OSF/1 sendmail. Either of
184 these is probably a mistake.
185
186+---------+
187| DOMAINS |
188+---------+
189
190You will probably want to collect domain-dependent defines into one
191file, referenced by the DOMAIN macro. For example, our Berkeley
192domain file includes definitions for several internal distinguished
193hosts:
194
195UUCP_RELAY The host that will forward UUCP-addressed email.
196 If not defined, all UUCP sites must be directly
197 connected.
198BITNET_RELAY The host that will forward BITNET-addressed email.
199 If not defined, the .BITNET pseudo-domain won't work.
200CSNET_RELAY The host that will forward CSNET-addressed email.
201 If not defined, the .CSNET pseudo-domain won't work.
202LOCAL_RELAY The site that will handle unqualified names -- that
203 is, names with out an @domain extension. If not set,
204 they are assumed to belong on this machine. This
205 allows you to have a central site to store a
206 company- or department-wide alias database. This
207 only works at small sites, and there are better
208 methods.
209
210The domain file can also be used to define a domain name, if needed
211(using "DD<domain>") and set certain site-wide features. If all hosts
212at your site masquerade behind one email name, you could also use
213MASQUERADE_AS here.
214
215You do not have to define a domain -- in particular, if you are a
216single machine sitting off somewhere, it is probably more work than
217it's worth. This is just a mechanism for combining "domain dependent
218knowledge" into one place.
219
220+---------+
221| MAILERS |
222+---------+
223
224There are fewer mailers supported in this version than the previous
225version, owing mostly to a simpler world.
226
227local The local and prog mailers. You will almost always
228 need these; the only exception is if you relay ALL
229 your mail to another site. This mailer is included
230 automatically.
231
232smtp The Simple Mail Transport Protocol mailer. This does
233 not hide hosts behind a gateway or another other
234 such hack; it assumes a world where everyone is
3a363396
NW
235 running the name server. This file actually defines
236 three mailers: "smtp" for regular (old-style) SMTP to
237 other servers, "esmtp" for extended SMTP to other
238 servers, and "relay" for transmission to our
239 RELAY_HOST or MAILER_HUB.
6f14531a
RG
240
241uucp The Unix-to-Unix Copy Program mailer. Actually, this
242 defines two mailers, "uucp" and "suucp". The latter
243 is for when you know that the UUCP mailer at the other
244 end can handle multiple recipients in one transfer.
245 When you invoke this, sendmail looks for all names in
246 the $=U class and sends them to the uucp mailer; all
247 names in the $=Y class are sent to suucp. Note that
248 this is a function of what version of rmail runs on
249 the receiving end, and hence may be out of your control.
250
251usenet Usenet (network news) delivery. If this is specified,
252 an extra rule is added to ruleset 0 that forwards all
253 local email for users named ``group.usenet'' to the
254 ``inews'' program. Note that this works for all groups,
255 and may be considered a security problem.
256
257fax Facsimile transmission. This is experimental and based
258 on Sam Leffler's FlexFAX software. For more information,
259 see below.
260
261
262+----------+
263| FEATURES |
264+----------+
265
266Special features can be requested using the "FEATURE" macro. For
267example, the .mc line:
268
269 FEATURE(use_cw_file)
270
271tells sendmail that you want to have it read an /etc/sendmail.cw
272file to get values for class $=w. The FEATURE may contain a single
273optional parameter -- for example:
274
275 FEATURE(mailertable, dbm /usr/lib/mailertable)
276
277Available features are:
278
279use_cw_file Read the file /etc/sendmail.cw file to get alternate
280 names for this host. This might be used if you were
281 on a host that MXed for a dynamic set of other
282 hosts. If the set is static, just including the line
283 "Cw<name1> <name2> ..." is probably superior.
284 The actual filename can be overridden by redefining
285 confCW_FILE.
286redirect Reject all mail addressed to "address.REDIRECT" with
287 a ``551 User not local; please try <address>'' message.
288 If this is set, you can alias people who have left
289 to their new address with ".REDIRECT" appended.
290nouucp Don't do anything special with UUCP addresses at all.
291nocanonify Don't pass addresses to $[ ... $] for canonification.
292 This would generally only be used by sites that only
293 act as mail gateways or which have user agents that do
294 full canonification themselves.
295notsticky By default, email sent to "user@local.host" are marked
296 as "sticky" -- that is, the local addresses aren't
297 matched against UDB and don't go through ruleset 5.
298 This features disables this treatment. It would
299 normally be used on network gateway machines.
300mailertable Include a "mailer table" which can be used to override
301 routing for particular domains. The argument of the
302 FEATURE may be the key definition. If none is specified,
303 the definition used is:
3a363396
NW
304 hash /etc/mailertable -o
305 Keys in this database are fully qualified domain names
306 or partial domains preceded by a dot -- for example,
307 "vangogh.CS.Berkeley.EDU" or ".CS.Berkeley.EDU".
308 Values must be of the form:
6f14531a 309 mailer:domain
3a363396
NW
310 where "mailer" is the internal mailer name, and "domain"
311 is where to send the message. These maps are not
312 reflected into the message header.
313domaintable Include a "domain table" which can be used to provide
314 full domains on unqualified (single word) hosts. The
315 argument of the FEATURE may be the key definition. If
316 none is specified, the definition used is:
317 hash /etc/domaintable -o
318 The key in this table is the unqualified host name; the
319 value is the fully qualified domain. Anything in the
320 domaintable is reflected into headers; that is, this
321 is done in ruleset 3.
6f14531a
RG
322bitdomain Look up bitnet hosts in a table to try to turn them into
323 internet addresses. The table can be built using the
324 bitdomain program contributed by John Gardiner Meyers.
325 The argument of the FEATURE may be the key definition; if
326 none is specified, the definition used is:
327 hash /etc/bitdomain.db -o
328 Keys are the bitnet hostname; values are the corresponding
329 internet hostname.
330uucpdomain Similar feature for UUCP hosts. The default map definition
331 is:
332 hash /etc/uudomain.db -o
333 At the moment there is no automagic tool to build this
334 database.
335always_add_domain
336 Include the local host domain even on locally delivered
337 mail. Normally it is not added unless it is already
338 present.
3a363396
NW
339allmasquerade If masquerading is enabled (using MASQUERADE_AS), this
340 feature will cause recipient addresses to also masquerade
341 as being from the masquerade host. Normally they get
342 the local hostname. Although this may be right for
343 ordinary users, it can break local aliases. For example,
344 if you send to "localalias", the originating sendmail will
345 find that alias and send to all members, but send the
346 message with "To: localalias@masqueradehost". Since that
347 alias likely does not exist, replies will fail. Use this
348 feature ONLY if you can guarantee that the ENTIRE
349 namespace on your masquerade host supersets all the
350 local entries.
6f14531a
RG
351
352Other FEATUREs should be defined, but I was trying to keep these
353config files fairly lean and mean.
354
355
356+-------+
357| HACKS |
358+-------+
359
360Some things just can't be called features. To make this clear,
361they go in the hack subdirectory and are referenced using the HACK
362macro. These will tend to be site-dependent. The release
363includes the Berkeley-dependent "cssubdomain" hack (that makes
364sendmail accept local names in either Berkeley.EDU or CS.Berkeley.EDU;
365this is intended as a short-term aid while we move hosts into
366subdomains.
367
368
369+--------------------+
370| SITE CONFIGURATION |
371+--------------------+
372
373Complex sites will need more local configuration information, such as
374lists of UUCP hosts they speak with directly. This can get a bit more
375tricky. For an example of a "complex" site, see cf/ucbvax.mc.
376
377The SITECONFIG macro allows you to indirectly reference site-dependent
378configuration information stored in the siteconfig subdirectory. For
379example, the line
380
381 SITECONFIG(uucp.ucbvax, ucbvax, U)
382
383reads the file uucp.ucbvax for local connection information. The
384second parameter is the local name (in this case just "ucbvax" since
385it is locally connected, and hence a UUCP hostname) and the name of
386the class in which to store the host information. Another SITECONFIG
387line reads
388
389 SITECONFIG(uucp.ucbarpa, ucbarpa.Berkeley.EDU, W)
390
391This says that the file uucp.ucbarpa contains the list of UUCP sites
392connected to ucbarpa.Berkeley.EDU. The $=W class will be used to
393store this list. [The machine ucbarpa is gone now, but I've left
394this out-of-date configuration file around to demonstrate how you
395might do this.]
396
397The siteconfig file (e.g., siteconfig/uucp.ucbvax.m4) contains nothing
398more than a sequence of SITE macros describing connectivity. For
399example:
400
401 SITE(cnmat)
402 SITE(sgi olympus)
15637ed4 403
6f14531a
RG
404The second example demonstrates that you can use two names on the
405same line; these are usually aliases for the same host (or are at
406least in the same company).
407
408
409+-------------------+
410| TWEAKING RULESETS |
411+-------------------+
15637ed4 412
6f14531a
RG
413For more complex configurations, you can define special rules.
414The macro LOCAL_RULE_3 introduces rules that are used in canonicalizing
415the names. Any modifications made here are reflected in the header.
15637ed4 416
6f14531a
RG
417A common use is to convert old UUCP addreses to SMTP addresses using
418the UUCPSMTP macro. For example:
15637ed4 419
6f14531a
RG
420 LOCAL_RULE_3
421 UUCPSMTP(decvax, decvax.dec.com)
422 UUCPSMTP(research, research.att.com)
15637ed4 423
6f14531a
RG
424will cause addresses of the form "decvax!user" and "research!user"
425to be converted to "user@decvax.dec.com" and "user@research.att.com"
426respectively.
15637ed4 427
6f14531a 428This could also be used to look hosts in a database map:
15637ed4 429
6f14531a
RG
430 LOCAL_RULE_3
431 R$* < @ $+ > $* $: $1 < @ $(hostmap $2 $) > $3
15637ed4 432
6f14531a 433This map would be defined in the LOCAL_CONFIG portion, as shown below.
15637ed4 434
6f14531a
RG
435Similarly, LOCAL_RULE_0 can be used to introduce new parsing rules.
436For example, new rules are needed to parse hostnames that you accept
437via MX records. For example, you might have:
15637ed4 438
6f14531a
RG
439 LOCAL_RULE_0
440 R$+ < @ cnmat.Berkeley.EDU > $#uucp $@ cnmat $: $1
15637ed4 441
6f14531a
RG
442You would use this if you had installed an MX record for cnmat.Berkeley.EDU
443pointing at this host; this rule catches the message and forwards it on
444using UUCP.
15637ed4 445
6f14531a
RG
446You can also tweak rulesets 1 and 2 using LOCAL_RULE_1 and LOCAL_RULE_2.
447These rulesets are normally empty.
15637ed4 448
6f14531a
RG
449A similar macro is LOCAL_CONFIG. This introduces lines added after the
450boilerplate option setting but before rulesets, and can be used to
451declare local database maps or whatever. For example:
15637ed4 452
6f14531a
RG
453 LOCAL_CONFIG
454 Khostmap hash /etc/hostmap.db
455 Kyplocal nis -m hosts.byname
15637ed4 456
15637ed4 457
6f14531a
RG
458+---------------------------+
459| MASQUERADING AND RELAYING |
460+---------------------------+
15637ed4 461
6f14531a 462You can have your host masquerade as another using
15637ed4 463
6f14531a 464 MASQUERADE_AS(host.domain)
15637ed4 465
6f14531a
RG
466This causes outgoing SMTP mail to be labelled as coming from the
467indicated domain, rather than $j. One normally masquerades as one
468of your own subdomains (for example, it's unlikely that I would
469choose to masquerade as an MIT site).
15637ed4 470
6f14531a
RG
471there are always users that need to be "exposed" -- that is, their
472internal site name should be displayed instead of the masquerade name.
473Root is an example. You can add users to this list using
15637ed4 474
6f14531a 475 EXPOSED_USER(usernames)
15637ed4 476
6f14531a 477This adds users to class E; you could also use something like
15637ed4 478
6f14531a 479 FE/etc/sendmail.cE
15637ed4 480
6f14531a
RG
481You can also arrange to relay all unqualified names (that is, names
482without @host) to a relay host. For example, if you have a central
483email server, you might relay to that host so that users don't have
484to have .forward files or aliases. You can do this using
15637ed4 485
6f14531a 486 define(`LOCAL_RELAY', mailer:hostname)
15637ed4 487
6f14531a
RG
488The ``mailer:'' can be omitted, in which case the mailer defaults to
489"smtp". There are some user names that you don't want relayed, perhaps
490because of local aliases. A common example is root, which may be
491locally aliased. You can add entries to this list using
15637ed4 492
6f14531a 493 LOCAL_USER(usernames)
15637ed4 494
6f14531a 495This adds users to class L; you could also use something like
15637ed4 496
6f14531a 497 FL/etc/sendmail.cL
15637ed4 498
6f14531a
RG
499If you want all mail sent to a centralized hub, as for a shared
500/var/spool/mail scheme, use
15637ed4 501
6f14531a 502 define(`MAIL_HUB', mailer:hostname)
15637ed4 503
6f14531a
RG
504Again, ``mailer:'' defaults to "smtp". If you define both LOCAL_RELAY
505and MAIL_HUB, unqualified names and names in class L will be sent to
506the LOCAL_RELAY and other local names will be sent to MAIL_HUB. For
507example, if are on machine mastodon.CS.Berkeley.EDU, the following
508combinations of settings will have the indicated effects:
15637ed4 509
6f14531a 510email sent to.... eric eric@mastodon.CS.Berkeley.EDU
15637ed4 511
6f14531a
RG
512LOCAL_RELAY set to mail.CS.Berkeley.EDU (delivered locally)
513mail.CS.Berkeley.EDU
15637ed4 514
6f14531a
RG
515MAIL_HUB set to mammoth.CS.Berkeley.EDU mammoth.CS.Berkeley.EDU
516mammoth.CS.Berkeley.EDU
15637ed4 517
6f14531a
RG
518Both LOCAL_RELAY and mail.CS.Berkeley.EDU mammoth.CS.Berkeley.EDU
519MAIL_HUB set as above
15637ed4
RG
520
521
6f14531a
RG
522+-------------------------------+
523| NON-SMTP BASED CONFIGURATIONS |
524+-------------------------------+
15637ed4 525
6f14531a
RG
526These configuration files are designed primarily for use by SMTP-based
527sites. I don't pretend that they are well tuned for UUCP-only or
528UUCP-primarily nodes (the latter is defined as a small local net
529connected to the rest of the world via UUCP). However, there is one
530hook to handle some special cases.
15637ed4 531
6f14531a
RG
532You can define a ``smart host'' that understands a richer address syntax
533using:
15637ed4 534
6f14531a 535 define(`SMART_HOST', mailer:hostname)
15637ed4 536
6f14531a
RG
537In this case, the ``mailer:'' defaults to "suucp". Any messages that
538can't be handled using the usual UUCP rules are passed to this host.
15637ed4 539
6f14531a
RG
540If you are on a local SMTP-based net that connects to the outside
541world via UUCP, you can use LOCAL_NET_CONFIG to add appropriate rules.
542For example:
15637ed4 543
6f14531a
RG
544 define(`SMART_HOST', suucp:uunet)
545 LOCAL_NET_CONFIG
3a363396 546 R$* < @ $* .$m. > $* $#smtp $@ $2.$m. $: $1 < @ $2.$m. > $3
15637ed4 547
6f14531a
RG
548This will cause all names that end in your domain name ($m) via
549SMTP; anything else will be sent via suucp (smart UUCP) to uunet.
3a363396
NW
550If you have FEATURE(nocanonify), you may need to omit the dots after
551the $m. If you are running a local DNS inside your domain which is
552not otherwise connected to the outside world, you probably want to
553use:
554
555 define(`SMART_HOST', smtp:fire.wall.com)
556 LOCAL_NET_CONFIG
557 R$* < @ $* . > $* $#smtp $@ $2. $: $1 < @ $2. > $3
558
559That is, send directly only to things you found in your DNS lookup;
560anything else goes through SMART_HOST.
15637ed4 561
15637ed4 562
6f14531a
RG
563+------------------+
564| FlexFAX SOFTWARE |
565+------------------+
15637ed4 566
6f14531a
RG
567Sam Leffler's FlexFAX software is still in beta test -- but he expects a
568public version out "later this week" [as of 3/1/93]. The following
569blurb is direct from Sam:
15637ed4 570
3a363396 571 $Header: /b/source/CVS/src/usr.sbin/sendmail/cf/README,v 1.4 1993/07/20 18:10:37 glass Exp $
15637ed4 572
6f14531a 573 How To Obtain This Software (in case all you get is this file)
15637ed4 574
6f14531a
RG
575 The source code is available for public ftp on
576 sgi.com sgi/fax/v2.1beta.tar.Z
577 (192.48.153.1)
15637ed4 578
6f14531a
RG
579 You can also obtain inst'able images for Silicon Graphics machines from
580 sgi.com sgi/fax/v2.1beta.inst.tar
581 (192.48.153.1)
15637ed4 582
6f14531a
RG
583 For example,
584 % ftp -n sgi.com
585 ....
586 ftp> user anonymous
587 ... <type in password>
588 ftp> cd sgi/fax
589 ftp> binary
590 ftp> get v2.1beta.tar.Z
15637ed4 591
6f14531a
RG
592 If you cannot use FTP at all, there is a service called "ftpmail"
593 available from gateekeeper.dec.com: you can send e-mail to this
594 machine and it will use FTP to retrieve files for you and send you the
595 files back again via e-mail. To find out more about the ftpmail
596 service, send a message to "ftpmail@gatekeeper.dec.com" whose body
597 consists of the single line "help".
15637ed4 598
6f14531a
RG
599 Internal to Silicon Graphics there are inst'able images on the host
600 flake.asd in the directory /d/dist. Thus you can do something like:
601
602 % inst -f flake.asd.sgi.com:/d/dist/flexfax
603
604 to install the software on your machine.
605
606 The external distributions come in a compressed or uncompressed tar
607 file. To extract the source distribution:
608
609 % zcat v2.1beta.tar.Z | tar xf -
610
611 (uncompress and extract individual files in current directory). To
612 unpack and install the client portion of the inst'able distribution:
613
614 % mkdir dist
615 % cd dist; tar xf ../v2.1beta.inst.tar; cd ..
616 % inst -f dist/flexfax
617 ...
618 inst> go
619
620 (Note, the dist subdirectory is because some versions of inst fail if
621 the files are in the current directory.) Server binaries is also
622 included in the inst'able images as flexfax.server.*. It is not
623 installed by default, so to get it also you need to extract the do:
624
625 % inst -f flexfax
626 ...
627 inst> install flexfax.server.*
628 inst> go
629
630 The SGI binaries were built for Version 4.0.5 of the IRIX operating
631 system. They should work w/o problem on earlier versions of the
632 system, but I have not fully tested this. Also, note that to install a
633 server on an SGI machine, you need to have installed the Display
634 PostScript execution environment product (dps_eoe). Otherwise, the fax
635 server will not be able to convert PostScript to facsimile for
636 transmission.
637
638 If you are working from the source distribution, look at the file README
639 in the top of the source tree. If you are working from the inst images,
640 you need to run faxaddmodem to setup and configure your fax modem. Do
641 man faxaddmodem for more information.
642
643Also from Sam:
644
645 A mailing list for users of this software is located on sgi.com.
646 If you want to join this mailing list or have a list-related request
647 such as getting your name removed from it, send a request to
648
649 flexfax-request@sgi.com
650
651 Submissions (including bug reports) should be directed to:
652
653 flexfax@sgi.com
654
655
656+--------------------------------+
657| TWEAKING CONFIGURATION OPTIONS |
658+--------------------------------+
659
660There are a large number of configuration options that don't normally
661need to be changed. However, if you feel you need to tweak them, you
662can define the following M4 variables. This list is shown in four
663columns: the name you define, the default value for that definition,
664the option or macro that is affected (either Ox for an option or Dx
665for a macro), and a brief description. Greater detail of the semantics
666can be found in the Installation and Operations Guide.
667
668Some options are likely to be deprecated in future versions -- that is,
669the option is only included to provide back-compatibility. These are
670marked with "*".
671
672M4 Variable Name Default Mac/Opt Description
673confMAILER_NAME MAILER-DAEMON Dn The sender name used for
674 internally generated
675 outgoing messages.
676confFROM_LINE From $g $d Dl The From_ line used when
677 sending to files or programs.
678confFROM_HEADER $?x$x <$g>$|$g$. The format of an internally
679 Dq generated From: address.
680confOPERATORS .:%@!^/[] Do Address operator characters.
681confSTMP_LOGIN_MSG $j Sendmail $v/$Z ready at $b
682 De The initial (spontaneous)
683 SMTP greeting message.
684confSEVEN_BIT_INPUT False O7 Force input to seven bits?
685confALIAS_WAIT 10 Oa Wait (in minutes) for alias
686 file rebuild.
687confMIN_FREE_BLOCKS 4 Ob Minimum number of free blocks
688 on queue filesystem to accept
689 SMTP mail.
690confBLANK_SUB . OB Blank (space) substitution
691 character.
692confCON_EXPENSIVE False Oc Connect immediately to
693 mailers marked expensive?
694confCHECKPOINT_INTERVAL 10 OC Checkpoint queue files
695 every N recipients.
696confDELIVERY_MODE background Od Default delivery mode.
697confAUTO_REBUILD False OD Automatically rebuild
698 alias file if needed.
699confERROR_MODE (undefined) Oe Error message mode.
700confERROR_MESSAGE (undefined) OE Error message header/file.
701confSAVE_FROM_LINES False Of Save extra leading
702 From_ lines.
703confTEMP_FILE_MODE 0600 OF Temporary file mode.
704confDEF_GROUP_ID 1 Og Default group id.
705confMATCH_GECOS False OG Match GECOS field.
706confMAX_HOP 17 Oh Maximum hop count.
707confIGNORE_DOTS False Oi * Ignore dot as terminator
708 for incoming messages?
709confBIND_OPTS (empty) OI Default options for BIND.
710confMIME_FORMAT_ERRORS True Oj * Send error messages as MIME-
711 encapsulated messages per
712 RFC 1344.
713confMCI_CACHE_SIZE 2 Ok Size of open connection cache.
714confMCI_CACHE_TIMEOUT 5m OK Open connection cache timeout.
715confUSE_ERRORS_TO False Ol * Use the Errors-To: header to
716 deliver error messages. This
717 should not be necessary because
718 of general acceptance of the
719 envelope/header distinction.
720confLOG_LEVEL 9 OL Log level.
721confME_TOO False Om Include sender in group
722 expansions.
723confCHECK_ALIASES True On Check RHS of aliases when
724 running newaliases.
725confOLD_STYLE_HEADERS True Oo * Assume that headers without
726 special chars are old style.
727confDAEMON_OPTIONS (undefined) OO SMTP daemon options.
728confPRIVACY_FLAGS authwarnings Op Privacy flags.
729confCOPY_ERRORS_TO (undefined) OP Address for additional copies
730 of all error messages.
731confQUEUE_FACTOR (undefined) Oq Slope of queue-only function
732confREAD_TIMEOUT (undefined) Or SMTP read timeouts.
733confSAFE_QUEUE True Os * Commit all messages to disk
734 before forking.
735confMESSAGE_TIMEOUT 5d/4h OT Timeout for messages before
736 sending error/warning message.
737confTIME_ZONE USE_SYSTEM Ot Time zone info -- can be
738 USE_SYSTEM to use the system's
739 idea, USE_TZ to use the user's
740 TZ envariable, or something
741 else to force that value.
742confDEF_USER_ID 1 Ou Default user id.
743confUSERDB_SPEC (undefined) OU User database specification.
744confFALLBACK_MX (undefined) OV Fallback MX host.
745confQUEUE_LA 8 Ox Load average at which queue-only
746 function kicks in.
747confREFUSE_LA 12 OX Load average at which incoming
748 SMTP connections are refused.
749confWORK_RECIPIENT_FACTOR
750 (undefined) Oy Cost of each recipient.
751confSEPARATE_PROC False OY Run all deliveries in a
752 separate process.
753confWORK_CLASS_FACTOR (undefined) Oz Priority multiplier for class.
754confWORK_TIME_FACTOR (undefined) OZ Cost of each delivery attempt.
755confCW_FILE /etc/sendmail.cw Name of file used to get the
756 Fw local additions to the $=w
757 class.
758
759
760+-----------+
761| HIERARCHY |
762+-----------+
763
764Within this directory are several subdirectories, to wit:
765
766m4 General support routines. These are typically
767 very important and should not be changed without
768 very careful consideration.
769
770cf The configuration files themselves. They have
771 ".mc" suffixes, and must be run through m4 to
772 become complete. The resulting output should
773 have a ".cf" suffix.
774
775ostype Definitions describing a particular operating
776 system type. These should always be referenced
777 using the OSTYPE macro in the .mc file. Examples
778 include "bsd4.3", "bsd4.4", "sunos3.5", and
779 "sunos4.1".
780
781domain Definitions describing a particular domain, referenced
782 using the DOMAIN macro in the .mc file. These are
783 site dependent; for example, we contribute "cs.exposed.m4"
784 and "cs.hidden.m4" which both describe hosts in the
785 CS.Berkeley.EDU subdomain; the former displays the local
786 hostname (e.g., mammoth.CS.Berkeley.EDU), whereas the
787 latter does its best to hide the identity of the local
788 workstation inside the CS subdomain.
789
790mailer Descriptions of mailers. These are referenced using
791 the MAILER macro in the .mc file.
792
793sh Shell files used when building the .cf file from the
794 .mc file in the cf subdirectory.
795
796feature These hold special orthogonal features that you might
797 want to include. They should be referenced using
798 the FEATURE macro.
799
800hack Local hacks. These can be referenced using the HACK
801 macro. They shouldn't be of more than voyeuristic
802 interest outside the .Berkeley.EDU domain, but who knows?
803 We've all got our own peccadilloes.
804
805siteconfig Site configuration -- e.g., tables of locally connected
806 UUCP sites.
807
808
809+------------------------+
810| ADMINISTRATIVE DETAILS |
811+------------------------+
812
813The following sections detail usage of certain internal parts of the
814sendmail.cf file. Read them carefully if you are trying to modify
815the current model. If you find the above descriptions adequate, these
816should be {boring, confusing, tedious, ridiculous} (pick one or more).
817
818RULESETS (* means built in to sendmail)
819
820 0 * Parsing
821 1 * Sender rewriting
822 2 * Recipient rewriting
823 3 * Canonicalization
824 4 * Post cleanup
825 5 * Local address rewrite (after aliasing)
826 1x mailer rules (sender qualification)
827 2x mailer rules (recipient qualification)
828 90 Mailertable host stripping
829 96 Bottom half of Ruleset 3 (ruleset 6 in old sendmail)
830 97 Hook for recursive ruleset 0 call (ruleset 7 in old sendmail)
831
832
833MAILERS
834
835 0 local, prog local and program mailers
836 1 smtp SMTP channel
837 2 uucp UNIX-to-UNIX Copy Program
838 3 netnews Network News delivery
839 4 fax Sam Leffler's FlexFAX software
840
841
842MACROS
843
844 A
845 B Bitnet Relay
846 C CSNET Relay
847 D The local domain -- usually not needed
848 E
849 F FAX Relay
850 G
851 H mail Hub (for mail clusters)
852 I
853 J
854 K
855 L
856 M Masquerade (who I claim to be)
857 N
858 O
859 P
860 Q
861 R Relay (for unqualified names)
862 S Smart Host
863 T
864 U my UUCP name (if I have a UUCP connection)
865 V UUCP Relay (class V hosts)
866 W UUCP Relay (class W hosts)
867 X UUCP Relay (class X hosts)
868 Y UUCP Relay (all other hosts)
869 Z Version number
870
871
872CLASSES
873
874 A
875 B
876 C
877 D
878 E addresses that should not seem to come from $M
879 F hosts we forward for
880 G
881 H
882 I
883 J
884 K
885 L addresses that should not be forwarded to $R
886 M
887 N
888 O operators that indicate network operations (cannot be in local names)
889 P top level pseudo-domains: BITNET, FAX, UUCP, etc.
890 Q
891 R
892 S
893 T
894 U locally connected UUCP hosts
895 V UUCP hosts connected to relay $V
896 W UUCP hosts connected to relay $W
897 X UUCP hosts connected to relay $X
898 Y locally connected smart UUCP hosts
899 Z
900 . the class containing only a dot
901
902
903M4 DIVERSIONS
904
905 1 Local host detection and resolution
906 2 Local Ruleset 3 additions
907 3 Local Ruleset 0 additions
908 4 UUCP Ruleset 0 additions
909 5 locally interpreted names (overrides $R)
910 6 local configuration (at top of file)
911 7 mailer definitions
912 8 special local name recognition (late in ruleset 3)
913 9 special local rulesets (1 and 2)