151220Seric 251220Seric 357246Seric NEW SENDMAIL CONFIGURATION FILES 451220Seric 557246Seric Eric Allman <eric@CS.Berkeley.EDU> 651220Seric 7*58116Seric @(#)README 6.7 (Berkeley) 02/21/93 851220Seric 951220Seric 1057246SericThis document describes the sendmail configuration files being used 1157246Sericat Berkeley. These use features in the new (R6) sendmail, and although 1257246Sericthere is an ``OLDSENDMAIL'' mode, they haven't really been tested on 1357247Sericold versions of sendmail and cannot be expected to work well. 1451220Seric 1557246SericThese configuration files are probably not as general as previous 1657246Sericversions, and don't handle as many of the wierd cases automagically. 1757246SericI was able to simplify by them for two reasons. First, the network 1857246Serichas become more consistent -- for example, at this point, everyone 1957246Sericon the internet is supposed to be running a name server, so hacks to 2057246Serichandle NIC-registered hosts can go away. Second, I assumed that a 2157246Sericsubdomain would be running SMTP internally -- UUCP is presumed to be 2257246Serica long-haul protocol. I realize that this is not universal, but it 2357246Sericdoes describe the vast majority of sites with which I am familiar, 2457246Sericincluding those outside the US. 2551220Seric 2657246SericOf course, the downside of this is that if you do live in a wierd 2757246Sericworld, things are going to get wierder for you. I'm sorry about that, 2857246Sericbut at the time we at Berkeley had a problem, and it seemed like the 2957246Sericright thing to do. 3051220Seric 3157247SericThis package requires a post-V7 version of m4; if you are running the 3257247Seric4.2bsd, SysV.2, or 7th Edition version, I suggest finding a friend with 3357247Serica newer version. You can m4-expand on their system, then run locally. 3457247SericSunOS's /usr/5bin/m4 or BSD-Net/2's m4 both work. GNU m4 (which is a 3557247Sericlanguage unto itself) also works, but I don't intend to work so hard 3657247Sericto keep this up in the future. [Note to GNU folks: the construct 3757246Seric"define(`FOO')" should work without my having to add a null value.] 3851220Seric 3957246SericI'm not pretending that this README describes everything that these 4057246Sericconfiguration files can do; clever people can probably tweak them 4157246Sericto great effect. But it should get you started. 4257246Seric 4358087Seric 4457246Seric+--------------------------+ 4557246Seric| INTRODUCTION AND EXAMPLE | 4657246Seric+--------------------------+ 4757246Seric 4857246SericConfiguration files are contained in the subdirectory "cf", with a 4957246Sericsuffix ".mc". They must be run through "m4" to produce a ".cf" file. 5057246Seric 5151220SericLet's examine a typical .mc file (cf/cs-exposed.mc): 5251220Seric 5351220Seric divert(-1) 5451220Seric # 5551220Seric # Copyright (c) 1983 Eric P. Allman 5651220Seric # Copyright (c) 1988 The Regents of the University of California. 5751220Seric # All rights reserved. 5851220Seric # 5951220Seric # Redistribution and use in source and binary forms are permitted 6051220Seric # provided that the above copyright notice and this paragraph are 6151220Seric # duplicated in all such forms and that any documentation, 6251220Seric # advertising materials, and other materials related to such 6351220Seric # distribution and use acknowledge that the software was developed 6451220Seric # by the University of California, Berkeley. The name of the 6551220Seric # University may not be used to endorse or promote products derived 6651220Seric # from this software without specific prior written permission. 6751220Seric # THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 6851220Seric # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 6951220Seric # WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 7051220Seric # 7151220Seric 7257246SericThe divert(-1) will delete the crud in the resulting output file. 7357247SericThe copyright notice is what your lawyers require. Our lawyers require 7457246Sericthe one that I've included in my files. A copyleft is a copyright by 7557246Sericanother name. 7651220Seric 7757246SericThe next line MUST be 7857246Seric 7951220Seric include(`../m4/cf.m4') 8051220Seric 8157246SericThis will pull in the M4 macros you will need to make sense of 8257246Sericeverything else. As the saying goes, don't think about it, just 8357246Sericdo it. If you don't do it, don't bother reading the rest of this 8457246Sericfile. 8551220Seric 8656778Seric VERSIONID(`<SCCS or RCS version id>') 8751220Seric 8851220SericVERSIONID is a macro that stuffs the version information into the 8951220Sericresulting file. We use SCCS; you could use RCS, something else, or 9057246Sericomit it completely. This is not the same as the version id included 9157246Sericin SMTP greeting messages -- this is defined in m4/version.m4. 9251220Seric 9351268Seric DOMAIN(cs.exposed) 9451220Seric 9551220SericThis example exposes the host inside of the CS subdomain -- that is, 9651220Sericit doesn't try to hide the name of the workstation to the outside 9751220Sericworld. Changing this to DOMAIN(cs.hidden) would have made outgoing 9851220Sericmessages refer to "<username>@CS.Berkeley.EDU" instead of using the 9957246Sericlocal hostname. Internaly this is effected by using 10057246Seric"MASQUERADE_AS(CS.Berkeley.EDU)". 10151220Seric 10251268Seric MAILER(smtp) 10351220Seric 10451309SericThese describe the mailers used at the default CS site site. The 10551309Sericlocal mailer is always included automatically. 10651220Seric 10758087Seric 10857246Seric+--------+ 10957246Seric| OSTYPE | 11057246Seric+--------+ 11157246Seric 11251220SericNote that cf/cs-exposed.mc omits an OSTYPE macro -- this assumes 11351220Sericdefault Computer Science Division environment. There are several 11457247Sericexplicit environments available: bsd4.3, bsd4.4, hpux, irix, osf1, 11557247Sericriscos4.5, sunos3.5, sunos4.1, and ultrix4.1. These change things 11657247Sericlike the location of the alias file and queue directory. Some of 11757247Sericthese files are identical to one another. 11851220Seric 11957246SericOperating system definitions are easy to write. They may define 12057246Sericthe following variables (everything defaults, so an ostype file 12157246Sericmay be empty). 12251220Seric 12357246SericALIAS_FILE [/etc/aliases] The location of the text version 12457246Seric of the alias file. 12557246SericHELP_FILE [/usr/lib/sendmail.hf] The name of the file 12657246Seric containing information printed in response to 12757246Seric the SMTP HELP command. 12857246SericQUEUE_DIR [/var/spool/mqueue] The directory containing 12957246Seric queue files. 13057246SericSTATUS_FILE [/etc/sendmail.st] The file containing status 13157246Seric information. 13258087SericLOCAL_MAILER_PATH [/bin/mail] The program used to deliver local mail. 13357246SericLOCAL_MAILER_FLAGS [rn] The flags used by the local mailer. The 13457246Seric flags lsDFMm are always included. 13558087SericLOCAL_SHELL_PATH [/bin/sh] The shell used to deliver piped email. 13658087SericUSENET_MAILER_PATH [/usr/lib/news/inews] The name of the program 13758087Seric used to submit news. 13858087SericUSENET_MAILER_FLAGS [rlsDFMmn] The mailer flags for the usenet mailer. 13958087SericUSENET_MAILER_ARGS [-m -h -n] The command line arguments for the 14058087Seric usenet mailer. 14157246SericHOSTMAP_SPEC [dbm -o /etc/hostmap] The value for the builtin 14257246Seric hostmap key definition. You can redefine this 14357246Seric to change the class, flags, and filename of 14457246Seric the hostmap. The default flag (-o) makes this 14557246Seric map optional. 14657246Seric 14757246SericIn addition, the following boolean flags may be defined -- the value 14857246Sericis ignored. 14957246Seric 15057246SericNEED_DOMAIN If set, the $j macro is defined as $w.$D. 15157246Seric If not set, $j is defined as $w. If this is 15257246Seric set, the domain must be defined using the line 15357246Seric DD<domainname> (probably in the domain file, 15457246Seric but possibly in the .mc file). You will only 15557246Seric need this if you define your system hostname 15657246Seric without a domain (type "hostname" -- if it 15758087Seric has no dots in the output, you qualify) AND 15858087Seric if you are not running the nameserver AND if 15958087Seric the first (canonical) name in /etc/hosts for 16058087Seric your machine has no domain -- OR if you are 16158087Seric running Ultrix or OSF/1 sendmail. Either of 16258087Seric these is probably a mistake. 16357246Seric 16457246Seric+---------+ 16557246Seric| DOMAINS | 16657246Seric+---------+ 16757246Seric 16857246SericYou will probably want to collect domain-dependent defines into one 16957246Sericfile, referenced by the DOMAIN macro. For example, our Berkeley 17057246Sericdomain file includes definitions for several internal distinguished 17157246Serichosts: 17257246Seric 17357246SericUUCP_RELAY The host that will forward UUCP-addressed email. 17457246Seric If not defined, all UUCP sites must be directly 17557246Seric connected. 17657246SericBITNET_RELAY The host that will forward BITNET-addressed email. 17757246Seric If not defined, the .BITNET pseudo-domain won't work. 17857246SericCSNET_RELAY The host that will forward CSNET-addressed email. 17957246Seric If not defined, the .CSNET pseudo-domain won't work. 18057246SericLOCAL_RELAY The site that will handle unqualified names -- that 18157246Seric is, names with out an @domain extension. If not set, 18257246Seric they are assumed to belong on this machine. This 18357246Seric allows you to have a central site to store a 18457246Seric company- or department-wide alias database. This 18557246Seric only works at small sites, and there are better 18657246Seric methods. 18757246Seric 18857246SericThe domain file can also be used to define a domain name, if needed 18957982Seric(using "DD<domain>") and set certain site-wide features. If all hosts 19057982Sericat your site masquerade behind one email name, you could also use 19157982SericMASQUERADE_AS here. 19257246Seric 19357246Seric+---------+ 19457246Seric| MAILERS | 19557246Seric+---------+ 19657246Seric 19751220SericThere are fewer mailers supported in this version than the previous 19851220Sericversion, owing mostly to a simpler world. 19951220Seric 20051220Sericlocal The local and prog mailers. You will almost always 20151220Seric need these; the only exception is if you relay ALL 20257247Seric your mail to another site. This mailer is included 20357247Seric automatically. 20451220Seric 20551220Sericsmtp The Simple Mail Transport Protocol mailer. This does 20651220Seric not hide hosts behind a gateway or another other 20751220Seric such hack; it assumes a world where everyone is 20851220Seric running the name server. 20951220Seric 21051220Sericuucp The Unix-to-Unix Copy Program mailer. Actually, this 21151220Seric defines two mailers, "uucp" and "suucp". The latter 21251220Seric is for when you know that the UUCP mailer at the other 21351220Seric end can handle multiple recipients in one transfer. 21457246Seric When you invoke this, sendmail looks for all names in 21557246Seric the $=U class and sends them to the uucp mailer; all 21657246Seric names in the $=Y class are sent to suucp. Note that 21757246Seric this is a function of what version of rmail runs on 21857246Seric the receiving end, and hence may be out of your control. 21951220Seric 22058087Sericusenet Usenet (network news) delivery. If this is specified, 22158087Seric an extra rule is added to ruleset 0 that forwards all 22258087Seric local email for users named ``group.usenet'' to the 22358087Seric ``inews'' program. Note that this works for all groups, 22458087Seric and may be considered a security problem. 22558087Seric 22658087Seric 22757246Seric+----------+ 22857246Seric| FEATURES | 22957246Seric+----------+ 23051268Seric 23157246SericSpecial features can be requested using the "FEATURE" macro. For 23257246Sericexample, the .mc line: 23357246Seric 23457246Seric FEATURE(use_cw_file) 23557246Seric 23657246Serictells sendmail that you want to have it read an /etc/sendmail.cw 23757246Sericfile to get values for class $=w. Available features are: 23857246Seric 23957246Sericuse_cw_file Read the file /etc/sendmail.cw file to get alternate 24057246Seric names for this host. This might be used if you were 24157246Seric on a host that MXed for a dynamic set of other 24257246Seric hosts. If the set is static, just including the line 24357246Seric "Cw<name1> <name2> ..." is probably superior. 24458087Sericredirect Reject all mail addressed to "address.REDIRECT" with 24558087Seric a ``551 User not local; please try <address>'' message. 24658087Seric If this is set, you can alias people who have left 24758087Seric to their new address with ".REDIRECT" appended. 24857246Seric 24957246SericOther FEATUREs should be defined, but I was trying to keep these 25057246Sericconfig files fairly lean and mean. 25157246Seric 25258087Seric 25357246Seric+-------+ 25457246Seric| HACKS | 25557246Seric+-------+ 25657246Seric 25757246SericSome things just can't be called features. To make this clear, 25857247Sericthey go in the hack subdirectory and are referenced using the HACK 25957246Sericmacro. These will tend to be site-dependent. The release 26057246Sericincludes the Berkeley-dependent "cssubdomain" hack (that makes 26157246Sericsendmail accept local names in either Berkeley.EDU or CS.Berkeley.EDU; 26257246Sericthis is intended as a short-term aid while we move hosts into 26357246Sericsubdomains. 26457246Seric 26558087Seric 26657246Seric+--------------------+ 26757246Seric| SITE CONFIGURATION | 26857246Seric+--------------------+ 26957246Seric 27057246SericComplex sites will need more local configuration information, such as 27157246Sericlists of UUCP hosts they speak with directly. This can get a bit more 27257246Serictricky. For an example of a "complex" site, see cf/ucbvax.mc. 27357246Seric 27457246SericThe SITECONFIG macro allows you to indirectly reference site-dependent 27557246Sericconfiguration information stored in the siteconfig subdirectory. For 27657246Sericexample, the line 27757246Seric 27857246Seric SITECONFIG(uucp.ucbvax, ucbvax, U) 27957246Seric 28057246Sericreads the file uucp.ucbvax for local connection information. The 28157246Sericsecond parameter is the local name (in this case just "ucbvax" since 28257246Sericit is locally connected, and hence a UUCP hostname) and the name of 28357246Sericthe class in which to store the host information. Another SITECONFIG 28457246Sericline reads 28557246Seric 28657246Seric SITECONFIG(uucp.ucbarpa, ucbarpa.Berkeley.EDU, W) 28757246Seric 28857246SericThis says that the file uucp.ucbarpa contains the list of UUCP sites 28957246Sericconnected to ucbarpa.Berkeley.EDU. The $=W class will be used to 29057246Sericstore this list. [The machine ucbarpa is gone now, but I've left 29157246Sericthis out-of-date configuration file around to demonstrate how you 29257246Sericmight do this.] 29357246Seric 29457246SericThe siteconfig file (e.g., siteconfig/uucp.ucbvax.m4) contains nothing 29557246Sericmore than a sequence of SITE macros describing connectivity. For 29657246Sericexample: 29757246Seric 29857246Seric SITE(cnmat) 29957246Seric SITE(sgi olympus) 30057246Seric 30157246SericThe second example demonstrates that you can use two names on the 30257246Sericsame line; these are usually aliases for the same host (or are at 30357246Sericleast in the same company). 30457246Seric 30558087Seric 30657246Seric+-------------------+ 30757246Seric| TWEAKING RULESETS | 30857246Seric+-------------------+ 30957246Seric 31051268SericFor more complex configurations, you can define special rules. 31151268SericThe macro LOCAL_RULE_3 introduces rules that are used in canonicalizing 31251268Sericthe names. Any modifications made here are reflected in the header. 31351268Seric 31451268SericA common use is to convert old UUCP addreses to SMTP addresses using 31551268Sericthe UUCPSMTP macro. For example: 31651268Seric 31751268Seric LOCAL_RULE_3 31851268Seric UUCPSMTP(decvax, decvax.dec.com) 31951268Seric UUCPSMTP(research, research.att.com) 32051268Seric 32151268Sericwill cause addresses of the form "decvax!user" and "research!user" 32251268Sericto be converted to "user@decvax.dec.com" and "user@research.att.com" 32351268Sericrespectively. 32451268Seric 32557246SericThis could also be used to look hosts in a database map: 32657246Seric 32757246Seric LOCAL_RULE_3 32857246Seric R$* < @ $+ > $* $: $1 < @ $(hostmap $2 $) > $3 32957246Seric 33057246SericThis map would be defined in the LOCAL_CONFIG portion, as shown below. 33157246Seric 33251268SericSimilarly, LOCAL_RULE_0 can be used to introduce new parsing rules. 33351268SericFor example, new rules are needed to parse hostnames that you accept 33451309Sericvia MX records. For example, you might have: 33551268Seric 33651309Seric LOCAL_RULE_0 33751309Seric R$+ < @ cnmat.Berkeley.EDU > $#uucp $@ cnmat $: $1 33851309Seric 33951309SericYou would use this if you had installed an MX record for cnmat.Berkeley.EDU 34051309Sericpointing at this host; this rule catches the message and forwards it on 34151309Sericusing UUCP. 34251309Seric 34357246SericA similar macro is LOCAL_CONFIG. This introduces lines added after the 34457246Sericboilerplate option setting but before rulesets, and can be used to 34557945Sericdeclare local database maps or whatever. For example: 34651268Seric 34757246Seric LOCAL_CONFIG 34857246Seric Khostmap hash /etc/hostmap.db 34957246Seric Kyplocal nis -m hosts.byname 35051220Seric 35158087Seric 35257246Seric+---------------------------+ 35357246Seric| MASQUERADING AND RELAYING | 35457246Seric+---------------------------+ 35557246Seric 35657246SericYou can have your host masquerade as another using 35757246Seric 35857246Seric MASQUERADE_AS(host.domain) 35957246Seric 36057246SericThis causes outgoing SMTP mail to be labelled as coming from the 36157246Sericindicated domain, rather than $j. One normally masquerades as one 36257246Sericof your own subdomains (for example, it's unlikely that I would 36357246Sericchoose to masquerade as an MIT site). 36457246Seric 36557246Sericthere are always users that need to be "exposed" -- that is, their 36657246Sericinternal site name should be displayed instead of the masquerade name. 36757246SericRoot is an example. You can add users to this list using 36857246Seric 36957246Seric EXPOSED_USER(usernames) 37057246Seric 37157246SericThis adds users to class E; you could also use something like 37257246Seric 37357246Seric FE/etc/sendmail.cE 37457246Seric 37557246SericYou can also arrange to relay all unqualified names (that is, names 37657246Sericwithout @host) to a relay host. For example, if you have a central 37757246Sericemail server, you might relay to that host so that users don't have 37857246Sericto have .forward files or aliases. You can do this using 37957246Seric 38058071Seric define(`LOCAL_RELAY', mailer:hostname) 38157246Seric 38258071SericThe ``mailer:'' can be omitted, in which case the mailer defaults to 38358071Seric"smtp". There are some user names that you don't want relayed, perhaps 38458071Sericbecause of local aliases. A common example is root, which may be 38558071Sericlocally aliased. You can add entries to this list using 38657246Seric 38757246Seric LOCAL_USER(usernames) 38857246Seric 38957246SericThis adds users to class L; you could also use something like 39057246Seric 39157246Seric FL/etc/sendmail.cL 39257246Seric 39357591SericIf you want all mail sent to a centralized hub, as for a shared 39457591Seric/var/spool/mail scheme, use 39557591Seric 39658071Seric define(`MAIL_HUB', mailer:hostname) 39757591Seric 39858071SericAgain, ``mailer:'' defaults to "smtp". If you define both LOCAL_RELAY 39958071Sericand MAIL_HUB, unqualified names and names in class L will be sent to 40058071Sericthe LOCAL_RELAY and other local names will be sent to MAIL_HUB. For 40158071Sericexample, if are on machine mastodon.CS.Berkeley.EDU, the following 40258071Sericcombinations of settings will have the indicated effects: 40357591Seric 40457591Sericemail sent to.... eric eric@mastodon.CS.Berkeley.EDU 40557591Seric 40657591SericLOCAL_RELAY set to mail.CS.Berkeley.EDU (delivered locally) 40757591Sericmail.CS.Berkeley.EDU 40857591Seric 40957591SericMAIL_HUB set to mammoth.CS.Berkeley.EDU mammoth.CS.Berkeley.EDU 41057591Sericmammoth.CS.Berkeley.EDU 41157591Seric 41257591SericBoth LOCAL_RELAY and mail.CS.Berkeley.EDU mammoth.CS.Berkeley.EDU 41357591SericMAIL_HUB set as above 41457591Seric 41558071Seric 41658071Seric+-------------------------------+ 41758071Seric| NON-SMTP BASED CONFIGURATIONS | 41858071Seric+-------------------------------+ 41958071Seric 42058071SericThese configuration files are designed primarily for use by SMTP-based 42158071Sericsites. I don't pretend that they are well tuned for UUCP-only or 42258071SericUUCP-primarily nodes (the latter is defined as a small local net 42358071Sericconnected to the rest of the world via UUCP). However, there is one 42458071Serichook to handle some special cases. 42558071Seric 42658071SericYou can define a ``smart host'' that understands a richer address syntax 42758071Sericusing: 42858071Seric 42958071Seric define(`SMART_HOST', mailer:hostname) 43058071Seric 43158071SericIn this case, the ``mailer:'' defaults to "suucp". Any messages that 43258071Sericcan't be handled using the usual UUCP rules are passed to this host. 43358071Seric 43458071SericIf you are on a local SMTP-based net that connects to the outside 43558071Sericworld via UUCP, you can use LOCAL_NET_CONFIG to add appropriate rules. 43658071SericFor example: 43758071Seric 43858071Seric define(`SMART_HOST', suucp:uunet) 43958071Seric LOCAL_NET_CONFIG 44058071Seric R$* < @ $* .$m > $* $#smtp $@ $2.$m $: $1 < @ $2.$m > $3 44158071Seric 44258071SericThis will cause all names that end in your domain name ($m) via 44358071SericSMTP; anything else will be sent via suucp (smart UUCP) to uunet. 44458071Seric 44558071Seric 44657945Seric+--------------------------------+ 44757945Seric| TWEAKING CONFIGURATION OPTIONS | 44857945Seric+--------------------------------+ 44957945Seric 45057945SericThere are a large number of configuration options that don't normally 45157945Sericneed to be changed. However, if you feel you need to tweak them, you 45257945Sericcan define the following M4 variables. This list is shown in four 45357945Sericcolumns: the name you define, the default value for that definition, 45457945Sericthe option or macro that is affected (either Ox for an option or Dx 45557945Sericfor a macro), and a brief description. Greater detail of the semantics 45657945Sericcan be found in the Installation and Operations Guide. 45757945Seric 45857945SericM4 Variable Name Default Mac/Opt Description 45957945SericconfMAILER_NAME MAILER-DAEMON Dn The sender name used for 46057945Seric internally generated 46157945Seric outgoing messages. 46257945SericconfFROM_LINE From $?<$<$|$g$. $d The From_ line used when 46357945Seric Dl sending to files or programs. 46457945SericconfFROM_HEADER $?x$x <$g>$|$g$. The format of an internally 46557945Seric Dq generated From: address. 46657945SericconfOPERATORS .:%@!^/[] Do Address operator characters. 46757945SericconfSTMP_LOGIN_MSG $j Sendmail $v/$Z ready at $b 46857945Seric De The initial (spontaneous) 46957945Seric SMTP greeting message. 47057945SericconfEIGHT_BIT_INPUT False O8 Use 8-bit input? 47157945SericconfALIAS_WAIT 10 Oa Wait (in minutes) for alias 47257945Seric file rebuild. 47358087SericconfMIN_FREE_BLOCKS 4 Ob Minimum number of free blocks 47458087Seric on queue filesystem to accept 47558087Seric SMTP mail. 47657945SericconfBLANK_SUB . OB Blank (space) substitution 47757945Seric character. 47857945SericconfCON_EXPENSIVE False Oc Connect immediately to 47957945Seric mailers marked expensive? 48057945SericconfCHECKPOINT_INTERVAL 10 OC Checkpoint queue files 48157945Seric every N recipients. 48257945SericconfDELIVERY_MODE background Od Default delivery mode. 48357945SericconfAUTO_REBUILD False OD Automatically rebuild 48457945Seric alias file if needed. 48557945SericconfERROR_MODE (undefined) Oe Error message mode. 48657945SericconfERROR_MESSAGE (undefined) OE Error message header/file. 48757945SericconfSAVE_FROM_LINES False Of Save extra leading 48857945Seric From_ lines. 48957945SericconfTEMP_FILE_MODE 0600 OF Temporary file mode. 49057945SericconfDEF_GROUP_ID 1 Og Default group id. 49157945SericconfMATCH_GECOS False OG Match GECOS field. 49257945SericconfMAX_HOP 17 Oh Maximum hop count. 49357945SericconfIGNORE_DOTS False Oi Ignore dot as terminator 49457945Seric for incoming messages? 49557945SericconfBIND_OPTS (empty) OI Default options for BIND. 49657945SericconfMCI_CACHE_SIZE 2 Ok Size of open connection cache. 49757945SericconfMCI_CACHE_TIMEOUT 5m OK Open connection cache timeout. 49857945SericconfLOG_LEVEL 9 OL Log level. 49957945SericconfME_TOO False Om Include sender in group 50057945Seric expansions. 50157945SericconfCHECK_ALIASES True On Check RHS of aliases when 50257945Seric running newaliases. 50357945SericconfOLD_STYLE_HEADERS True Oo Assume that headers without 50457945Seric special chars are old style. 50558087SericconfPRIVACY_FLAGS public Op Privacy flags. 50657945SericconfCOPY_ERRORS_TO (undefined) OP Address for additional copies 50757945Seric of all error messages. 50857945SericconfQUEUE_FACTOR (undefined) Oq Slope of queue-only function 509*58116SericconfREAD_TIMEOUT (undefined) Or SMTP read timeouts. 51057945SericconfSAFE_QUEUE True Os Commit all messages to disk 51157945Seric before forking. 51257945SericconfMESSAGE_TIMEOUT 3d OT Timeout for messages before 51357945Seric sending error message. 51457945SericconfTIME_ZONE USE_SYSTEM Oz Time zone info -- can be 51557945Seric USE_SYSTEM to use the system's 51657945Seric idea, USE_TZ to use the user's 51757945Seric TZ envariable, or something 51857945Seric else to force that value. 51957945SericconfDEF_USER_ID 1 Ou Default user id. 52057945SericconfNO_WILDCARD_MX False Ow No wildcard MX records matches 52157945Seric our domain. 52257945SericconfQUEUE_LA 8 Ox Load average at which queue-only 52357945Seric function kicks in. 52457945SericconfREFUSE_LA 12 OX Load average at which incoming 52557945Seric SMTP connections are refused. 52657945SericconfSEPARATE_PROC False Oy Run all deliveries in a 52757945Seric separate process. 52857945SericconfWORK_RECIPIENT_FACTOR 52957945Seric (undefined) OY Cost of each recipient. 53057945SericconfWORK_CLASS_FACTOR (undefined) Oz Priority multiplier for class. 53157945SericconfWORK_TIME_FACTOR (undefined) OZ Cost of each delivery attempt. 53257945Seric 53358087Seric 53457246Seric+-----------+ 53557246Seric| HIERARCHY | 53657246Seric+-----------+ 53757246Seric 53851220SericWithin this directory are several subdirectories, to wit: 53951220Seric 54051220Sericm4 General support routines. These are typically 54151220Seric very important and should not be changed without 54257247Seric very careful consideration. 54351220Seric 54451220Sericcf The configuration files themselves. They have 54551220Seric ".mc" suffixes, and must be run through m4 to 54651220Seric become complete. The resulting output should 54751220Seric have a ".cf" suffix. 54851220Seric 54951220Sericostype Definitions describing a particular operating 55051220Seric system type. These should always be referenced 55151220Seric using the OSTYPE macro in the .mc file. Examples 55251220Seric include "bsd4.3", "bsd4.4", "sunos3.5", and 55351220Seric "sunos4.1". 55451220Seric 55551220Sericdomain Definitions describing a particular domain, referenced 55651220Seric using the DOMAIN macro in the .mc file. These are 55751220Seric site dependent; for example, we contribute "cs.exposed.m4" 55851220Seric and "cs.hidden.m4" which both describe hosts in the 55951220Seric CS.Berkeley.EDU subdomain; the former displays the local 56051220Seric hostname (e.g., mammoth.CS.Berkeley.EDU), whereas the 56151220Seric latter does its best to hide the identity of the local 56251220Seric workstation inside the CS subdomain. 56351220Seric 56451220Sericmailer Descriptions of mailers. These are referenced using 56551220Seric the MAILER macro in the .mc file. 56651220Seric 56751220Sericsh Shell files used when building the .cf file from the 56851220Seric .mc file in the cf subdirectory. 56951220Seric 57051220Sericfeature These hold special orthogonal features that you might 57151220Seric want to include. They should be referenced using 57251220Seric the FEATURE macro. 57351220Seric 57451220Serichack Local hacks. These can be referenced using the HACK 57551220Seric macro. They shouldn't be of more than voyeuristic 57651220Seric interest outside the .Berkeley.EDU domain, but who knows? 57751220Seric We've all got our own peccadilloes. 57851220Seric 57951268Sericsiteconfig Site configuration -- e.g., tables of locally connected 58051268Seric UUCP sites. 58151220Seric 58251268Seric 58357246Seric+------------------------+ 58457246Seric| ADMINISTRATIVE DETAILS | 58557246Seric+------------------------+ 58651220Seric 58751220SericThe following sections detail usage of certain internal parts of the 58851220Sericsendmail.cf file. Read them carefully if you are trying to modify 58951220Sericthe current model. If you find the above descriptions adequate, these 59051220Sericshould be {boring, confusing, tedious, ridiculous} (pick one or more). 59151220Seric 59251220SericRULESETS (* means built in to sendmail) 59351220Seric 59451220Seric 0 * Parsing 59551220Seric 1 * Sender rewriting 59651220Seric 2 * Recipient rewriting 59751220Seric 3 * Canonicalization 59851220Seric 4 * Post cleanup 59954839Seric 5 * Local address rewrite (after aliasing) 60051220Seric 6 Bottom half of Ruleset 3 60157247Seric 7 Hook for recursive ruleset 0 call 60257247Seric 8 60357247Seric 9 60451220Seric 60551220Seric 60651220SericMAILERS 60751220Seric 60851220Seric 0 local, prog local and program mailers 60951220Seric 1 smtp SMTP channel 61058087Seric 2 uucp UNIX-to-UNIX Copy Program 61158087Seric 3 netnews Network News delivery 61251220Seric 61351220Seric 61451220SericMACROS 61551220Seric 61651220Seric A 61751220Seric B Bitnet Relay 61851220Seric C CSNET Relay 61954839Seric D The local domain -- usually not needed 62051220Seric E 62151220Seric F 62251220Seric G 62357591Seric H mail Hub (for mail clusters) 62451220Seric I 62551220Seric J 62651220Seric K 62751220Seric L 62851220Seric M Masquerade (who I claim to be) 62951220Seric N 63051220Seric O 63151220Seric P 63251220Seric Q 63351220Seric R Relay (for unqualified names) 63458071Seric S Smart Host 63551220Seric T 63651309Seric U my UUCP name (if I have a UUCP connection) 63751309Seric V UUCP Relay (class V hosts) 63851220Seric W UUCP Relay (class W hosts) 63951220Seric X UUCP Relay (class X hosts) 64051309Seric Y UUCP Relay (all other hosts) 64151220Seric Z Version number 64251220Seric 64351220Seric 64451220SericCLASSES 64551220Seric 64651220Seric A 64751220Seric B 64851220Seric C 64951220Seric D 65057246Seric E addresses that should not seem to come from $M 65154839Seric F hosts we forward for 65251220Seric G 65351220Seric H 65451220Seric I 65551220Seric J 65651220Seric K 65751220Seric L addresses that should not be forwarded to $R 65851220Seric M 65951220Seric N 66051220Seric O operators that indicate network operations (cannot be in local names) 66151220Seric P 66251220Seric Q 66351220Seric R 66451220Seric S 66551220Seric T 66651220Seric U locally connected UUCP hosts 66751309Seric V UUCP hosts connected to relay $V 66851309Seric W UUCP hosts connected to relay $W 66951309Seric X UUCP hosts connected to relay $X 67051309Seric Y locally connected smart UUCP hosts 67151220Seric Z 67254839Seric . the class containing only a dot 67351220Seric 67451220Seric 67551220SericM4 DIVERSIONS 67651220Seric 67758071Seric 1 Local host detection and resolution 67858071Seric 2 Local Ruleset 3 additions 67958071Seric 3 Local Ruleset 0 additions 68051268Seric 4 UUCP Ruleset 0 additions 68151309Seric 5 locally interpreted names (overrides $R) 68254839Seric 6 local configuration (at top of file) 68351220Seric 7 mailer definitions 68454839Seric 8 special local name recognition (late in ruleset 3) 68558087Seric 9 special local name recognition (late in ruleset 0) 686