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 | |
37498540 | 7 | @(#)README 8.59 (Berkeley) %G% |
7ace9d88 | 8 | |
7ace9d88 | 9 | |
4a51b074 | 10 | This document describes the sendmail configuration files being used |
f22970ed EA |
11 | at Berkeley. These use features in the new (R8) sendmail; they will |
12 | not work on other versions. | |
4a51b074 EA |
13 | |
14 | These configuration files are probably not as general as previous | |
6fb312a3 | 15 | versions, and don't handle as many of the weird cases automagically. |
4a51b074 EA |
16 | I was able to simplify by them for two reasons. First, the network |
17 | has become more consistent -- for example, at this point, everyone | |
18 | on the internet is supposed to be running a name server, so hacks to | |
19 | handle NIC-registered hosts can go away. Second, I assumed that a | |
20 | subdomain would be running SMTP internally -- UUCP is presumed to be | |
21 | a long-haul protocol. I realize that this is not universal, but it | |
22 | does describe the vast majority of sites with which I am familiar, | |
23 | including those outside the US. | |
24 | ||
6fb312a3 EA |
25 | Of course, the downside of this is that if you do live in a weird |
26 | world, things are going to get weirder for you. I'm sorry about that, | |
4a51b074 EA |
27 | but at the time we at Berkeley had a problem, and it seemed like the |
28 | right thing to do. | |
29 | ||
fd82c288 EA |
30 | This package requires a post-V7 version of m4; if you are running the |
31 | 4.2bsd, SysV.2, or 7th Edition version, I suggest finding a friend with | |
32 | a newer version. You can m4-expand on their system, then run locally. | |
a7e36c1b EA |
33 | SunOS's /usr/5bin/m4 or BSD-Net/2's m4 both work. GNU m4 version 1.1 |
34 | also works. Unfortunately, I'm told that the M4 on BSDI 1.0 doesn't | |
35 | work -- you'll have to use a Net/2 or GNU version. | |
7ace9d88 | 36 | |
a33031f5 | 37 | IF YOU DON'T HAVE A BERKELEY MAKE, don't despair! Just run |
445bdec1 EA |
38 | "m4 foo.mc > foo.cf" -- that should be all you need. There is also |
39 | a fairly crude (but functional) Makefile.dist that works on the | |
40 | old version of make. | |
a33031f5 EA |
41 | |
42 | To get started, you may want to look at tcpproto.mc (for TCP-only | |
f51c9ac8 EA |
43 | sites), uucpproto.mc (for UUCP-only sites), and clientproto.mc (for |
44 | clusters of clients using a single mail host). Others are versions | |
a33031f5 EA |
45 | that we use at Berkeley, although not all are in current use. For |
46 | example, ucbarpa has gone away, but I've left ucbarpa.mc in because | |
47 | it demonstrates some interesting techniques. | |
48 | ||
4a51b074 EA |
49 | I'm not pretending that this README describes everything that these |
50 | configuration files can do; clever people can probably tweak them | |
51 | to great effect. But it should get you started. | |
52 | ||
1b5c2cc9 EA |
53 | ******************************************************************* |
54 | *** BE SURE YOU CUSTOMIZE THESE FILES! They have some *** | |
55 | *** Berkeley-specific assumptions built in, such as the name *** | |
56 | *** of our UUCP-relay. You'll want to create your own domain *** | |
57 | *** description, and use that in place of domain/Berkeley.m4. *** | |
58 | ******************************************************************* | |
59 | ||
bee9d799 | 60 | |
4a51b074 EA |
61 | +--------------------------+ |
62 | | INTRODUCTION AND EXAMPLE | | |
63 | +--------------------------+ | |
64 | ||
65 | Configuration files are contained in the subdirectory "cf", with a | |
66 | suffix ".mc". They must be run through "m4" to produce a ".cf" file. | |
67 | ||
e9631f65 | 68 | Let's examine a typical .mc file (cf/cs-hpux9.mc): |
7ace9d88 EA |
69 | |
70 | divert(-1) | |
71 | # | |
72 | # Copyright (c) 1983 Eric P. Allman | |
e9631f65 EA |
73 | # Copyright (c) 1988, 1993 |
74 | # The Regents of the University of California. All rights reserved. | |
7ace9d88 | 75 | # |
e9631f65 EA |
76 | # Redistribution and use in source and binary forms, with or without |
77 | # modification, are permitted provided that the following conditions | |
78 | # are met: | |
79 | # 1. Redistributions of source code must retain the above copyright | |
80 | # notice, this list of conditions and the following disclaimer. | |
81 | # 2. Redistributions in binary form must reproduce the above copyright | |
82 | # notice, this list of conditions and the following disclaimer in | |
83 | # the documentation and/or other materials provided with the | |
84 | # distribution. | |
85 | # 3. All advertising materials mentioning features or use of this | |
86 | # software # must display the following acknowledgement: | |
87 | # This product includes software developed by the University of | |
88 | # California, Berkeley and its contributors. | |
89 | # 4. Neither the name of the University nor the names of its | |
90 | # contributors may be used to endorse or promote products derived | |
91 | # from this software without specific prior written permission. | |
92 | # | |
93 | # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' | |
94 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, | |
95 | # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
96 | # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS | |
97 | # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, | |
98 | # OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT | |
99 | # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR | |
100 | # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | |
101 | # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE | |
102 | # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, | |
103 | # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
104 | # | |
105 | ||
106 | # | |
107 | # This is a Berkeley-specific configuration file for HP-UX 9.x. | |
108 | # It applies only the the Computer Science Division at Berkeley, | |
109 | # and should not be used elsewhere. It is provided on the sendmail | |
110 | # distribution as a sample only. To create your own configuration | |
111 | # file, create an appropriate domain file in ../domain, change the | |
112 | # `DOMAIN' macro below to reference that file, and copy the result | |
113 | # to a name of your own choosing. | |
7ace9d88 EA |
114 | # |
115 | ||
4a51b074 | 116 | The divert(-1) will delete the crud in the resulting output file. |
e9631f65 EA |
117 | The copyright notice can be replace by whatever your lawyers require; |
118 | our lawyers require the one that I've included in my files. A copyleft | |
119 | is a copyright by another name. | |
4a51b074 EA |
120 | |
121 | The next line MUST be | |
7ace9d88 EA |
122 | |
123 | include(`../m4/cf.m4') | |
124 | ||
4a51b074 EA |
125 | This will pull in the M4 macros you will need to make sense of |
126 | everything else. As the saying goes, don't think about it, just | |
127 | do it. If you don't do it, don't bother reading the rest of this | |
128 | file. | |
7ace9d88 | 129 | |
8897fcb1 | 130 | VERSIONID(`<SCCS or RCS version id>') |
7ace9d88 EA |
131 | |
132 | VERSIONID is a macro that stuffs the version information into the | |
133 | resulting file. We use SCCS; you could use RCS, something else, or | |
4a51b074 EA |
134 | omit it completely. This is not the same as the version id included |
135 | in SMTP greeting messages -- this is defined in m4/version.m4. | |
7ace9d88 | 136 | |
e9631f65 EA |
137 | OSTYPE(hpux9)dnl |
138 | ||
139 | You must specify an OSTYPE to properly configure things such as the | |
140 | pathname of the help and status files, the flags needed for the local | |
141 | mailer, and other important things. If you omit it, you will get an | |
142 | error when you try to build the configuration. Look at the ostype | |
143 | directory for the list of known operating system types. | |
144 | ||
145 | DOMAIN(CS.Berkeley.EDU)dnl | |
7ace9d88 | 146 | |
e9631f65 EA |
147 | This example is specific to the Computer Science Division at Berkeley. |
148 | You can use "DOMAIN(generic)" to get a sufficiently bland definition | |
149 | that may well work for you, or you can create a customized domain | |
150 | definition appropriate for your environment. | |
7ace9d88 | 151 | |
e9631f65 | 152 | MAILER(local) |
9df1b56b | 153 | MAILER(smtp) |
7ace9d88 | 154 | |
c573210d EA |
155 | These describe the mailers used at the default CS site site. The |
156 | local mailer is always included automatically. | |
7ace9d88 | 157 | |
bee9d799 | 158 | |
4a51b074 EA |
159 | +--------+ |
160 | | OSTYPE | | |
161 | +--------+ | |
162 | ||
e9631f65 EA |
163 | You MUST define an operating system environment, or the configuration |
164 | file build will puke. There are several environments available; look | |
165 | at the "ostype" directory for the current list. This macro changes | |
166 | things like the location of the alias file and queue directory. Some | |
167 | of these files are identical to one another. | |
4a51b074 | 168 | |
e9631f65 EA |
169 | Operating system definitions are usually easy to write. They may define |
170 | the following variables (everything defaults, so an ostype file may be | |
171 | empty). Unfortunately, the list of configuration-supported systems is | |
172 | not as broad as the list of source-supported systems, since many of | |
173 | the source contributors do not include corresponding ostype files. | |
4a51b074 EA |
174 | |
175 | ALIAS_FILE [/etc/aliases] The location of the text version | |
00d0b5bf | 176 | of the alias file(s). It can be a comma-separated |
7b97409d | 177 | list of names (but be sure you quote values with |
e4c0b131 | 178 | commas in them -- for example, use |
7b97409d EA |
179 | define(`ALIAS_FILE', `a,b') |
180 | to get "a" and "b" both listed as alias files; | |
181 | otherwise the define() primitive only sees "a"). | |
4a51b074 EA |
182 | HELP_FILE [/usr/lib/sendmail.hf] The name of the file |
183 | containing information printed in response to | |
184 | the SMTP HELP command. | |
4a51b074 EA |
185 | QUEUE_DIR [/var/spool/mqueue] The directory containing |
186 | queue files. | |
187 | STATUS_FILE [/etc/sendmail.st] The file containing status | |
188 | information. | |
bee9d799 | 189 | LOCAL_MAILER_PATH [/bin/mail] The program used to deliver local mail. |
2e9b6f6e EA |
190 | LOCAL_MAILER_FLAGS [rmn] The flags used by the local mailer. The |
191 | flags lsDFM are always included. | |
d8b2ad36 EA |
192 | LOCAL_MAILER_ARGS [mail -d $u] The arguments passed to deliver local |
193 | mail. | |
3d26fbcb EA |
194 | LOCAL_MAILER_MAX [undefined] If defined, the maximum size of local |
195 | mail that you are willing to accept. | |
51851acc EA |
196 | LOCAL_MAILER_CHARSET [undefined] If defined, messages containing 8-bit data |
197 | that ARRIVE from an address that resolves to the | |
198 | local mailer and which are converted to MIME will be | |
199 | labelled with this character set. | |
bee9d799 | 200 | LOCAL_SHELL_PATH [/bin/sh] The shell used to deliver piped email. |
1c61e291 EA |
201 | LOCAL_SHELL_FLAGS [eu] The flags used by the shell mailer. The |
202 | flags lsDFM are always included. | |
203 | LOCAL_SHELL_ARGS [sh -c $u] The arguments passed to deliver "prog" | |
204 | mail. | |
d015fbfb EA |
205 | LOCAL_SHELL_DIR [$z:/] The directory search path in which the |
206 | shell should run. | |
bee9d799 EA |
207 | USENET_MAILER_PATH [/usr/lib/news/inews] The name of the program |
208 | used to submit news. | |
209 | USENET_MAILER_FLAGS [rlsDFMmn] The mailer flags for the usenet mailer. | |
210 | USENET_MAILER_ARGS [-m -h -n] The command line arguments for the | |
211 | usenet mailer. | |
4e444ec8 EA |
212 | USENET_MAILER_MAX [100000] The maximum size of messages that will |
213 | be accepted by the usenet mailer. | |
5dd53c38 | 214 | SMTP_MAILER_FLAGS [undefined] Flags added to SMTP mailer. Default |
b0abd8b1 EA |
215 | flags are `mDFMUX' for all SMTP-based mailers; the |
216 | "esmtp" mailer adds `a' and "smtp8" adds `8'. | |
4e444ec8 | 217 | SMTP_MAILER_MAX [undefined] The maximum size of messages that will |
b0abd8b1 EA |
218 | be transported using the smtp, smtp8, or esmtp |
219 | mailers. | |
220 | SMTP_MAILER_ARGS [IPC $h] The arguments passed to the smtp mailer. | |
221 | About the only reason you would want to change this | |
222 | would be to change the default port. | |
223 | ESMTP_MAILER_ARGS [IPC $h] The arguments passed to the esmtp mailer. | |
224 | SMTP8_MAILER_ARGS [IPC $h] The arguments passed to the smtp8 mailer. | |
225 | RELAY_MAILER_ARGS [IPC $h] The arguments passed to the relay mailer. | |
51851acc EA |
226 | SMTP_MAILER_CHARSET [undefined] If defined, messages containing 8-bit data |
227 | that ARRIVE from an address that resolves to one of | |
228 | the SMTP mailers and which are converted to MIME will | |
229 | be labelled with this character set. | |
5dd53c38 | 230 | UUCP_MAILER_FLAGS [undefined] Flags added to UUCP mailer. Default |
4753516a EA |
231 | flags are `DFMhuU' (and `m' for uucp-new mailer, |
232 | minus `U' for uucp-dom mailer). | |
baf83fd6 | 233 | UUCP_MAILER_ARGS [uux - -r -z -a$g -gC $h!rmail ($u)] The arguments |
d8b2ad36 | 234 | passed to the UUCP mailer. |
51851acc | 235 | UUCP_MAILER_MAX [100000] The maximum size message accepted for |
1c61e291 | 236 | transmission by the UUCP mailers. |
51851acc EA |
237 | UUCP_MAILER_CHARSET [undefined] If defined, messages containing 8-bit data |
238 | that ARRIVE from an address that resolves to one of | |
239 | the UUCP mailers and which are converted to MIME will | |
240 | be labelled with this character set. | |
4e444ec8 EA |
241 | FAX_MAILER_PATH [/usr/local/lib/fax/mailfax] The program used to |
242 | submit FAX messages. | |
243 | FAX_MAILER_MAX [100000] The maximum size message accepted for | |
244 | transmission by FAX. | |
edae2ee6 EA |
245 | POP_MAILER_PATH [/usr/lib/mh/spop] The pathname of the POP mailer. |
246 | POP_MAILER_FLAGS [Penu] Flags added to POP mailer. Flags "lsDFM" | |
247 | are always added. | |
248 | POP_MAILER_ARGS [pop $u] The arguments passed to the POP mailer. | |
69982d42 EA |
249 | PROCMAIL_MAILER_FLAGS [Shu] Flags added to Procmail mailer. Flags |
250 | ``DFMmn'' are always set. | |
251 | PROCMAIL_MAILER_ARGS [procmail -m $h $f $u] The arguments passed to | |
252 | the Procmail mailer. | |
3d26fbcb EA |
253 | PROCMAIL_MAILER_MAX [undefined] If set, the maximum size message that |
254 | will be accepted by the procmail mailer. | |
37498540 EA |
255 | MAIL11_MAILER_PATH [/usr/etc/mail11] The path to the mail11 mailer. |
256 | MAIL11_MAILER_FLAGS [nsFx] Flags for the mail11 mailer. | |
257 | MAIL11_MAILER_ARGS [mail11 $g $x $h $u] Arguments passed to the mail11 | |
258 | mailer. | |
4a51b074 | 259 | |
4a51b074 EA |
260 | +---------+ |
261 | | DOMAINS | | |
262 | +---------+ | |
263 | ||
264 | You will probably want to collect domain-dependent defines into one | |
265 | file, referenced by the DOMAIN macro. For example, our Berkeley | |
266 | domain file includes definitions for several internal distinguished | |
267 | hosts: | |
268 | ||
848a0a1f | 269 | UUCP_RELAY The host that will accept UUCP-addressed email. |
4a51b074 | 270 | If not defined, all UUCP sites must be directly |
bb3c21c3 | 271 | connected. |
848a0a1f | 272 | BITNET_RELAY The host that will accept BITNET-addressed email. |
4a51b074 | 273 | If not defined, the .BITNET pseudo-domain won't work. |
848a0a1f EA |
274 | DECNET_RELAY The host that will accept DECNET-addressed email. |
275 | If not defined, the .DECNET pseudo-domain and addresses | |
276 | of the form node::user will not work. | |
277 | FAX_RELAY The host that will accept mail to the .FAX pseudo-domain. | |
278 | The "fax" mailer overrides this value. | |
f0a4cb9c EA |
279 | LOCAL_RELAY DEPRECATED. The site that will handle unqualified |
280 | names -- that is, names with out an @domain extension. | |
281 | If not set, they are assumed to belong on this machine. | |
282 | This allows you to have a central site to store a | |
4a51b074 | 283 | company- or department-wide alias database. This |
f0a4cb9c EA |
284 | only works at small sites, and only with some user |
285 | agents. | |
b0abd8b1 EA |
286 | LUSER_RELAY The site that will handle lusers -- that is, apparently |
287 | local names that aren't local accounts or aliases. | |
bb3c21c3 | 288 | |
b0abd8b1 | 289 | Any of these can be either ``mailer:hostname'' (in which case the |
4753516a | 290 | mailer is the internal mailer name, such as ``uucp-new'' and the hostname |
bb3c21c3 EA |
291 | is the name of the host as appropriate for that mailer) or just a |
292 | ``hostname'', in which case a default mailer type (usually ``relay'', | |
2e9b6f6e EA |
293 | a variant on SMTP) is used. WARNING: if you have a wildcard MX |
294 | record matching your domain, you probably want to define these to | |
295 | have a trailing dot so that you won't get the mail diverted back | |
296 | to yourself. | |
4a51b074 EA |
297 | |
298 | The domain file can also be used to define a domain name, if needed | |
6f02ae2f EA |
299 | (using "DD<domain>") and set certain site-wide features. If all hosts |
300 | at your site masquerade behind one email name, you could also use | |
301 | MASQUERADE_AS here. | |
4a51b074 | 302 | |
dec2b686 EA |
303 | You do not have to define a domain -- in particular, if you are a |
304 | single machine sitting off somewhere, it is probably more work than | |
305 | it's worth. This is just a mechanism for combining "domain dependent | |
306 | knowledge" into one place. | |
307 | ||
4a51b074 EA |
308 | +---------+ |
309 | | MAILERS | | |
310 | +---------+ | |
7ace9d88 EA |
311 | |
312 | There are fewer mailers supported in this version than the previous | |
313 | version, owing mostly to a simpler world. | |
314 | ||
315 | local The local and prog mailers. You will almost always | |
316 | need these; the only exception is if you relay ALL | |
fd82c288 EA |
317 | your mail to another site. This mailer is included |
318 | automatically. | |
7ace9d88 EA |
319 | |
320 | smtp The Simple Mail Transport Protocol mailer. This does | |
321 | not hide hosts behind a gateway or another other | |
322 | such hack; it assumes a world where everyone is | |
d8b2ad36 | 323 | running the name server. This file actually defines |
b0abd8b1 | 324 | four mailers: "smtp" for regular (old-style) SMTP to |
d8b2ad36 | 325 | other servers, "esmtp" for extended SMTP to other |
b0abd8b1 EA |
326 | servers, "smtp8" to do SMTP to other servers without |
327 | converting 8-bit data to MIME (essentially, this is | |
328 | your statement that you know the other end is 8-bit | |
329 | clean even if it doesn't say so), and "relay" for | |
330 | transmission to our RELAY_HOST, LUSER_RELAY, or | |
331 | MAILER_HUB. | |
7ace9d88 EA |
332 | |
333 | uucp The Unix-to-Unix Copy Program mailer. Actually, this | |
41187805 EA |
334 | defines two mailers, "uucp-old" (a.k.a. "uucp") and |
335 | "uucp-new" (a.k.a. "suucp"). The latter is for when you | |
336 | know that the UUCP mailer at the other end can handle | |
337 | multiple recipients in one transfer. If the smtp mailer | |
338 | is also included in your configuration, two other mailers | |
4753516a EA |
339 | ("uucp-dom" and "uucp-uudom") are also defined [warning: |
340 | you MUST specify MAILER(smtp) before MAILER(uucp)]. When you | |
41187805 | 341 | include the uucp mailer, sendmail looks for all names in |
2a20bc94 EA |
342 | the $=U class and sends them to the uucp-old mailer; all |
343 | names in the $=Y class are sent to uucp-new; and all | |
344 | names in the $=Z class are sent to uucp-uudom. Note that | |
4a51b074 EA |
345 | this is a function of what version of rmail runs on |
346 | the receiving end, and hence may be out of your control. | |
2a20bc94 EA |
347 | See the section below describing UUCP mailers in more |
348 | detail. | |
4a51b074 | 349 | |
bee9d799 EA |
350 | usenet Usenet (network news) delivery. If this is specified, |
351 | an extra rule is added to ruleset 0 that forwards all | |
352 | local email for users named ``group.usenet'' to the | |
353 | ``inews'' program. Note that this works for all groups, | |
354 | and may be considered a security problem. | |
355 | ||
63013ec3 EA |
356 | fax Facsimile transmission. This is experimental and based |
357 | on Sam Leffler's FlexFAX software. For more information, | |
358 | see below. | |
359 | ||
418602bc EA |
360 | pop Post Office Protocol. |
361 | ||
69982d42 EA |
362 | procmail An interface to procmail (does not come with sendmail). |
363 | This is designed to be used in mailertables. For example, | |
364 | a common question is "how do I forward all mail for a given | |
365 | domain to a single person?". If you have this mailer | |
366 | defined, you could set up a mailertable reading: | |
367 | ||
368 | host.com procmail:/etc/procmailrcs/host.com | |
369 | ||
370 | with the file /etc/procmailrcs/host.com reading: | |
371 | ||
372 | :0 # forward mail for host.com | |
373 | ! -oi -f $1 person@other.host | |
374 | ||
375 | This would arrange for (anything)@host.com to be sent | |
376 | to person@other.host. Within the procmail script, $1 is | |
377 | the name of the sender and $2 is the name of the recipient. | |
378 | If you use this with FEATURE(local_procmail), the FEATURE | |
379 | should be listed first. | |
380 | ||
37498540 EA |
381 | mail11 The DECnet mail11 mailer, useful only if you have the mail11 |
382 | program from gatekeeper.dec.com:/pub/DEC/gwtools (and | |
383 | DECnet, of course). | |
384 | ||
1d64a22c EA |
385 | The local mailer accepts addresses of the form "user+detail", where |
386 | the "+detail" is not used for mailbox matching but is available | |
69982d42 | 387 | to certain local mail programs (in particular, see FEATURE(local_procmail)). |
1d64a22c EA |
388 | For example, "eric", "eric+sendmail", and "eric+sww" all indicate |
389 | the same user, but additional arguments <null>, "sendmail", and "sww" | |
390 | may be provided for use in sorting mail. | |
391 | ||
bee9d799 | 392 | |
4a51b074 EA |
393 | +----------+ |
394 | | FEATURES | | |
395 | +----------+ | |
396 | ||
397 | Special features can be requested using the "FEATURE" macro. For | |
398 | example, the .mc line: | |
399 | ||
400 | FEATURE(use_cw_file) | |
401 | ||
402 | tells sendmail that you want to have it read an /etc/sendmail.cw | |
3ad658d7 EA |
403 | file to get values for class $=w. The FEATURE may contain a single |
404 | optional parameter -- for example: | |
405 | ||
406 | FEATURE(mailertable, dbm /usr/lib/mailertable) | |
407 | ||
408 | Available features are: | |
4a51b074 EA |
409 | |
410 | use_cw_file Read the file /etc/sendmail.cw file to get alternate | |
411 | names for this host. This might be used if you were | |
412 | on a host that MXed for a dynamic set of other | |
413 | hosts. If the set is static, just including the line | |
414 | "Cw<name1> <name2> ..." is probably superior. | |
dec2b686 EA |
415 | The actual filename can be overridden by redefining |
416 | confCW_FILE. | |
f51c9ac8 | 417 | |
bee9d799 EA |
418 | redirect Reject all mail addressed to "address.REDIRECT" with |
419 | a ``551 User not local; please try <address>'' message. | |
420 | If this is set, you can alias people who have left | |
421 | to their new address with ".REDIRECT" appended. | |
f51c9ac8 | 422 | |
a33031f5 | 423 | nouucp Don't do anything special with UUCP addresses at all. |
f51c9ac8 | 424 | |
928fba03 EA |
425 | nocanonify Don't pass addresses to $[ ... $] for canonification. |
426 | This would generally only be used by sites that only | |
427 | act as mail gateways or which have user agents that do | |
bb3c21c3 EA |
428 | full canonification themselves. You may also want to |
429 | use "define(`confBIND_OPTS',`-DNSRCH -DEFNAMES')" to | |
430 | turn off the usual resolver options that do a similar | |
431 | thing. | |
f51c9ac8 | 432 | |
65739042 | 433 | stickyhost If set, email sent to "user@local.host" are marked |
da99e870 EA |
434 | as "sticky" -- that is, the local addresses aren't |
435 | matched against UDB and don't go through ruleset 5. | |
b0abd8b1 EA |
436 | This is used if you want a set up where "user" is |
437 | not necessarily the same as "user@local.host", e.g., | |
438 | to make a distinct domain-wide namespace. Prior to | |
439 | 8.7 this was the default, and notsticky was used to | |
440 | turn this off. | |
f51c9ac8 | 441 | |
3ad658d7 EA |
442 | mailertable Include a "mailer table" which can be used to override |
443 | routing for particular domains. The argument of the | |
444 | FEATURE may be the key definition. If none is specified, | |
445 | the definition used is: | |
6e8cccfc | 446 | hash -o /etc/mailertable |
d8b2ad36 EA |
447 | Keys in this database are fully qualified domain names |
448 | or partial domains preceded by a dot -- for example, | |
449 | "vangogh.CS.Berkeley.EDU" or ".CS.Berkeley.EDU". | |
450 | Values must be of the form: | |
3ad658d7 | 451 | mailer:domain |
d8b2ad36 EA |
452 | where "mailer" is the internal mailer name, and "domain" |
453 | is where to send the message. These maps are not | |
454 | reflected into the message header. | |
f51c9ac8 | 455 | |
d8b2ad36 | 456 | domaintable Include a "domain table" which can be used to provide |
e92659a8 EA |
457 | domain name mapping. Use of this should really be |
458 | limited to your own domains. It may be useful if you | |
459 | change names (e.g., your company changes names from | |
460 | oldname.com to newname.com). The argument of the | |
461 | FEATURE may be the key definition. If none is specified, | |
462 | the definition used is: | |
6e8cccfc | 463 | hash -o /etc/domaintable |
e92659a8 EA |
464 | The key in this table is the domain name; the value is |
465 | the new (fully qualified) domain. Anything in the | |
d8b2ad36 EA |
466 | domaintable is reflected into headers; that is, this |
467 | is done in ruleset 3. | |
f51c9ac8 | 468 | |
d1593b1a EA |
469 | bitdomain Look up bitnet hosts in a table to try to turn them into |
470 | internet addresses. The table can be built using the | |
2e9b6f6e | 471 | bitdomain program contributed by John Gardiner Myers. |
d1593b1a EA |
472 | The argument of the FEATURE may be the key definition; if |
473 | none is specified, the definition used is: | |
6e8cccfc | 474 | hash -o /etc/bitdomain.db |
d1593b1a EA |
475 | Keys are the bitnet hostname; values are the corresponding |
476 | internet hostname. | |
f51c9ac8 | 477 | |
4f1c78c0 EA |
478 | uucpdomain Similar feature for UUCP hosts. The default map definition |
479 | is: | |
6e8cccfc | 480 | hash -o /etc/uudomain.db |
4f1c78c0 EA |
481 | At the moment there is no automagic tool to build this |
482 | database. | |
f51c9ac8 | 483 | |
c62d746c EA |
484 | always_add_domain |
485 | Include the local host domain even on locally delivered | |
486 | mail. Normally it is not added unless it is already | |
487 | present. | |
f51c9ac8 | 488 | |
d8b2ad36 EA |
489 | allmasquerade If masquerading is enabled (using MASQUERADE_AS), this |
490 | feature will cause recipient addresses to also masquerade | |
491 | as being from the masquerade host. Normally they get | |
492 | the local hostname. Although this may be right for | |
493 | ordinary users, it can break local aliases. For example, | |
494 | if you send to "localalias", the originating sendmail will | |
495 | find that alias and send to all members, but send the | |
496 | message with "To: localalias@masqueradehost". Since that | |
497 | alias likely does not exist, replies will fail. Use this | |
498 | feature ONLY if you can guarantee that the ENTIRE | |
499 | namespace on your masquerade host supersets all the | |
500 | local entries. | |
f51c9ac8 | 501 | |
2e9b6f6e EA |
502 | nodns We aren't running DNS at our site (for example, |
503 | we are UUCP-only connected). It's hard to consider | |
504 | this a "feature", but hey, it had to go somewhere. | |
4a51b074 | 505 | |
f51c9ac8 EA |
506 | nullclient This is a special case -- it creates a stripped down |
507 | configuration file containing nothing but support for | |
de0c51e7 EA |
508 | forwarding all mail to a central hub via a local |
509 | SMTP-based network. The argument is the name of that | |
510 | hub. | |
511 | ||
512 | The only other feature that should be used in conjunction | |
513 | with this one is "nocanonify" (this causes addresses to | |
514 | be sent unqualified via the SMTP connection; normally | |
515 | they are qualifed with the masquerade name, which | |
516 | defaults to the name of the hub machine). No mailers | |
517 | should be defined. No aliasing or forwarding is done. | |
f51c9ac8 | 518 | |
69982d42 | 519 | local_procmail Use procmail as the local mailer. This mailer can |
1d64a22c EA |
520 | make use of the "user+indicator@local.host" syntax; |
521 | normally the +indicator is just tossed, but by default | |
522 | it is passed as the -a argument to procmail. The | |
523 | argument to this feature is the pathname of procmail, | |
524 | which defaults to /usr/local/bin/procmail. | |
525 | ||
df106895 EA |
526 | bestmx_is_local Accept mail as though locally addressed for any host that |
527 | lists us as the best possible MX record. This generates | |
528 | additional DNS traffic, but should be OK for low to | |
529 | medium traffic hosts. | |
530 | ||
11a3cb39 EA |
531 | smrsh Use the SendMail Restricted SHell (smrsh) provided |
532 | with the distribution instead of /bin/sh for mailing | |
533 | to programs. This improves the ability of the local | |
534 | system administrator to control what gets run via | |
535 | e-mail. If an argument is provided it is used as the | |
536 | pathname to smrsh; otherwise, /usr/local/etc/smrsh is | |
537 | assumed. | |
538 | ||
bee9d799 | 539 | |
4a51b074 EA |
540 | +-------+ |
541 | | HACKS | | |
542 | +-------+ | |
543 | ||
544 | Some things just can't be called features. To make this clear, | |
fd82c288 | 545 | they go in the hack subdirectory and are referenced using the HACK |
4a51b074 EA |
546 | macro. These will tend to be site-dependent. The release |
547 | includes the Berkeley-dependent "cssubdomain" hack (that makes | |
548 | sendmail accept local names in either Berkeley.EDU or CS.Berkeley.EDU; | |
549 | this is intended as a short-term aid while we move hosts into | |
550 | subdomains. | |
551 | ||
bee9d799 | 552 | |
4a51b074 EA |
553 | +--------------------+ |
554 | | SITE CONFIGURATION | | |
555 | +--------------------+ | |
556 | ||
baf83fd6 EA |
557 | ***************************************************** |
558 | * This section is really obsolete, and is preserved * | |
559 | * only for back compatibility. You should plan on * | |
560 | * using mailertables for new installations. In * | |
561 | * particular, it doesn't work for the newer forms * | |
562 | * of UUCP mailers, such as uucp-uudom. * | |
563 | ***************************************************** | |
564 | ||
4a51b074 EA |
565 | Complex sites will need more local configuration information, such as |
566 | lists of UUCP hosts they speak with directly. This can get a bit more | |
567 | tricky. For an example of a "complex" site, see cf/ucbvax.mc. | |
568 | ||
c833924a EA |
569 | If your host is known by several different names, you need to augment |
570 | the $=w class. This is a list of names by which you are known, and | |
571 | anything sent to an address using a host name in this list will be | |
572 | treated as local mail. You can do this in two ways: either create | |
573 | the file /etc/sendmail.cw containing a list of your aliases (one per | |
574 | line), and use ``FEATURE(use_cw_file)'' in the .mc file, or add the | |
575 | line: | |
576 | ||
577 | Cw alias.host.name | |
578 | ||
579 | at the end of that file. See the ``vangogh.mc'' file for an example. | |
580 | Be sure you use the fully-qualified name of the host, rather than a | |
581 | short name. | |
582 | ||
4a51b074 EA |
583 | The SITECONFIG macro allows you to indirectly reference site-dependent |
584 | configuration information stored in the siteconfig subdirectory. For | |
585 | example, the line | |
586 | ||
587 | SITECONFIG(uucp.ucbvax, ucbvax, U) | |
588 | ||
589 | reads the file uucp.ucbvax for local connection information. The | |
590 | second parameter is the local name (in this case just "ucbvax" since | |
c833924a EA |
591 | it is locally connected, and hence a UUCP hostname). The third |
592 | parameter is the name of both a macro to store the local name (in | |
593 | this case, $U) and the name of the class (e.g., $=U) in which to store | |
594 | the host information read from the file. Another SITECONFIG line reads | |
4a51b074 EA |
595 | |
596 | SITECONFIG(uucp.ucbarpa, ucbarpa.Berkeley.EDU, W) | |
597 | ||
598 | This says that the file uucp.ucbarpa contains the list of UUCP sites | |
599 | connected to ucbarpa.Berkeley.EDU. The $=W class will be used to | |
c833924a EA |
600 | store this list, and $W is defined to be ucbarpa.Berkeley.EDU, that |
601 | is, the name of the relay to which the hosts listed in uucp.ucbarpa | |
602 | are connected. [The machine ucbarpa is gone now, but I've left | |
4a51b074 EA |
603 | this out-of-date configuration file around to demonstrate how you |
604 | might do this.] | |
605 | ||
c833924a EA |
606 | Note that the case of SITECONFIG with a third parameter of ``U'' is |
607 | special; the second parameter is assumed to be the UUCP name of the | |
608 | local site, rather than the name of a remote site, and the UUCP name | |
609 | is entered into $=w (the list of local hostnames) as $U.UUCP. | |
610 | ||
4a51b074 EA |
611 | The siteconfig file (e.g., siteconfig/uucp.ucbvax.m4) contains nothing |
612 | more than a sequence of SITE macros describing connectivity. For | |
613 | example: | |
614 | ||
615 | SITE(cnmat) | |
616 | SITE(sgi olympus) | |
617 | ||
618 | The second example demonstrates that you can use two names on the | |
619 | same line; these are usually aliases for the same host (or are at | |
620 | least in the same company). | |
621 | ||
bee9d799 | 622 | |
2a20bc94 EA |
623 | +--------------------+ |
624 | | USING UUCP MAILERS | | |
625 | +--------------------+ | |
626 | ||
627 | It's hard to get UUCP mailers right because of the extremely ad hoc | |
628 | nature of UUCP addressing. These config files are really designed | |
629 | for domain-based addressing, even for UUCP sites. | |
630 | ||
631 | There are four UUCP mailers available. The choice of which one to | |
632 | use is partly a matter of local preferences and what is running at | |
633 | the other end of your UUCP connection. Unlike good protocols that | |
634 | define what will go over the wire, UUCP uses the policy that you | |
635 | should do what is right for the other end; if they change, you have | |
636 | to change. This makes it hard to do the right thing, and discourages | |
637 | people from updating their software. In general, if you can avoid | |
638 | UUCP, please do. | |
639 | ||
640 | The major choice is whether to go for a domainized scheme or a | |
641 | non-domainized scheme. This depends entirely on what the other | |
642 | end will recognize. If at all possible, you should encourage the | |
643 | other end to go to a domain-based system -- non-domainized addresses | |
644 | don't work entirely properly. | |
645 | ||
646 | The four mailers are: | |
647 | ||
648 | uucp-old (obsolete name: "uucp") | |
649 | This is the oldest, the worst (but the closest to UUCP) way of | |
650 | sending messages accros UUCP connections. It does bangify | |
651 | everything and prepends $U (your UUCP name) to the sender's | |
652 | address (which can already be a bang path itself). It can | |
653 | only send to one address at a time, so it spends a lot of | |
654 | time copying duplicates of messages. Avoid this if at all | |
655 | possible. | |
656 | ||
657 | uucp-new (obsolete name: "suucp") | |
658 | The same as above, except that it assumes that in one rmail | |
659 | command you can specify several recipients. It still has a | |
660 | lot of other problems. | |
661 | ||
662 | uucp-dom | |
663 | This UUCP mailer keeps everything as domain addresses. | |
41187805 EA |
664 | Basically, it uses the SMTP mailer rewriting rules. This mailer |
665 | is only included if MAILER(smtp) is also specified. | |
2a20bc94 EA |
666 | |
667 | Unfortunately, a lot of UUCP mailer transport agents require | |
668 | bangified addresses in the envelope, although you can use | |
669 | domain-based addresses in the message header. (The envelope | |
670 | shows up as the From_ line on UNIX mail.) So.... | |
671 | ||
672 | uucp-uudom | |
673 | This is a cross between uucp-new (for the envelope addresses) | |
674 | and uucp-dom (for the header addresses). It bangifies the | |
675 | envelope sender (From_ line in messages) without adding the | |
676 | local hostname, unless there is no host name on the address | |
677 | at all (e.g., "wolf") or the host component is a UUCP host name | |
678 | instead of a domain name ("somehost!wolf" instead of | |
41187805 EA |
679 | "some.dom.ain!wolf"). This is also included only if MAILER(smtp) |
680 | is also specified. | |
2a20bc94 EA |
681 | |
682 | Examples: | |
683 | ||
684 | We are on host grasp.insa-lyon.fr (UUCP host name "grasp"). The | |
685 | following summarizes the sender rewriting for various mailers. | |
686 | ||
687 | Mailer sender rewriting in the envelope | |
688 | ------ ------ ------------------------- | |
689 | uucp-{old,new} wolf grasp!wolf | |
690 | uucp-dom wolf wolf@grasp.insa-lyon.fr | |
691 | uucp-uudom wolf grasp.insa-lyon.fr!wolf | |
692 | ||
693 | uucp-{old,new} wolf@fr.net grasp!fr.net!wolf | |
694 | uucp-dom wolf@fr.net wolf@fr.net | |
695 | uucp-uudom wolf@fr.net fr.net!wolf | |
696 | ||
697 | uucp-{old,new} somehost!wolf grasp!somehost!wolf | |
698 | uucp-dom somehost!wolf somehost!wolf@grasp.insa-lyon.fr | |
699 | uucp-uudom somehost!wolf grasp.insa-lyon.fr!somehost!wolf | |
700 | ||
701 | If you are using one of the domainized UUCP mailers, you really want | |
702 | to convert all UUCP addresses to domain format -- otherwise, it will | |
703 | do it for you (and probably not the way you expected). For example, | |
704 | if you have the address foo!bar!baz (and you are not sending to foo), | |
705 | the heuristics will add the @uucp.relay.name or @local.host.name to | |
706 | this address. However, if you map foo to foo.host.name first, it | |
707 | will not add the local hostname. You can do this using the uucpdomain | |
708 | feature. | |
709 | ||
710 | ||
4a51b074 EA |
711 | +-------------------+ |
712 | | TWEAKING RULESETS | | |
713 | +-------------------+ | |
9df1b56b EA |
714 | |
715 | For more complex configurations, you can define special rules. | |
716 | The macro LOCAL_RULE_3 introduces rules that are used in canonicalizing | |
717 | the names. Any modifications made here are reflected in the header. | |
718 | ||
719 | A common use is to convert old UUCP addreses to SMTP addresses using | |
720 | the UUCPSMTP macro. For example: | |
721 | ||
722 | LOCAL_RULE_3 | |
723 | UUCPSMTP(decvax, decvax.dec.com) | |
724 | UUCPSMTP(research, research.att.com) | |
725 | ||
726 | will cause addresses of the form "decvax!user" and "research!user" | |
727 | to be converted to "user@decvax.dec.com" and "user@research.att.com" | |
728 | respectively. | |
729 | ||
6fb312a3 | 730 | This could also be used to look up hosts in a database map: |
4a51b074 EA |
731 | |
732 | LOCAL_RULE_3 | |
733 | R$* < @ $+ > $* $: $1 < @ $(hostmap $2 $) > $3 | |
734 | ||
735 | This map would be defined in the LOCAL_CONFIG portion, as shown below. | |
736 | ||
9df1b56b EA |
737 | Similarly, LOCAL_RULE_0 can be used to introduce new parsing rules. |
738 | For example, new rules are needed to parse hostnames that you accept | |
c573210d EA |
739 | via MX records. For example, you might have: |
740 | ||
741 | LOCAL_RULE_0 | |
2c56efa0 | 742 | R$+ <@ host.dom.ain.> $#uucp $@ cnmat $: $1 < @ host.dom.ain.> |
c573210d EA |
743 | |
744 | You would use this if you had installed an MX record for cnmat.Berkeley.EDU | |
745 | pointing at this host; this rule catches the message and forwards it on | |
746 | using UUCP. | |
9df1b56b | 747 | |
06630be3 EA |
748 | You can also tweak rulesets 1 and 2 using LOCAL_RULE_1 and LOCAL_RULE_2. |
749 | These rulesets are normally empty. | |
750 | ||
4a51b074 EA |
751 | A similar macro is LOCAL_CONFIG. This introduces lines added after the |
752 | boilerplate option setting but before rulesets, and can be used to | |
a151c868 | 753 | declare local database maps or whatever. For example: |
4a51b074 EA |
754 | |
755 | LOCAL_CONFIG | |
756 | Khostmap hash /etc/hostmap.db | |
757 | Kyplocal nis -m hosts.byname | |
4a51b074 | 758 | |
bee9d799 | 759 | |
4a51b074 EA |
760 | +---------------------------+ |
761 | | MASQUERADING AND RELAYING | | |
762 | +---------------------------+ | |
763 | ||
764 | You can have your host masquerade as another using | |
765 | ||
766 | MASQUERADE_AS(host.domain) | |
9df1b56b | 767 | |
6fb312a3 | 768 | This causes outgoing SMTP mail to be labeled as coming from the |
4a51b074 | 769 | indicated domain, rather than $j. One normally masquerades as one |
6fb312a3 | 770 | of one's own subdomains (for example, it's unlikely that I would |
4a51b074 EA |
771 | choose to masquerade as an MIT site). |
772 | ||
2e9b6f6e EA |
773 | The masquerade name is not normally canonified, so it is important |
774 | that it be your One True Name, that is, fully qualified and not a | |
775 | CNAME. | |
776 | ||
4a51b074 EA |
777 | there are always users that need to be "exposed" -- that is, their |
778 | internal site name should be displayed instead of the masquerade name. | |
779 | Root is an example. You can add users to this list using | |
780 | ||
781 | EXPOSED_USER(usernames) | |
782 | ||
783 | This adds users to class E; you could also use something like | |
784 | ||
785 | FE/etc/sendmail.cE | |
786 | ||
787 | You can also arrange to relay all unqualified names (that is, names | |
788 | without @host) to a relay host. For example, if you have a central | |
789 | email server, you might relay to that host so that users don't have | |
790 | to have .forward files or aliases. You can do this using | |
791 | ||
28b51619 | 792 | define(`LOCAL_RELAY', mailer:hostname) |
4a51b074 | 793 | |
28b51619 EA |
794 | The ``mailer:'' can be omitted, in which case the mailer defaults to |
795 | "smtp". There are some user names that you don't want relayed, perhaps | |
796 | because of local aliases. A common example is root, which may be | |
797 | locally aliased. You can add entries to this list using | |
4a51b074 EA |
798 | |
799 | LOCAL_USER(usernames) | |
800 | ||
801 | This adds users to class L; you could also use something like | |
802 | ||
803 | FL/etc/sendmail.cL | |
804 | ||
2e9b6f6e EA |
805 | If you want all incoming mail sent to a centralized hub, as for a |
806 | shared /var/spool/mail scheme, use | |
34e49bd3 | 807 | |
28b51619 | 808 | define(`MAIL_HUB', mailer:hostname) |
34e49bd3 | 809 | |
28b51619 | 810 | Again, ``mailer:'' defaults to "smtp". If you define both LOCAL_RELAY |
f0a4cb9c EA |
811 | and MAIL_HUB _AND_ you have FEATURE(stickyhost), unqualified names will |
812 | be sent to the LOCAL_RELAY and other local names will be sent to MAIL_HUB. | |
813 | Names in $=L will be delivered locally, so you MUST have aliases or | |
814 | .forward files for them. | |
0ee1617f | 815 | |
f0a4cb9c EA |
816 | For example, if are on machine mastodon.CS.Berkeley.EDU and you have |
817 | FEATURE(stickyhost), the following combinations of settings will have the | |
818 | indicated effects: | |
34e49bd3 EA |
819 | |
820 | email sent to.... eric eric@mastodon.CS.Berkeley.EDU | |
821 | ||
822 | LOCAL_RELAY set to mail.CS.Berkeley.EDU (delivered locally) | |
f0a4cb9c | 823 | mail.CS.Berkeley.EDU (no local aliasing) (aliasing done) |
34e49bd3 EA |
824 | |
825 | MAIL_HUB set to mammoth.CS.Berkeley.EDU mammoth.CS.Berkeley.EDU | |
f0a4cb9c | 826 | mammoth.CS.Berkeley.EDU (aliasing done) (aliasing done) |
34e49bd3 EA |
827 | |
828 | Both LOCAL_RELAY and mail.CS.Berkeley.EDU mammoth.CS.Berkeley.EDU | |
f0a4cb9c EA |
829 | MAIL_HUB set as above (no local aliasing) (aliasing done) |
830 | ||
831 | If you do not have FEATURE(stickyhost) set, then LOCAL_RELAY and | |
832 | MAIL_HUB act identically, with MAIL_HUB taking precedence. | |
34e49bd3 | 833 | |
2e9b6f6e EA |
834 | If you want all outgoing mail to go to a central relay site, define |
835 | SMART_HOST as well. Briefly: | |
836 | ||
837 | LOCAL_RELAY applies to unqualifed names (e.g., "eric"). | |
838 | MAIL_HUB applies to names qualified with the name of the | |
839 | local host (e.g., "eric@mastodon.CS.Berkeley.EDU"). | |
840 | SMART_HOST applies to names qualified with other hosts. | |
841 | ||
848a0a1f EA |
842 | However, beware that other relays (e.g., UUCP_RELAY, BITNET_RELAY, |
843 | DECNET_RELAY, and FAX_RELAY) take precedence over SMART_HOST, so if you | |
844 | really want absolutely everything to go to a single central site you will | |
845 | need to unset all the other relays -- or better yet, find or build a | |
846 | minimal config file that does this. | |
2e9b6f6e | 847 | |
28b51619 EA |
848 | |
849 | +-------------------------------+ | |
850 | | NON-SMTP BASED CONFIGURATIONS | | |
851 | +-------------------------------+ | |
852 | ||
853 | These configuration files are designed primarily for use by SMTP-based | |
854 | sites. I don't pretend that they are well tuned for UUCP-only or | |
855 | UUCP-primarily nodes (the latter is defined as a small local net | |
856 | connected to the rest of the world via UUCP). However, there is one | |
857 | hook to handle some special cases. | |
858 | ||
859 | You can define a ``smart host'' that understands a richer address syntax | |
860 | using: | |
861 | ||
862 | define(`SMART_HOST', mailer:hostname) | |
863 | ||
bb3c21c3 | 864 | In this case, the ``mailer:'' defaults to "relay". Any messages that |
28b51619 EA |
865 | can't be handled using the usual UUCP rules are passed to this host. |
866 | ||
867 | If you are on a local SMTP-based net that connects to the outside | |
868 | world via UUCP, you can use LOCAL_NET_CONFIG to add appropriate rules. | |
869 | For example: | |
870 | ||
871 | define(`SMART_HOST', suucp:uunet) | |
872 | LOCAL_NET_CONFIG | |
d8b2ad36 | 873 | R$* < @ $* .$m. > $* $#smtp $@ $2.$m. $: $1 < @ $2.$m. > $3 |
28b51619 EA |
874 | |
875 | This will cause all names that end in your domain name ($m) via | |
876 | SMTP; anything else will be sent via suucp (smart UUCP) to uunet. | |
d8b2ad36 EA |
877 | If you have FEATURE(nocanonify), you may need to omit the dots after |
878 | the $m. If you are running a local DNS inside your domain which is | |
879 | not otherwise connected to the outside world, you probably want to | |
880 | use: | |
881 | ||
882 | define(`SMART_HOST', smtp:fire.wall.com) | |
883 | LOCAL_NET_CONFIG | |
884 | R$* < @ $* . > $* $#smtp $@ $2. $: $1 < @ $2. > $3 | |
885 | ||
886 | That is, send directly only to things you found in your DNS lookup; | |
887 | anything else goes through SMART_HOST. | |
28b51619 | 888 | |
2e9b6f6e EA |
889 | If you are not running DNS at all, it is important to use |
890 | FEATURE(nodns) to avoid having sendmail queue everything waiting | |
891 | for the name server to come up. | |
892 | ||
28b51619 | 893 | |
f7e8be31 EA |
894 | +-----------+ |
895 | | WHO AM I? | | |
896 | +-----------+ | |
897 | ||
898 | Normally, the $j macro is automatically defined to be your fully | |
899 | qualified domain name (FQDN). Sendmail does this by getting your | |
900 | host name using gethostname and then calling gethostbyname on the | |
901 | result. For example, in some environments gethostname returns | |
902 | only the root of the host name (such as "foo"); gethostbyname is | |
903 | supposed to return the FQDN ("foo.bar.com"). In some (fairly rare) | |
904 | cases, gethostbyname may fail to return the FQDN. In this case | |
905 | you MUST define confDOMAIN_NAME to be your fully qualified domain | |
906 | name. This is usually done using: | |
907 | ||
908 | Dmbar.com | |
909 | define(`confDOMAIN_NAME', `$w.$m')dnl | |
910 | ||
911 | ||
bb3c21c3 EA |
912 | +--------------------+ |
913 | | USING MAILERTABLES | | |
914 | +--------------------+ | |
915 | ||
916 | To use FEATURE(mailertable), you will have to create an external | |
917 | database containing the routing information for various domains. | |
918 | For example, a mailertable file in text format might be: | |
919 | ||
920 | .my.domain xnet:%1.my.domain | |
921 | uuhost1.my.domain suucp:uuhost1 | |
922 | .bitnet smtp:relay.bit.net | |
923 | ||
924 | This should normally be stored in /etc/mailertable. The actual | |
925 | database version of the mailertable is built using: | |
926 | ||
927 | makemap hash /etc/mailertable.db < /etc/mailertable | |
928 | ||
929 | The semantics are simple. Any LHS entry that does not begin with | |
930 | a dot matches the full host name indicated. LHS entries beginning | |
931 | with a dot match anything ending with that domain name -- that is, | |
932 | they can be thought of as having a leading "*" wildcard. Matching | |
933 | is done in order of most-to-least qualified -- for example, even | |
934 | though ".my.domain" is listed first in the above example, an entry | |
935 | of "uuhost1.my.domain" will match the second entry since it is | |
936 | more explicit. | |
937 | ||
938 | The RHS should always be a "mailer:host" pair. The mailer is the | |
939 | configuration name of a mailer (that is, an `M' line in the | |
940 | sendmail.cf file). The "host" will be the hostname passed to | |
941 | that mailer. In domain-based matches (that is, those with leading | |
942 | dots) the "%1" may be used to interpolate the wildcarded part of | |
943 | the host name. For example, the first line above sends everything | |
944 | addressed to "anything.my.domain" to that same host name, but using | |
945 | the (presumably experimental) xnet mailer. | |
946 | ||
b0abd8b1 EA |
947 | In some cases you may want to temporarily turn off MX records, |
948 | particularly on gateways. For example, you may want to MX | |
949 | everything in a domain to one machine that then forwards it | |
950 | directly. To do this, you might use the DNS configuration: | |
951 | ||
952 | *.domain. IN MX 0 relay.machine | |
953 | ||
954 | and on relay.machine use the mailertable: | |
955 | ||
956 | .domain smtp:[gateway.domain] | |
957 | ||
958 | The [square brackets] turn off MX records for this host only. | |
959 | If you didn't do this, the mailertable would use the MX record | |
960 | again, which would give you an MX loop. | |
961 | ||
bb3c21c3 | 962 | |
2e9b6f6e EA |
963 | +--------------------------------+ |
964 | | USING USERDB TO MAP FULL NAMES | | |
965 | +--------------------------------+ | |
966 | ||
967 | The user database was not originally intended for mapping full names | |
968 | to login names (e.g., Eric.Allman => eric), but some people are using | |
969 | it that way. (I would recommend that you set up aliases for this | |
970 | purpose instead -- since you can specify multiple alias files, this | |
971 | is fairly easy.) The intent was to locate the default maildrop at | |
972 | a site, but allow you to override this by sending to a specific host. | |
973 | ||
974 | If you decide to set up the user database in this fashion, it is | |
65739042 | 975 | imperative that you not use FEATURE(stickyhost) -- otherwise, |
2e9b6f6e EA |
976 | e-mail sent to Full.Name@local.host.name will be rejected. |
977 | ||
65739042 | 978 | To build the internal form of the user database, use: |
f7e8be31 EA |
979 | |
980 | makemap btree /usr/data/base.db < /usr/data/base.txt | |
981 | ||
6f21cb33 EA |
982 | As a general rule, I am adamantly opposed to using full names as |
983 | e-mail addresses, since they are not in any sense unique. For example, | |
984 | the Unix software-development community has two Andy Tannenbaums, | |
985 | at least two well-known Peter Deutsches, and at one time Bell Labs | |
986 | had two Stephen R. Bournes with offices along the same hallway. | |
987 | Which one will be forced to suffer the indignity of being | |
988 | Stephen_R_Bourne_2? The less famous of the two, or the one that | |
989 | was hired later? | |
990 | ||
991 | Finger should handle full names (and be fuzzy). Mail should use | |
992 | handles, and not be fuzzy. [Not that I expect anyone to pay any | |
993 | attention to my opinions.] | |
994 | ||
2e9b6f6e | 995 | |
f4d9c9f9 EA |
996 | +--------------------------------+ |
997 | | MISCELLANEOUS SPECIAL FEATURES | | |
998 | +--------------------------------+ | |
999 | ||
c604cca4 | 1000 | Plussed users |
f4d9c9f9 EA |
1001 | Sometimes it is convenient to merge configuration on a |
1002 | centralized mail machine, for example, to forward all | |
1003 | root mail to a mail server. In this case it might be | |
1004 | useful to be able to treat the root addresses as a class | |
1005 | of addresses with subtle differences. You can do this | |
c604cca4 | 1006 | using plussed users. For example, a client might include |
f4d9c9f9 EA |
1007 | the alias: |
1008 | ||
c604cca4 | 1009 | root: root+client1@server |
f4d9c9f9 | 1010 | |
c604cca4 EA |
1011 | On the server, this will match an alias for "root+client1". |
1012 | If that is not found, the alias "root+*" will be tried, | |
1013 | then "root". | |
f4d9c9f9 EA |
1014 | |
1015 | ||
bbf8c7ae EA |
1016 | +----------------+ |
1017 | | SECURITY NOTES | | |
1018 | +----------------+ | |
1019 | ||
1020 | A lot of sendmail security comes down to you. Sendmail 8 is much | |
1021 | more careful about checking for security problems than previous | |
1022 | versions, but there are some things that you still need to watch | |
1023 | for. In particular: | |
1024 | ||
1025 | * Make sure the aliases file isn't writable except by trusted | |
1026 | system personnel. This includes both the text and database | |
1027 | version. | |
1028 | ||
1029 | * Make sure that other files that sendmail reads, such as the | |
1030 | mailertable, is only writable by trusted system personnel. | |
1031 | ||
1032 | * The queue directory should not be world writable PARTICULARLY | |
1033 | if your system allows "file giveaways" (that is, if a non-root | |
1034 | user can chown any file they own to any other user). | |
1035 | ||
1036 | * If your system allows file giveaways, DO NOT create a publically | |
1037 | writable directory for forward files. This will allow anyone | |
1038 | to steal anyone else's e-mail. Instead, create a script that | |
1039 | copies the .forward file from users' home directories once a | |
1040 | night (if you want the non-NFS-mounted forward directory). | |
1041 | ||
1042 | * If your system allows file giveaways, you'll find that | |
1043 | sendmail is much less trusting of :include: files -- in | |
1044 | particular, you'll have to have /SENDMAIL/ANY/SHELL/ in | |
1045 | /etc/shells before they will be trusted (that is, before | |
1046 | files and programs listed in them will be honored). | |
1047 | ||
1048 | In general, file giveaways are a mistake -- if you can turn them | |
1049 | off I recommend you do so. | |
1050 | ||
1051 | ||
63013ec3 EA |
1052 | +------------------+ |
1053 | | FlexFAX SOFTWARE | | |
1054 | +------------------+ | |
1055 | ||
1056 | Sam Leffler's FlexFAX software is still in beta test -- but he expects a | |
1057 | public version out "later this week" [as of 3/1/93]. The following | |
1058 | blurb is direct from Sam: | |
1059 | ||
d1ad6cf3 | 1060 | $Header: /usr/people/sam/fax/RCS/HOWTO,v 1.14 93/05/24 11:42:16 sam Exp $ |
63013ec3 EA |
1061 | |
1062 | How To Obtain This Software (in case all you get is this file) | |
d1ad6cf3 | 1063 | -------------------------------------------------------------- |
63013ec3 | 1064 | The source code is available for public ftp on |
d1ad6cf3 | 1065 | sgi.com sgi/fax/v2.1.src.tar.Z |
63013ec3 EA |
1066 | (192.48.153.1) |
1067 | ||
1068 | You can also obtain inst'able images for Silicon Graphics machines from | |
d1ad6cf3 | 1069 | sgi.com sgi/fax/v2.1.inst.tar |
63013ec3 EA |
1070 | (192.48.153.1) |
1071 | ||
1072 | For example, | |
1073 | % ftp -n sgi.com | |
1074 | .... | |
1075 | ftp> user anonymous | |
1076 | ... <type in password> | |
1077 | ftp> cd sgi/fax | |
1078 | ftp> binary | |
d1ad6cf3 EA |
1079 | ftp> get v2.1.src.tar.Z |
1080 | ||
1081 | In general, the latest version of the 2.1 release of the software is | |
1082 | always available as "v2.1.src.tar.Z" or "v2.1.inst.tar" in the ftp | |
1083 | directory. This file is a link to the appropriate released version (so | |
1084 | don't waste your time retrieving the linked file as well!) Any files of | |
1085 | the form v2.1.*.patch are shell scripts that can be used to patch older | |
1086 | versions of the source code. For example, the file v2.1.0.patch would | |
1087 | contain patches to update v2.1.0.tar.Z. (Note to beta testers: this is | |
1088 | different than the naming conventions used during beta testing.) Patch | |
1089 | files only work to go between consecutive versions, so if you are | |
1090 | multiple versions behind the latest release, you will need to apply | |
1091 | each patch file between your current version and the latest. | |
1092 | ||
1093 | ||
1094 | Obtaining the Software by Electronic Mail | |
1095 | ----------------------------------------- | |
1096 | Do not send me requests for the software; they will be ignored (without | |
1097 | response). If you cannot use FTP at all, there is a service called | |
1098 | "ftpmail" available from gatekeeper.dec.com: you can send e-mail to | |
1099 | this machine and it will use FTP to retrieve files for you and send you | |
1100 | the files back again via e-mail. To find out more about the ftpmail | |
63013ec3 EA |
1101 | service, send a message to "ftpmail@gatekeeper.dec.com" whose body |
1102 | consists of the single line "help". | |
1103 | ||
d1ad6cf3 EA |
1104 | |
1105 | Obtaining the Software Within Silicon Graphics | |
1106 | ---------------------------------------------- | |
63013ec3 | 1107 | Internal to Silicon Graphics there are inst'able images on the host |
d1ad6cf3 | 1108 | flake.asd in the directory /usr/dist. Thus you can do something like: |
63013ec3 | 1109 | |
d1ad6cf3 | 1110 | % inst -f flake.asd.sgi.com:/usr/dist/flexfax |
63013ec3 | 1111 | |
d1ad6cf3 | 1112 | to install the latest version of the software on your machine. |
63013ec3 | 1113 | |
d1ad6cf3 EA |
1114 | |
1115 | What to do Once You've Retrieved Stuff | |
1116 | -------------------------------------- | |
63013ec3 EA |
1117 | The external distributions come in a compressed or uncompressed tar |
1118 | file. To extract the source distribution: | |
1119 | ||
d1ad6cf3 | 1120 | % zcat v2.1.src.tar.Z | tar xf - |
63013ec3 EA |
1121 | |
1122 | (uncompress and extract individual files in current directory). To | |
1123 | unpack and install the client portion of the inst'able distribution: | |
1124 | ||
1125 | % mkdir dist | |
d1ad6cf3 | 1126 | % cd dist; tar xf ../v2.1.inst.tar; cd .. |
63013ec3 EA |
1127 | % inst -f dist/flexfax |
1128 | ... | |
1129 | inst> go | |
1130 | ||
1131 | (Note, the dist subdirectory is because some versions of inst fail if | |
d1ad6cf3 EA |
1132 | the files are in the current directory.) Server binaries are also |
1133 | included in the inst'able images as flexfax.server.*. They are not | |
1134 | installed by default, so to get them also you need to do: | |
63013ec3 EA |
1135 | |
1136 | % inst -f flexfax | |
1137 | ... | |
1138 | inst> install flexfax.server.* | |
1139 | inst> go | |
1140 | ||
d1ad6cf3 | 1141 | The SGI binaries were built for Version 4.0.5H of the IRIX operating |
63013ec3 EA |
1142 | system. They should work w/o problem on earlier versions of the |
1143 | system, but I have not fully tested this. Also, note that to install a | |
1144 | server on an SGI machine, you need to have installed the Display | |
1145 | PostScript execution environment product (dps_eoe). Otherwise, the fax | |
1146 | server will not be able to convert PostScript to facsimile for | |
1147 | transmission. | |
1148 | ||
d1ad6cf3 EA |
1149 | If you are working from the source distribution, look at the file |
1150 | README in the top of the source tree. If you are working from the inst | |
1151 | images, the subsystem flexfax.man.readme contains the README file and | |
1152 | other useful pieces of information--the installed files are placed in | |
1153 | the directory /usr/local/doc/flexfax). Basically you will need to run | |
1154 | the faxaddmodem script to setup and configure your fax modem. Consult | |
1155 | the README file and the manual page for faxaddmodem for information. | |
63013ec3 | 1156 | |
63013ec3 | 1157 | |
d1ad6cf3 EA |
1158 | FlexFAX Mail List |
1159 | ----------------- | |
63013ec3 EA |
1160 | A mailing list for users of this software is located on sgi.com. |
1161 | If you want to join this mailing list or have a list-related request | |
1162 | such as getting your name removed from it, send a request to | |
1163 | ||
d1ad6cf3 EA |
1164 | majordomo@whizzer.wpd.sgi.com |
1165 | ||
1166 | For example, to subscribe, send the line "subscribe flexfax" in | |
1167 | the body of your message. The line "help" will return a list of | |
1168 | the commands understood by the mailing list management software. | |
63013ec3 EA |
1169 | |
1170 | Submissions (including bug reports) should be directed to: | |
1171 | ||
1172 | flexfax@sgi.com | |
1173 | ||
d1ad6cf3 EA |
1174 | When corresponding about this software please always specify what |
1175 | version you have, what system you're running on, and, if the problem is | |
1176 | specific to your modem, identify the modem and firmware revision. | |
1177 | ||
63013ec3 | 1178 | |
a151c868 EA |
1179 | +--------------------------------+ |
1180 | | TWEAKING CONFIGURATION OPTIONS | | |
1181 | +--------------------------------+ | |
1182 | ||
1183 | There are a large number of configuration options that don't normally | |
1184 | need to be changed. However, if you feel you need to tweak them, you | |
1185 | can define the following M4 variables. This list is shown in four | |
1186 | columns: the name you define, the default value for that definition, | |
1187 | the option or macro that is affected (either Ox for an option or Dx | |
1188 | for a macro), and a brief description. Greater detail of the semantics | |
1189 | can be found in the Installation and Operations Guide. | |
1190 | ||
fb32c2a1 EA |
1191 | Some options are likely to be deprecated in future versions -- that is, |
1192 | the option is only included to provide back-compatibility. These are | |
1193 | marked with "*". | |
1194 | ||
a7e36c1b EA |
1195 | Remember that these options are M4 variables, and hence may need to |
1196 | be quoted. In particular, arguments with commas will usually have to | |
1197 | be ``double quoted, like this phrase'' to avoid having the comma | |
1198 | confuse things. This is common for alias file definitions and for | |
1199 | the read timeout. | |
1200 | ||
4753516a EA |
1201 | M4 Variable Name Configuration Description & [Default] |
1202 | ================ ============= ======================= | |
1203 | confMAILER_NAME $n macro [MAILER-DAEMON] The sender name used | |
1204 | for internally generated outgoing | |
1205 | messages. | |
1206 | confFROM_LINE $l macro [From $g $d] The From_ line used | |
1207 | when sending to files or programs. | |
1208 | confFROM_HEADER $q macro [$?x$x <$g>$|$g$.] The format of an | |
1209 | internally generated From: address. | |
1210 | confOPERATORS $o macro [.:%@!^/[]+] Address operator | |
1211 | characters. | |
8b065e59 | 1212 | confSMTP_LOGIN_MSG $e macro [$j Sendmail $v/$Z; $b] |
4753516a | 1213 | The initial (spontaneous) SMTP |
8b065e59 EA |
1214 | greeting message. The word "ESMTP" |
1215 | will be inserted between the first and | |
1216 | second words to convince other | |
1217 | sendmails to try to speak ESMTP. | |
4753516a EA |
1218 | confDOMAIN_NAME $j macro If defined, sets $j. This should |
1219 | only be done if your system cannot | |
1220 | determine your local domain name, | |
1221 | and then it should be set to | |
1222 | $w.Foo.COM, where Foo.COM is your | |
1223 | domain name. | |
1224 | confRECEIVED_HEADER Received: | |
1225 | [.$?_($?s$|from $.$_) $.by $j ($v/$Z)$?r with $r$. id $i$?u for $u$.; $b] | |
1226 | The format of the Received: header | |
1227 | in messages passed through this host. | |
1228 | It is unwise to try to change this. | |
1229 | confCW_FILE Fw class [/etc/sendmail.cw] Name of file used | |
1230 | to get the local additions to the $=w | |
1231 | class. | |
1232 | confSMTP_MAILER - [smtp] The mailer name used when | |
1233 | SMTP connectivity is required. | |
1234 | One of "smtp", "smtp8", or "esmtp". | |
1235 | confLOCAL_MAILER - [local] The mailer name used when | |
1236 | local connectivity is required. | |
1237 | Almost always "local". | |
1238 | confRELAY_MAILER - [relay] The default mailer name used | |
1239 | for relaying any mail (e.g., to a | |
1240 | BITNET_RELAY, a SMART_HOST, or | |
1241 | whatever). This can reasonably be | |
1242 | "uucp-new" if you are on a | |
1243 | UUCP-connected site. | |
1244 | confSEVEN_BIT_INPUT SevenBitInput [False] Force input to seven bits? | |
1245 | confEIGHT_BIT_HANDLING EightBitMode [pass8] 8-bit data handling | |
1246 | confALIAS_WAIT AliasWait [10m] Time to wait for alias file | |
1247 | rebuild until you get bored and | |
1248 | decide that the apparently pending | |
1249 | rebuild failed. | |
1250 | confMIN_FREE_BLOCKS MinFreeBlocks [100] Minimum number of free blocks on | |
1251 | queue filesystem to accept SMTP mail. | |
729ff2d3 EA |
1252 | (Prior to 8.7 this was minfree/maxsize, |
1253 | where minfree was the number of free | |
1254 | blocks and maxsize was the maximum | |
1255 | message size. Use confMAX_MESSAGE_SIZE | |
1256 | for the second value now.) | |
1257 | confMAX_MESSAGE_SIZE MaxMessageSize The maximum size of messages that will | |
1258 | be accepted (in bytes). | |
4753516a EA |
1259 | confBLANK_SUB BlankSub [.] Blank (space) substitution |
1260 | character. | |
1261 | confCON_EXPENSIVE HoldExpensive [False] Avoid connecting immediately | |
1262 | to mailers marked expensive? | |
1263 | confCHECKPOINT_INTERVAL CheckpointInterval | |
1264 | Checkpoint queue files every N | |
1265 | recipients. | |
1266 | confDELIVERY_MODE DeliveryMode [background] Default delivery mode. | |
1267 | confAUTO_REBUILD AutoRebuildAliases | |
1268 | Automatically rebuild alias | |
1269 | file if needed. | |
1270 | confERROR_MODE ErrorMode Error message mode. | |
1271 | confERROR_MESSAGE ErrorHeader Error message header/file. | |
1272 | confSAVE_FROM_LINES SafeFromLine Save extra leading From_ lines. | |
1273 | confTEMP_FILE_MODE TempFileMode [0600] Temporary file mode. | |
1274 | confMATCH_GECOS MatchGECOS Match GECOS field. | |
1275 | confMAX_HOP MaxHopCount Maximum hop count. | |
1276 | confIGNORE_DOTS* IgnoreDots Ignore dot as terminator for incoming | |
1277 | messages? | |
1278 | confBIND_OPTS ResolverOptions Default options for DNS resolver. | |
1279 | confMIME_FORMAT_ERRORS* SendMimeErrors [True] Send error messages as MIME- | |
1280 | encapsulated messages per RFC 1344. | |
1281 | confFORWARD_PATH ForwardPath [$z/.forward.$w:$z/.forward] | |
1282 | The colon-separated list of places to | |
1283 | search for .forward files. N.B.: see | |
1284 | the Security Notes section. | |
1285 | confMCI_CACHE_SIZE ConnectionCacheSize | |
1286 | [2] Size of open connection cache. | |
1287 | confMCI_CACHE_TIMEOUT ConnectionCacheTimeout | |
1288 | [5m] Open connection cache timeout. | |
1289 | confUSE_ERRORS_TO* UserErrorsTo [False] Use the Errors-To: header to deliver | |
1290 | error messages. This should not be | |
1291 | necessary because of general acceptance | |
1292 | of the envelope/header distinction. | |
1293 | confLOG_LEVEL LogLevel [9] Log level. | |
1294 | confME_TOO MeToo Include sender in group expansions. | |
1295 | confCHECK_ALIASES CheckAliases [True] Check RHS of aliases when | |
1296 | running newaliases. | |
1297 | confOLD_STYLE_HEADERS* OldStyleHeaders [True] Assume that headers without | |
1298 | special chars are old style. | |
1299 | confDAEMON_OPTIONS DaemonPortOptions | |
1300 | SMTP daemon options. | |
1301 | confPRIVACY_FLAGS PrivacyOptions [authwarnings] Privacy flags. | |
1302 | confCOPY_ERRORS_TO PostmasterCopy Address for additional copies of all | |
1303 | error messages. | |
1304 | confQUEUE_FACTOR QueueFactor Slope of queue-only function. | |
1305 | confDONT_PRUNE_ROUTES DontPruneRoutes Don't prune down route-addr syntax | |
1306 | addresses to the minimum possible. | |
1307 | confSAFE_QUEUE* SuperSafe [True] Commit all messages to disk | |
1308 | before forking. | |
1309 | confTIME_ZONE TimeZoneSpec [USE_SYSTEM] Time zone info -- can be | |
1310 | USE_SYSTEM to use the system's idea, | |
1311 | USE_TZ to use the user's TZ envariable, | |
1312 | or something else to force that value. | |
1313 | confDEF_USER_ID DefaultUser [1:1] Default user id. | |
1314 | confUSERDB_SPEC UserDatabaseSpec | |
1315 | User database specification. | |
1316 | confFALLBACK_MX FallbackMXhost Fallback MX host. | |
1317 | confTRY_NULL_MX_LIST TryNullMXList If we are the best MX for a host and | |
1318 | haven't made other arrangements, try | |
1319 | connecting to the host directly; | |
1320 | normally this would be a config error. | |
1321 | confQUEUE_LA QueueLA Load average at which queue-only | |
1322 | function kicks in. | |
1323 | confREFUSE_LA RefuseLA Load average at which incoming | |
1324 | SMTP connections are refused. | |
a151c868 | 1325 | confWORK_RECIPIENT_FACTOR |
4753516a EA |
1326 | RecipientFactor Cost of each recipient. |
1327 | confSEPARATE_PROC ForkEachJob Run all deliveries in a separate | |
1328 | process. | |
1329 | confWORK_CLASS_FACTOR ClassFactor Priority multiplier for class. | |
1330 | confWORK_TIME_FACTOR RetryFactor Cost of each delivery attempt. | |
1331 | confQUEUE_SORT_ORDER QueueSortOrder Queue sort algorithm: Priority or Host. | |
4753516a EA |
1332 | confMIN_QUEUE_AGE MinQueueAge The minimum amount of time a job |
1333 | must sit in the queue between queue | |
1334 | runs. This allows you to set the | |
1335 | queue run interval low for better | |
1336 | resposiveness without trying all | |
1337 | jobs in each run. | |
1338 | confDEF_CHAR_SET DefaultCharSet When converting unlabelled 8 bit | |
1339 | input to MIME, the character set to | |
1340 | use by default. | |
1341 | confSERVICE_SWITCH_FILE ServiceSwitchFile | |
1342 | The file to use for the service switch | |
1343 | on systems that do not have a system- | |
1344 | defined switch. | |
1345 | confDIAL_DELAY DialDelay If a connection fails, wait this long | |
1346 | and try again. This is to allow | |
1347 | "dial on demand" connections to have | |
1348 | enough time to complete a connection. | |
1349 | confNO_RCPT_ACTION NoRecipientAction | |
1350 | What to do if there are no legal | |
1351 | recipient fields (To:, Cc: or Bcc:) | |
1352 | in the message. Legal values can | |
1353 | be "none" to just leave the | |
1354 | nonconforming message as is, "add-to" | |
1355 | to add a To: header with all the | |
1356 | known recipients (which may expose | |
1357 | blind recipients), "add-apparently-to" | |
1358 | to do the same but use Apparently-To: | |
1359 | instead of To:, "add-bcc" to add an | |
1360 | empty Bcc: header, or | |
1361 | "add-to-undisclosed" to add the header | |
1362 | ``To: undisclosed-recipients:;''. | |
1363 | Default is "none". | |
1364 | confSAFE_FILE_ENV SafeFileEnvironment | |
1365 | If set, sendmail will do a chroot() | |
1366 | into this directory before writing | |
1367 | files. | |
ef9e3443 EA |
1368 | confCOLON_OK_IN_ADDR ColonOkInAddr If set, colons are treated as a regular |
1369 | character in addresses. If not set, | |
1370 | they are treated as the introducer to | |
1371 | the RFC 822 "group" syntax. Colons are | |
1372 | handled properly in route-addrs. This | |
1373 | option defaults on for V5 and lower | |
1374 | configuration files. | |
a151c868 | 1375 | |
bee9d799 | 1376 | |
4a51b074 EA |
1377 | +-----------+ |
1378 | | HIERARCHY | | |
1379 | +-----------+ | |
7ace9d88 EA |
1380 | |
1381 | Within this directory are several subdirectories, to wit: | |
1382 | ||
1383 | m4 General support routines. These are typically | |
1384 | very important and should not be changed without | |
fd82c288 | 1385 | very careful consideration. |
7ace9d88 EA |
1386 | |
1387 | cf The configuration files themselves. They have | |
1388 | ".mc" suffixes, and must be run through m4 to | |
1389 | become complete. The resulting output should | |
1390 | have a ".cf" suffix. | |
1391 | ||
1392 | ostype Definitions describing a particular operating | |
1393 | system type. These should always be referenced | |
1394 | using the OSTYPE macro in the .mc file. Examples | |
1395 | include "bsd4.3", "bsd4.4", "sunos3.5", and | |
1396 | "sunos4.1". | |
1397 | ||
1398 | domain Definitions describing a particular domain, referenced | |
1399 | using the DOMAIN macro in the .mc file. These are | |
e9631f65 EA |
1400 | site dependent; for example, "CS.Berkeley.EDU.m4" |
1401 | describes hosts in the CS.Berkeley.EDU subdomain. | |
7ace9d88 EA |
1402 | |
1403 | mailer Descriptions of mailers. These are referenced using | |
1404 | the MAILER macro in the .mc file. | |
1405 | ||
1406 | sh Shell files used when building the .cf file from the | |
1407 | .mc file in the cf subdirectory. | |
1408 | ||
1409 | feature These hold special orthogonal features that you might | |
1410 | want to include. They should be referenced using | |
1411 | the FEATURE macro. | |
1412 | ||
1413 | hack Local hacks. These can be referenced using the HACK | |
1414 | macro. They shouldn't be of more than voyeuristic | |
1415 | interest outside the .Berkeley.EDU domain, but who knows? | |
6fb312a3 | 1416 | We've all got our own peccadillos. |
7ace9d88 | 1417 | |
9df1b56b EA |
1418 | siteconfig Site configuration -- e.g., tables of locally connected |
1419 | UUCP sites. | |
1420 | ||
7ace9d88 | 1421 | |
4a51b074 EA |
1422 | +------------------------+ |
1423 | | ADMINISTRATIVE DETAILS | | |
1424 | +------------------------+ | |
7ace9d88 EA |
1425 | |
1426 | The following sections detail usage of certain internal parts of the | |
1427 | sendmail.cf file. Read them carefully if you are trying to modify | |
1428 | the current model. If you find the above descriptions adequate, these | |
1429 | should be {boring, confusing, tedious, ridiculous} (pick one or more). | |
1430 | ||
1431 | RULESETS (* means built in to sendmail) | |
1432 | ||
1433 | 0 * Parsing | |
1434 | 1 * Sender rewriting | |
1435 | 2 * Recipient rewriting | |
1436 | 3 * Canonicalization | |
1437 | 4 * Post cleanup | |
f5baef19 | 1438 | 5 * Local address rewrite (after aliasing) |
b197efaa EA |
1439 | 1x mailer rules (sender qualification) |
1440 | 2x mailer rules (recipient qualification) | |
0409c6a2 EA |
1441 | 3x mailer rules (sender header qualification) |
1442 | 4x mailer rules (recipient header qualification) | |
1443 | 5x mailer subroutines (general) | |
1444 | 6x mailer subroutines (general) | |
1445 | 7x mailer subroutines (general) | |
1446 | 8x reserved | |
b197efaa | 1447 | 90 Mailertable host stripping |
f7ffd8e3 EA |
1448 | 96 Bottom half of Ruleset 3 (ruleset 6 in old sendmail) |
1449 | 97 Hook for recursive ruleset 0 call (ruleset 7 in old sendmail) | |
5dd53c38 | 1450 | 98 Local part of ruleset 0 (ruleset 8 in old sendmail) |
7ace9d88 EA |
1451 | |
1452 | ||
1453 | MAILERS | |
1454 | ||
1455 | 0 local, prog local and program mailers | |
2a20bc94 EA |
1456 | 1 [e]smtp, relay SMTP channel |
1457 | 2 uucp-* UNIX-to-UNIX Copy Program | |
bee9d799 | 1458 | 3 netnews Network News delivery |
63013ec3 | 1459 | 4 fax Sam Leffler's FlexFAX software |
37498540 | 1460 | 5 mail11 DECnet mailer |
7ace9d88 EA |
1461 | |
1462 | ||
1463 | MACROS | |
1464 | ||
1465 | A | |
1466 | B Bitnet Relay | |
848a0a1f | 1467 | C DECnet Relay |
f5baef19 | 1468 | D The local domain -- usually not needed |
7ace9d88 | 1469 | E |
63013ec3 | 1470 | F FAX Relay |
7ace9d88 | 1471 | G |
34e49bd3 | 1472 | H mail Hub (for mail clusters) |
7ace9d88 EA |
1473 | I |
1474 | J | |
1475 | K | |
b0abd8b1 | 1476 | L Luser Relay |
7ace9d88 EA |
1477 | M Masquerade (who I claim to be) |
1478 | N | |
1479 | O | |
1480 | P | |
1481 | Q | |
1482 | R Relay (for unqualified names) | |
28b51619 | 1483 | S Smart Host |
7ace9d88 | 1484 | T |
c573210d EA |
1485 | U my UUCP name (if I have a UUCP connection) |
1486 | V UUCP Relay (class V hosts) | |
7ace9d88 EA |
1487 | W UUCP Relay (class W hosts) |
1488 | X UUCP Relay (class X hosts) | |
c573210d | 1489 | Y UUCP Relay (all other hosts) |
7ace9d88 EA |
1490 | Z Version number |
1491 | ||
1492 | ||
1493 | CLASSES | |
1494 | ||
1495 | A | |
1496 | B | |
1497 | C | |
c604cca4 | 1498 | D |
4a51b074 | 1499 | E addresses that should not seem to come from $M |
f5baef19 | 1500 | F hosts we forward for |
7ace9d88 EA |
1501 | G |
1502 | H | |
1503 | I | |
1504 | J | |
1505 | K | |
1506 | L addresses that should not be forwarded to $R | |
1507 | M | |
1508 | N | |
1509 | O operators that indicate network operations (cannot be in local names) | |
848a0a1f | 1510 | P top level pseudo-domains: BITNET, DECNET, FAX, UUCP, etc. |
7ace9d88 EA |
1511 | Q |
1512 | R | |
1513 | S | |
1514 | T | |
1515 | U locally connected UUCP hosts | |
c573210d EA |
1516 | V UUCP hosts connected to relay $V |
1517 | W UUCP hosts connected to relay $W | |
1518 | X UUCP hosts connected to relay $X | |
1519 | Y locally connected smart UUCP hosts | |
2e9b6f6e | 1520 | Z locally connected domain-ized UUCP hosts |
f5baef19 | 1521 | . the class containing only a dot |
7ace9d88 EA |
1522 | |
1523 | ||
1524 | M4 DIVERSIONS | |
1525 | ||
28b51619 EA |
1526 | 1 Local host detection and resolution |
1527 | 2 Local Ruleset 3 additions | |
1528 | 3 Local Ruleset 0 additions | |
9df1b56b | 1529 | 4 UUCP Ruleset 0 additions |
c573210d | 1530 | 5 locally interpreted names (overrides $R) |
f5baef19 | 1531 | 6 local configuration (at top of file) |
7ace9d88 | 1532 | 7 mailer definitions |
32f9e686 | 1533 | 8 |
06630be3 | 1534 | 9 special local rulesets (1 and 2) |