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