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