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