151220Seric 251220Seric 357246Seric NEW SENDMAIL CONFIGURATION FILES 451220Seric 557246Seric Eric Allman <eric@CS.Berkeley.EDU> 651220Seric 7*65619Seric @(#)README 8.21 (Berkeley) 01/12/94 851220Seric 951220Seric 1057246SericThis document describes the sendmail configuration files being used 1163857Sericat Berkeley. These use features in the new (R8) 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. 3465002SericSunOS's /usr/5bin/m4 or BSD-Net/2's m4 both work. GNU m4 version 1.1 3565002Sericalso works. Unfortunately, I'm told that the M4 on BSDI 1.0 doesn't 3665002Sericwork -- you'll have to use a Net/2 or GNU version. 3751220Seric 3858284SericIF YOU DON'T HAVE A BERKELEY MAKE, don't despair! Just run 3964371Seric"m4 foo.mc > foo.cf" -- that should be all you need. There is also 4064371Serica fairly crude (but functional) Makefile.dist that works on the 4164371Sericold version of make. 4258284Seric 4358284SericTo get started, you may want to look at tcpproto.mc (for TCP-only 4464324Sericsites), uucpproto.mc (for UUCP-only sites), and clientproto.mc (for 4564324Sericclusters of clients using a single mail host). Others are versions 4658284Sericthat we use at Berkeley, although not all are in current use. For 4758284Sericexample, ucbarpa has gone away, but I've left ucbarpa.mc in because 4858284Sericit demonstrates some interesting techniques. 4958284Seric 5057246SericI'm not pretending that this README describes everything that these 5157246Sericconfiguration files can do; clever people can probably tweak them 5257246Sericto great effect. But it should get you started. 5357246Seric 5465509Seric******************************************************************* 5565509Seric*** BE SURE YOU CUSTOMIZE THESE FILES! They have some *** 5665509Seric*** Berkeley-specific assumptions built in, such as the name *** 5765509Seric*** of our UUCP-relay. You'll want to create your own domain *** 5865509Seric*** description, and use that in place of domain/Berkeley.m4. *** 5965509Seric******************************************************************* 6058087Seric 6165509Seric 6257246Seric+--------------------------+ 6357246Seric| INTRODUCTION AND EXAMPLE | 6457246Seric+--------------------------+ 6557246Seric 6657246SericConfiguration files are contained in the subdirectory "cf", with a 6757246Sericsuffix ".mc". They must be run through "m4" to produce a ".cf" file. 6857246Seric 6951220SericLet's examine a typical .mc file (cf/cs-exposed.mc): 7051220Seric 7151220Seric divert(-1) 7251220Seric # 7351220Seric # Copyright (c) 1983 Eric P. Allman 7451220Seric # Copyright (c) 1988 The Regents of the University of California. 7551220Seric # All rights reserved. 7651220Seric # 7751220Seric # Redistribution and use in source and binary forms are permitted 7851220Seric # provided that the above copyright notice and this paragraph are 7951220Seric # duplicated in all such forms and that any documentation, 8051220Seric # advertising materials, and other materials related to such 8151220Seric # distribution and use acknowledge that the software was developed 8251220Seric # by the University of California, Berkeley. The name of the 8351220Seric # University may not be used to endorse or promote products derived 8451220Seric # from this software without specific prior written permission. 8551220Seric # THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 8651220Seric # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 8751220Seric # WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 8851220Seric # 8951220Seric 9057246SericThe divert(-1) will delete the crud in the resulting output file. 9157247SericThe copyright notice is what your lawyers require. Our lawyers require 9257246Sericthe one that I've included in my files. A copyleft is a copyright by 9357246Sericanother name. 9451220Seric 9557246SericThe next line MUST be 9657246Seric 9751220Seric include(`../m4/cf.m4') 9851220Seric 9957246SericThis will pull in the M4 macros you will need to make sense of 10057246Sericeverything else. As the saying goes, don't think about it, just 10157246Sericdo it. If you don't do it, don't bother reading the rest of this 10257246Sericfile. 10351220Seric 10456778Seric VERSIONID(`<SCCS or RCS version id>') 10551220Seric 10651220SericVERSIONID is a macro that stuffs the version information into the 10751220Sericresulting file. We use SCCS; you could use RCS, something else, or 10857246Sericomit it completely. This is not the same as the version id included 10957246Sericin SMTP greeting messages -- this is defined in m4/version.m4. 11051220Seric 11151268Seric DOMAIN(cs.exposed) 11251220Seric 11351220SericThis example exposes the host inside of the CS subdomain -- that is, 11451220Sericit doesn't try to hide the name of the workstation to the outside 11551220Sericworld. Changing this to DOMAIN(cs.hidden) would have made outgoing 11651220Sericmessages refer to "<username>@CS.Berkeley.EDU" instead of using the 11763857Sericlocal hostname. Internally this is effected by using 11857246Seric"MASQUERADE_AS(CS.Berkeley.EDU)". 11951220Seric 12051268Seric MAILER(smtp) 12151220Seric 12251309SericThese describe the mailers used at the default CS site site. The 12351309Sericlocal mailer is always included automatically. 12451220Seric 12558087Seric 12657246Seric+--------+ 12757246Seric| OSTYPE | 12857246Seric+--------+ 12957246Seric 13051220SericNote that cf/cs-exposed.mc omits an OSTYPE macro -- this assumes 13151220Sericdefault Computer Science Division environment. There are several 13257247Sericexplicit environments available: bsd4.3, bsd4.4, hpux, irix, osf1, 13357247Sericriscos4.5, sunos3.5, sunos4.1, and ultrix4.1. These change things 13457247Sericlike the location of the alias file and queue directory. Some of 13557247Sericthese files are identical to one another. 13651220Seric 13757246SericOperating system definitions are easy to write. They may define 13857246Sericthe following variables (everything defaults, so an ostype file 13957246Sericmay be empty). 14051220Seric 14157246SericALIAS_FILE [/etc/aliases] The location of the text version 14259761Seric of the alias file(s). It can be a comma-separated 14359761Seric list of names. 14457246SericHELP_FILE [/usr/lib/sendmail.hf] The name of the file 14557246Seric containing information printed in response to 14657246Seric the SMTP HELP command. 14757246SericQUEUE_DIR [/var/spool/mqueue] The directory containing 14857246Seric queue files. 14957246SericSTATUS_FILE [/etc/sendmail.st] The file containing status 15057246Seric information. 15158087SericLOCAL_MAILER_PATH [/bin/mail] The program used to deliver local mail. 15264153SericLOCAL_MAILER_FLAGS [rmn] The flags used by the local mailer. The 15364153Seric flags lsDFM are always included. 15463761SericLOCAL_MAILER_ARGS [mail -d $u] The arguments passed to deliver local 15563761Seric mail. 15658087SericLOCAL_SHELL_PATH [/bin/sh] The shell used to deliver piped email. 15763791SericLOCAL_SHELL_FLAGS [eu] The flags used by the shell mailer. The 15863791Seric flags lsDFM are always included. 15963791SericLOCAL_SHELL_ARGS [sh -c $u] The arguments passed to deliver "prog" 16063791Seric mail. 16158087SericUSENET_MAILER_PATH [/usr/lib/news/inews] The name of the program 16258087Seric used to submit news. 16358087SericUSENET_MAILER_FLAGS [rlsDFMmn] The mailer flags for the usenet mailer. 16458087SericUSENET_MAILER_ARGS [-m -h -n] The command line arguments for the 16558087Seric usenet mailer. 16663857SericSMTP_MAILER_FLAGS [undefined] Flags added to SMTP mailer. Default 16763857Seric flags are `mDFMUX' (and `a' for esmtp mailer). 16863857SericUUCP_MAILER_FLAGS [undefined] Flags added to UUCP mailer. Default 16963857Seric flags are `DFMhuU' (and `m' for suucp mailer, minus 17063857Seric `U' for uucp-dom mailer). 17163761SericUUCP_MAILER_ARGS [uux - -r -z -a$f -gC $h!rmail ($u)] The arguments 17263761Seric passed to the UUCP mailer. 17363791SericUUCP_MAX_SIZE [100000] The maximum size message accepted for 17463791Seric transmission by the UUCP mailers. 17557246SericHOSTMAP_SPEC [dbm -o /etc/hostmap] The value for the builtin 17657246Seric hostmap key definition. You can redefine this 17757246Seric to change the class, flags, and filename of 17857246Seric the hostmap. The default flag (-o) makes this 17957246Seric map optional. 18057246Seric 18157246Seric+---------+ 18257246Seric| DOMAINS | 18357246Seric+---------+ 18457246Seric 18557246SericYou will probably want to collect domain-dependent defines into one 18657246Sericfile, referenced by the DOMAIN macro. For example, our Berkeley 18757246Sericdomain file includes definitions for several internal distinguished 18857246Serichosts: 18957246Seric 19057246SericUUCP_RELAY The host that will forward UUCP-addressed email. 19157246Seric If not defined, all UUCP sites must be directly 19264028Seric connected. 19357246SericBITNET_RELAY The host that will forward BITNET-addressed email. 19457246Seric If not defined, the .BITNET pseudo-domain won't work. 19557246SericLOCAL_RELAY The site that will handle unqualified names -- that 19657246Seric is, names with out an @domain extension. If not set, 19757246Seric they are assumed to belong on this machine. This 19857246Seric allows you to have a central site to store a 19957246Seric company- or department-wide alias database. This 20057246Seric only works at small sites, and there are better 20164028Seric methods. 20257246Seric 20364028SericEach of these can be either ``mailer:hostname'' (in which case the 20464028Sericmailer is the internal mailer name, such as ``suucp'' and the hostname 20564028Sericis the name of the host as appropriate for that mailer) or just a 20664028Seric``hostname'', in which case a default mailer type (usually ``relay'', 20764153Serica variant on SMTP) is used. WARNING: if you have a wildcard MX 20864153Sericrecord matching your domain, you probably want to define these to 20964153Serichave a trailing dot so that you won't get the mail diverted back 21064153Sericto yourself. 21164028Seric 21257246SericThe domain file can also be used to define a domain name, if needed 21357982Seric(using "DD<domain>") and set certain site-wide features. If all hosts 21457982Sericat your site masquerade behind one email name, you could also use 21557982SericMASQUERADE_AS here. 21657246Seric 21758408SericYou do not have to define a domain -- in particular, if you are a 21858408Sericsingle machine sitting off somewhere, it is probably more work than 21958408Sericit's worth. This is just a mechanism for combining "domain dependent 22058408Sericknowledge" into one place. 22158408Seric 22257246Seric+---------+ 22357246Seric| MAILERS | 22457246Seric+---------+ 22557246Seric 22651220SericThere are fewer mailers supported in this version than the previous 22751220Sericversion, owing mostly to a simpler world. 22851220Seric 22951220Sericlocal The local and prog mailers. You will almost always 23051220Seric need these; the only exception is if you relay ALL 23157247Seric your mail to another site. This mailer is included 23257247Seric automatically. 23351220Seric 23451220Sericsmtp The Simple Mail Transport Protocol mailer. This does 23551220Seric not hide hosts behind a gateway or another other 23651220Seric such hack; it assumes a world where everyone is 23763761Seric running the name server. This file actually defines 23863761Seric three mailers: "smtp" for regular (old-style) SMTP to 23963761Seric other servers, "esmtp" for extended SMTP to other 24063761Seric servers, and "relay" for transmission to our 24163761Seric RELAY_HOST or MAILER_HUB. 24251220Seric 24351220Sericuucp The Unix-to-Unix Copy Program mailer. Actually, this 24451220Seric defines two mailers, "uucp" and "suucp". The latter 24551220Seric is for when you know that the UUCP mailer at the other 24651220Seric end can handle multiple recipients in one transfer. 24757246Seric When you invoke this, sendmail looks for all names in 24865218Seric the $=U class and sends them to the uucp-old mailer; all 24965218Seric names in the $=Y class are sent to uucp-new; and all 25065218Seric names in the $=Z class are sent to uucp-uudom. Note that 25157246Seric this is a function of what version of rmail runs on 25257246Seric the receiving end, and hence may be out of your control. 25365218Seric If smtp is defined, it also defines "uucp-dom" and 25465218Seric "uucp-uudom" mailers that use domain-style rewriting. 25565218Seric See the section below describing UUCP mailers in more 25665218Seric detail. 25751220Seric 25858087Sericusenet Usenet (network news) delivery. If this is specified, 25958087Seric an extra rule is added to ruleset 0 that forwards all 26058087Seric local email for users named ``group.usenet'' to the 26158087Seric ``inews'' program. Note that this works for all groups, 26258087Seric and may be considered a security problem. 26358087Seric 26458363Sericfax Facsimile transmission. This is experimental and based 26558363Seric on Sam Leffler's FlexFAX software. For more information, 26658363Seric see below. 26758087Seric 26865148Sericpop Post Office Protocol. 26958363Seric 27065148Seric 27157246Seric+----------+ 27257246Seric| FEATURES | 27357246Seric+----------+ 27451268Seric 27557246SericSpecial features can be requested using the "FEATURE" macro. For 27657246Sericexample, the .mc line: 27757246Seric 27857246Seric FEATURE(use_cw_file) 27957246Seric 28057246Serictells sendmail that you want to have it read an /etc/sendmail.cw 28158782Sericfile to get values for class $=w. The FEATURE may contain a single 28258782Sericoptional parameter -- for example: 28357246Seric 28458782Seric FEATURE(mailertable, dbm /usr/lib/mailertable) 28558782Seric 28658782SericAvailable features are: 28758782Seric 28857246Sericuse_cw_file Read the file /etc/sendmail.cw file to get alternate 28957246Seric names for this host. This might be used if you were 29057246Seric on a host that MXed for a dynamic set of other 29157246Seric hosts. If the set is static, just including the line 29257246Seric "Cw<name1> <name2> ..." is probably superior. 29358408Seric The actual filename can be overridden by redefining 29458408Seric confCW_FILE. 29564324Seric 29658087Sericredirect Reject all mail addressed to "address.REDIRECT" with 29758087Seric a ``551 User not local; please try <address>'' message. 29858087Seric If this is set, you can alias people who have left 29958087Seric to their new address with ".REDIRECT" appended. 30064324Seric 30158284Sericnouucp Don't do anything special with UUCP addresses at all. 30264324Seric 30359080Sericnocanonify Don't pass addresses to $[ ... $] for canonification. 30459080Seric This would generally only be used by sites that only 30559080Seric act as mail gateways or which have user agents that do 30664028Seric full canonification themselves. You may also want to 30764028Seric use "define(`confBIND_OPTS',`-DNSRCH -DEFNAMES')" to 30864028Seric turn off the usual resolver options that do a similar 30964028Seric thing. 31064324Seric 31158526Sericnotsticky By default, email sent to "user@local.host" are marked 31258526Seric as "sticky" -- that is, the local addresses aren't 31358526Seric matched against UDB and don't go through ruleset 5. 31458526Seric This features disables this treatment. It would 31558526Seric normally be used on network gateway machines. 31664324Seric 31758782Sericmailertable Include a "mailer table" which can be used to override 31858782Seric routing for particular domains. The argument of the 31958782Seric FEATURE may be the key definition. If none is specified, 32058782Seric the definition used is: 32164164Seric hash -o /etc/mailertable 32263761Seric Keys in this database are fully qualified domain names 32363761Seric or partial domains preceded by a dot -- for example, 32463761Seric "vangogh.CS.Berkeley.EDU" or ".CS.Berkeley.EDU". 32563761Seric Values must be of the form: 32658782Seric mailer:domain 32763761Seric where "mailer" is the internal mailer name, and "domain" 32863761Seric is where to send the message. These maps are not 32963761Seric reflected into the message header. 33064324Seric 33163761Sericdomaintable Include a "domain table" which can be used to provide 33263761Seric full domains on unqualified (single word) hosts. The 33363761Seric argument of the FEATURE may be the key definition. If 33463761Seric none is specified, the definition used is: 33564164Seric hash -o /etc/domaintable 33663761Seric The key in this table is the unqualified host name; the 33763761Seric value is the fully qualified domain. Anything in the 33863761Seric domaintable is reflected into headers; that is, this 33963761Seric is done in ruleset 3. 34064324Seric 34159034Sericbitdomain Look up bitnet hosts in a table to try to turn them into 34259034Seric internet addresses. The table can be built using the 34364153Seric bitdomain program contributed by John Gardiner Myers. 34459034Seric The argument of the FEATURE may be the key definition; if 34559034Seric none is specified, the definition used is: 34664164Seric hash -o /etc/bitdomain.db 34759034Seric Keys are the bitnet hostname; values are the corresponding 34859034Seric internet hostname. 34964324Seric 35059037Sericuucpdomain Similar feature for UUCP hosts. The default map definition 35159037Seric is: 35264164Seric hash -o /etc/uudomain.db 35359037Seric At the moment there is no automagic tool to build this 35459037Seric database. 35564324Seric 35660263Sericalways_add_domain 35760263Seric Include the local host domain even on locally delivered 35860263Seric mail. Normally it is not added unless it is already 35960263Seric present. 36064324Seric 36163761Sericallmasquerade If masquerading is enabled (using MASQUERADE_AS), this 36263761Seric feature will cause recipient addresses to also masquerade 36363761Seric as being from the masquerade host. Normally they get 36463761Seric the local hostname. Although this may be right for 36563761Seric ordinary users, it can break local aliases. For example, 36663761Seric if you send to "localalias", the originating sendmail will 36763761Seric find that alias and send to all members, but send the 36863761Seric message with "To: localalias@masqueradehost". Since that 36963761Seric alias likely does not exist, replies will fail. Use this 37063761Seric feature ONLY if you can guarantee that the ENTIRE 37163761Seric namespace on your masquerade host supersets all the 37263761Seric local entries. 37364324Seric 37464153Sericnodns We aren't running DNS at our site (for example, 37564153Seric we are UUCP-only connected). It's hard to consider 37664153Seric this a "feature", but hey, it had to go somewhere. 37757246Seric 37864324Sericnullclient This is a special case -- it creates a stripped down 37964324Seric configuration file containing nothing but support for 38064394Seric forwarding all mail to a central hub via a local 38164394Seric SMTP-based network. The argument is the name of that 38264394Seric hub. 38364394Seric 38464394Seric The only other feature that should be used in conjunction 38564394Seric with this one is "nocanonify" (this causes addresses to 38664394Seric be sent unqualified via the SMTP connection; normally 38764394Seric they are qualifed with the masquerade name, which 38864394Seric defaults to the name of the hub machine). No mailers 38964394Seric should be defined. No aliasing or forwarding is done. 39057246Seric 39164324Seric 39257246Seric+-------+ 39357246Seric| HACKS | 39457246Seric+-------+ 39557246Seric 39657246SericSome things just can't be called features. To make this clear, 39757247Sericthey go in the hack subdirectory and are referenced using the HACK 39857246Sericmacro. These will tend to be site-dependent. The release 39957246Sericincludes the Berkeley-dependent "cssubdomain" hack (that makes 40057246Sericsendmail accept local names in either Berkeley.EDU or CS.Berkeley.EDU; 40157246Sericthis is intended as a short-term aid while we move hosts into 40257246Sericsubdomains. 40357246Seric 40458087Seric 40557246Seric+--------------------+ 40657246Seric| SITE CONFIGURATION | 40757246Seric+--------------------+ 40857246Seric 40957246SericComplex sites will need more local configuration information, such as 41057246Sericlists of UUCP hosts they speak with directly. This can get a bit more 41157246Serictricky. For an example of a "complex" site, see cf/ucbvax.mc. 41257246Seric 41357246SericThe SITECONFIG macro allows you to indirectly reference site-dependent 41457246Sericconfiguration information stored in the siteconfig subdirectory. For 41557246Sericexample, the line 41657246Seric 41757246Seric SITECONFIG(uucp.ucbvax, ucbvax, U) 41857246Seric 41957246Sericreads the file uucp.ucbvax for local connection information. The 42057246Sericsecond parameter is the local name (in this case just "ucbvax" since 42157246Sericit is locally connected, and hence a UUCP hostname) and the name of 42257246Sericthe class in which to store the host information. Another SITECONFIG 42357246Sericline reads 42457246Seric 42557246Seric SITECONFIG(uucp.ucbarpa, ucbarpa.Berkeley.EDU, W) 42657246Seric 42757246SericThis says that the file uucp.ucbarpa contains the list of UUCP sites 42857246Sericconnected to ucbarpa.Berkeley.EDU. The $=W class will be used to 42957246Sericstore this list. [The machine ucbarpa is gone now, but I've left 43057246Sericthis out-of-date configuration file around to demonstrate how you 43157246Sericmight do this.] 43257246Seric 43357246SericThe siteconfig file (e.g., siteconfig/uucp.ucbvax.m4) contains nothing 43457246Sericmore than a sequence of SITE macros describing connectivity. For 43557246Sericexample: 43657246Seric 43757246Seric SITE(cnmat) 43857246Seric SITE(sgi olympus) 43957246Seric 44057246SericThe second example demonstrates that you can use two names on the 44157246Sericsame line; these are usually aliases for the same host (or are at 44257246Sericleast in the same company). 44357246Seric 44458087Seric 44565218Seric+--------------------+ 44665218Seric| USING UUCP MAILERS | 44765218Seric+--------------------+ 44865218Seric 44965218SericIt's hard to get UUCP mailers right because of the extremely ad hoc 45065218Sericnature of UUCP addressing. These config files are really designed 45165218Sericfor domain-based addressing, even for UUCP sites. 45265218Seric 45365218SericThere are four UUCP mailers available. The choice of which one to 45465218Sericuse is partly a matter of local preferences and what is running at 45565218Sericthe other end of your UUCP connection. Unlike good protocols that 45665218Sericdefine what will go over the wire, UUCP uses the policy that you 45765218Sericshould do what is right for the other end; if they change, you have 45865218Sericto change. This makes it hard to do the right thing, and discourages 45965218Sericpeople from updating their software. In general, if you can avoid 46065218SericUUCP, please do. 46165218Seric 46265218SericThe major choice is whether to go for a domainized scheme or a 46365218Sericnon-domainized scheme. This depends entirely on what the other 46465218Sericend will recognize. If at all possible, you should encourage the 46565218Sericother end to go to a domain-based system -- non-domainized addresses 46665218Sericdon't work entirely properly. 46765218Seric 46865218SericThe four mailers are: 46965218Seric 47065218Seric uucp-old (obsolete name: "uucp") 47165218Seric This is the oldest, the worst (but the closest to UUCP) way of 47265218Seric sending messages accros UUCP connections. It does bangify 47365218Seric everything and prepends $U (your UUCP name) to the sender's 47465218Seric address (which can already be a bang path itself). It can 47565218Seric only send to one address at a time, so it spends a lot of 47665218Seric time copying duplicates of messages. Avoid this if at all 47765218Seric possible. 47865218Seric 47965218Seric uucp-new (obsolete name: "suucp") 48065218Seric The same as above, except that it assumes that in one rmail 48165218Seric command you can specify several recipients. It still has a 48265218Seric lot of other problems. 48365218Seric 48465218Seric uucp-dom 48565218Seric This UUCP mailer keeps everything as domain addresses. 48665218Seric Basically, it uses the SMTP mailer rewriting rules. 48765218Seric 48865218Seric Unfortunately, a lot of UUCP mailer transport agents require 48965218Seric bangified addresses in the envelope, although you can use 49065218Seric domain-based addresses in the message header. (The envelope 49165218Seric shows up as the From_ line on UNIX mail.) So.... 49265218Seric 49365218Seric uucp-uudom 49465218Seric This is a cross between uucp-new (for the envelope addresses) 49565218Seric and uucp-dom (for the header addresses). It bangifies the 49665218Seric envelope sender (From_ line in messages) without adding the 49765218Seric local hostname, unless there is no host name on the address 49865218Seric at all (e.g., "wolf") or the host component is a UUCP host name 49965218Seric instead of a domain name ("somehost!wolf" instead of 50065218Seric "some.dom.ain!wolf"). 50165218Seric 50265218SericExamples: 50365218Seric 50465218SericWe are on host grasp.insa-lyon.fr (UUCP host name "grasp"). The 50565218Sericfollowing summarizes the sender rewriting for various mailers. 50665218Seric 50765218SericMailer sender rewriting in the envelope 50865218Seric------ ------ ------------------------- 50965218Sericuucp-{old,new} wolf grasp!wolf 51065218Sericuucp-dom wolf wolf@grasp.insa-lyon.fr 51165218Sericuucp-uudom wolf grasp.insa-lyon.fr!wolf 51265218Seric 51365218Sericuucp-{old,new} wolf@fr.net grasp!fr.net!wolf 51465218Sericuucp-dom wolf@fr.net wolf@fr.net 51565218Sericuucp-uudom wolf@fr.net fr.net!wolf 51665218Seric 51765218Sericuucp-{old,new} somehost!wolf grasp!somehost!wolf 51865218Sericuucp-dom somehost!wolf somehost!wolf@grasp.insa-lyon.fr 51965218Sericuucp-uudom somehost!wolf grasp.insa-lyon.fr!somehost!wolf 52065218Seric 52165218SericIf you are using one of the domainized UUCP mailers, you really want 52265218Sericto convert all UUCP addresses to domain format -- otherwise, it will 52365218Sericdo it for you (and probably not the way you expected). For example, 52465218Sericif you have the address foo!bar!baz (and you are not sending to foo), 52565218Sericthe heuristics will add the @uucp.relay.name or @local.host.name to 52665218Sericthis address. However, if you map foo to foo.host.name first, it 52765218Sericwill not add the local hostname. You can do this using the uucpdomain 52865218Sericfeature. 52965218Seric 53065218Seric 53157246Seric+-------------------+ 53257246Seric| TWEAKING RULESETS | 53357246Seric+-------------------+ 53457246Seric 53551268SericFor more complex configurations, you can define special rules. 53651268SericThe macro LOCAL_RULE_3 introduces rules that are used in canonicalizing 53751268Sericthe names. Any modifications made here are reflected in the header. 53851268Seric 53951268SericA common use is to convert old UUCP addreses to SMTP addresses using 54051268Sericthe UUCPSMTP macro. For example: 54151268Seric 54251268Seric LOCAL_RULE_3 54351268Seric UUCPSMTP(decvax, decvax.dec.com) 54451268Seric UUCPSMTP(research, research.att.com) 54551268Seric 54651268Sericwill cause addresses of the form "decvax!user" and "research!user" 54751268Sericto be converted to "user@decvax.dec.com" and "user@research.att.com" 54851268Sericrespectively. 54951268Seric 55057246SericThis could also be used to look hosts in a database map: 55157246Seric 55257246Seric LOCAL_RULE_3 55357246Seric R$* < @ $+ > $* $: $1 < @ $(hostmap $2 $) > $3 55457246Seric 55557246SericThis map would be defined in the LOCAL_CONFIG portion, as shown below. 55657246Seric 55751268SericSimilarly, LOCAL_RULE_0 can be used to introduce new parsing rules. 55851268SericFor example, new rules are needed to parse hostnames that you accept 55951309Sericvia MX records. For example, you might have: 56051268Seric 56151309Seric LOCAL_RULE_0 56251309Seric R$+ < @ cnmat.Berkeley.EDU > $#uucp $@ cnmat $: $1 56351309Seric 56451309SericYou would use this if you had installed an MX record for cnmat.Berkeley.EDU 56551309Sericpointing at this host; this rule catches the message and forwards it on 56651309Sericusing UUCP. 56751309Seric 56858681SericYou can also tweak rulesets 1 and 2 using LOCAL_RULE_1 and LOCAL_RULE_2. 56958681SericThese rulesets are normally empty. 57058681Seric 57157246SericA similar macro is LOCAL_CONFIG. This introduces lines added after the 57257246Sericboilerplate option setting but before rulesets, and can be used to 57357945Sericdeclare local database maps or whatever. For example: 57451268Seric 57557246Seric LOCAL_CONFIG 57657246Seric Khostmap hash /etc/hostmap.db 57757246Seric Kyplocal nis -m hosts.byname 57851220Seric 57958087Seric 58057246Seric+---------------------------+ 58157246Seric| MASQUERADING AND RELAYING | 58257246Seric+---------------------------+ 58357246Seric 58457246SericYou can have your host masquerade as another using 58557246Seric 58657246Seric MASQUERADE_AS(host.domain) 58757246Seric 58857246SericThis causes outgoing SMTP mail to be labelled as coming from the 58957246Sericindicated domain, rather than $j. One normally masquerades as one 59057246Sericof your own subdomains (for example, it's unlikely that I would 59157246Sericchoose to masquerade as an MIT site). 59257246Seric 59364153SericThe masquerade name is not normally canonified, so it is important 59464153Sericthat it be your One True Name, that is, fully qualified and not a 59564153SericCNAME. 59664153Seric 59757246Sericthere are always users that need to be "exposed" -- that is, their 59857246Sericinternal site name should be displayed instead of the masquerade name. 59957246SericRoot is an example. You can add users to this list using 60057246Seric 60157246Seric EXPOSED_USER(usernames) 60257246Seric 60357246SericThis adds users to class E; you could also use something like 60457246Seric 60557246Seric FE/etc/sendmail.cE 60657246Seric 60757246SericYou can also arrange to relay all unqualified names (that is, names 60857246Sericwithout @host) to a relay host. For example, if you have a central 60957246Sericemail server, you might relay to that host so that users don't have 61057246Sericto have .forward files or aliases. You can do this using 61157246Seric 61258071Seric define(`LOCAL_RELAY', mailer:hostname) 61357246Seric 61458071SericThe ``mailer:'' can be omitted, in which case the mailer defaults to 61558071Seric"smtp". There are some user names that you don't want relayed, perhaps 61658071Sericbecause of local aliases. A common example is root, which may be 61758071Sericlocally aliased. You can add entries to this list using 61857246Seric 61957246Seric LOCAL_USER(usernames) 62057246Seric 62157246SericThis adds users to class L; you could also use something like 62257246Seric 62357246Seric FL/etc/sendmail.cL 62457246Seric 62564153SericIf you want all incoming mail sent to a centralized hub, as for a 62664153Sericshared /var/spool/mail scheme, use 62757591Seric 62858071Seric define(`MAIL_HUB', mailer:hostname) 62957591Seric 63058071SericAgain, ``mailer:'' defaults to "smtp". If you define both LOCAL_RELAY 63158071Sericand MAIL_HUB, unqualified names and names in class L will be sent to 63258071Sericthe LOCAL_RELAY and other local names will be sent to MAIL_HUB. For 63358071Sericexample, if are on machine mastodon.CS.Berkeley.EDU, the following 63458071Sericcombinations of settings will have the indicated effects: 63557591Seric 63657591Sericemail sent to.... eric eric@mastodon.CS.Berkeley.EDU 63757591Seric 63857591SericLOCAL_RELAY set to mail.CS.Berkeley.EDU (delivered locally) 63957591Sericmail.CS.Berkeley.EDU 64057591Seric 64157591SericMAIL_HUB set to mammoth.CS.Berkeley.EDU mammoth.CS.Berkeley.EDU 64257591Sericmammoth.CS.Berkeley.EDU 64357591Seric 64457591SericBoth LOCAL_RELAY and mail.CS.Berkeley.EDU mammoth.CS.Berkeley.EDU 64557591SericMAIL_HUB set as above 64657591Seric 64764153SericIf you want all outgoing mail to go to a central relay site, define 64864153SericSMART_HOST as well. Briefly: 64958071Seric 65064153Seric LOCAL_RELAY applies to unqualifed names (e.g., "eric"). 65164153Seric MAIL_HUB applies to names qualified with the name of the 65264153Seric local host (e.g., "eric@mastodon.CS.Berkeley.EDU"). 65364153Seric SMART_HOST applies to names qualified with other hosts. 65464153Seric 65564153SericHowever, beware that other relays (e.g., UUCP_RELAY, BITNET_RELAY, and 65664153SericFAX_RELAY) take precedence over SMART_HOST, so if you really want 65764153Sericabsolutely everything to go to a single central site you will need to 65864153Sericunset all the other relays -- or better yet, find or build a minimal 65964153Sericconfig file that does this. 66064153Seric 66164153Seric 66258071Seric+-------------------------------+ 66358071Seric| NON-SMTP BASED CONFIGURATIONS | 66458071Seric+-------------------------------+ 66558071Seric 66658071SericThese configuration files are designed primarily for use by SMTP-based 66758071Sericsites. I don't pretend that they are well tuned for UUCP-only or 66858071SericUUCP-primarily nodes (the latter is defined as a small local net 66958071Sericconnected to the rest of the world via UUCP). However, there is one 67058071Serichook to handle some special cases. 67158071Seric 67258071SericYou can define a ``smart host'' that understands a richer address syntax 67358071Sericusing: 67458071Seric 67558071Seric define(`SMART_HOST', mailer:hostname) 67658071Seric 67764028SericIn this case, the ``mailer:'' defaults to "relay". Any messages that 67858071Sericcan't be handled using the usual UUCP rules are passed to this host. 67958071Seric 68058071SericIf you are on a local SMTP-based net that connects to the outside 68158071Sericworld via UUCP, you can use LOCAL_NET_CONFIG to add appropriate rules. 68258071SericFor example: 68358071Seric 68458071Seric define(`SMART_HOST', suucp:uunet) 68558071Seric LOCAL_NET_CONFIG 68663761Seric R$* < @ $* .$m. > $* $#smtp $@ $2.$m. $: $1 < @ $2.$m. > $3 68758071Seric 68858071SericThis will cause all names that end in your domain name ($m) via 68958071SericSMTP; anything else will be sent via suucp (smart UUCP) to uunet. 69063761SericIf you have FEATURE(nocanonify), you may need to omit the dots after 69163761Sericthe $m. If you are running a local DNS inside your domain which is 69263761Sericnot otherwise connected to the outside world, you probably want to 69363761Sericuse: 69458071Seric 69563761Seric define(`SMART_HOST', smtp:fire.wall.com) 69663761Seric LOCAL_NET_CONFIG 69763761Seric R$* < @ $* . > $* $#smtp $@ $2. $: $1 < @ $2. > $3 69858071Seric 69963761SericThat is, send directly only to things you found in your DNS lookup; 70063761Sericanything else goes through SMART_HOST. 70163761Seric 70264153SericIf you are not running DNS at all, it is important to use 70364153SericFEATURE(nodns) to avoid having sendmail queue everything waiting 70464153Sericfor the name server to come up. 70563761Seric 70664153Seric 70764259Seric+-----------+ 70864259Seric| WHO AM I? | 70964259Seric+-----------+ 71064259Seric 71164259SericNormally, the $j macro is automatically defined to be your fully 71264259Sericqualified domain name (FQDN). Sendmail does this by getting your 71364259Serichost name using gethostname and then calling gethostbyname on the 71464259Sericresult. For example, in some environments gethostname returns 71564259Sericonly the root of the host name (such as "foo"); gethostbyname is 71664259Sericsupposed to return the FQDN ("foo.bar.com"). In some (fairly rare) 71764259Sericcases, gethostbyname may fail to return the FQDN. In this case 71864259Sericyou MUST define confDOMAIN_NAME to be your fully qualified domain 71964259Sericname. This is usually done using: 72064259Seric 72164259Seric Dmbar.com 72264259Seric define(`confDOMAIN_NAME', `$w.$m')dnl 72364259Seric 72464259Seric 72564028Seric+--------------------+ 72664028Seric| USING MAILERTABLES | 72764028Seric+--------------------+ 72864028Seric 72964028SericTo use FEATURE(mailertable), you will have to create an external 73064028Sericdatabase containing the routing information for various domains. 73164028SericFor example, a mailertable file in text format might be: 73264028Seric 73364028Seric .my.domain xnet:%1.my.domain 73464028Seric uuhost1.my.domain suucp:uuhost1 73564028Seric .bitnet smtp:relay.bit.net 73664028Seric 73764028SericThis should normally be stored in /etc/mailertable. The actual 73864028Sericdatabase version of the mailertable is built using: 73964028Seric 74064028Seric makemap hash /etc/mailertable.db < /etc/mailertable 74164028Seric 74264028SericThe semantics are simple. Any LHS entry that does not begin with 74364028Serica dot matches the full host name indicated. LHS entries beginning 74464028Sericwith a dot match anything ending with that domain name -- that is, 74564028Sericthey can be thought of as having a leading "*" wildcard. Matching 74664028Sericis done in order of most-to-least qualified -- for example, even 74764028Sericthough ".my.domain" is listed first in the above example, an entry 74864028Sericof "uuhost1.my.domain" will match the second entry since it is 74964028Sericmore explicit. 75064028Seric 75164028SericThe RHS should always be a "mailer:host" pair. The mailer is the 75264028Sericconfiguration name of a mailer (that is, an `M' line in the 75364028Sericsendmail.cf file). The "host" will be the hostname passed to 75464028Sericthat mailer. In domain-based matches (that is, those with leading 75564028Sericdots) the "%1" may be used to interpolate the wildcarded part of 75664028Sericthe host name. For example, the first line above sends everything 75764028Sericaddressed to "anything.my.domain" to that same host name, but using 75864028Sericthe (presumably experimental) xnet mailer. 75964028Seric 76064028Seric 76164153Seric+--------------------------------+ 76264153Seric| USING USERDB TO MAP FULL NAMES | 76364153Seric+--------------------------------+ 76464153Seric 76564153SericThe user database was not originally intended for mapping full names 76664153Sericto login names (e.g., Eric.Allman => eric), but some people are using 76764153Sericit that way. (I would recommend that you set up aliases for this 76864153Sericpurpose instead -- since you can specify multiple alias files, this 76964153Sericis fairly easy.) The intent was to locate the default maildrop at 77064153Serica site, but allow you to override this by sending to a specific host. 77164153Seric 77264153SericIf you decide to set up the user database in this fashion, it is 77364153Sericimperative that you also specify FEATURE(notsticky) -- otherwise, 77464153Serice-mail sent to Full.Name@local.host.name will be rejected. 77564153Seric 77664259SericTo build the internal form of the user databae, use: 77764153Seric 77864259Seric makemap btree /usr/data/base.db < /usr/data/base.txt 77964259Seric 78064259Seric 78158363Seric+------------------+ 78258363Seric| FlexFAX SOFTWARE | 78358363Seric+------------------+ 78458363Seric 78558363SericSam Leffler's FlexFAX software is still in beta test -- but he expects a 78658363Sericpublic version out "later this week" [as of 3/1/93]. The following 78758363Sericblurb is direct from Sam: 78858363Seric 78964498Seric $Header: /usr/people/sam/fax/RCS/HOWTO,v 1.14 93/05/24 11:42:16 sam Exp $ 79058363Seric 79158363Seric How To Obtain This Software (in case all you get is this file) 79264498Seric -------------------------------------------------------------- 79358363Seric The source code is available for public ftp on 79464498Seric sgi.com sgi/fax/v2.1.src.tar.Z 79558363Seric (192.48.153.1) 79658363Seric 79758363Seric You can also obtain inst'able images for Silicon Graphics machines from 79864498Seric sgi.com sgi/fax/v2.1.inst.tar 79958363Seric (192.48.153.1) 80058363Seric 80158363Seric For example, 80258363Seric % ftp -n sgi.com 80358363Seric .... 80458363Seric ftp> user anonymous 80558363Seric ... <type in password> 80658363Seric ftp> cd sgi/fax 80758363Seric ftp> binary 80864498Seric ftp> get v2.1.src.tar.Z 80958363Seric 81064498Seric In general, the latest version of the 2.1 release of the software is 81164498Seric always available as "v2.1.src.tar.Z" or "v2.1.inst.tar" in the ftp 81264498Seric directory. This file is a link to the appropriate released version (so 81364498Seric don't waste your time retrieving the linked file as well!) Any files of 81464498Seric the form v2.1.*.patch are shell scripts that can be used to patch older 81564498Seric versions of the source code. For example, the file v2.1.0.patch would 81664498Seric contain patches to update v2.1.0.tar.Z. (Note to beta testers: this is 81764498Seric different than the naming conventions used during beta testing.) Patch 81864498Seric files only work to go between consecutive versions, so if you are 81964498Seric multiple versions behind the latest release, you will need to apply 82064498Seric each patch file between your current version and the latest. 82164498Seric 82264498Seric 82364498Seric Obtaining the Software by Electronic Mail 82464498Seric ----------------------------------------- 82564498Seric Do not send me requests for the software; they will be ignored (without 82664498Seric response). If you cannot use FTP at all, there is a service called 82764498Seric "ftpmail" available from gatekeeper.dec.com: you can send e-mail to 82864498Seric this machine and it will use FTP to retrieve files for you and send you 82964498Seric the files back again via e-mail. To find out more about the ftpmail 83058363Seric service, send a message to "ftpmail@gatekeeper.dec.com" whose body 83158363Seric consists of the single line "help". 83258363Seric 83364498Seric 83464498Seric Obtaining the Software Within Silicon Graphics 83564498Seric ---------------------------------------------- 83658363Seric Internal to Silicon Graphics there are inst'able images on the host 83764498Seric flake.asd in the directory /usr/dist. Thus you can do something like: 83858363Seric 83964498Seric % inst -f flake.asd.sgi.com:/usr/dist/flexfax 84058363Seric 84164498Seric to install the latest version of the software on your machine. 84258363Seric 84364498Seric 84464498Seric What to do Once You've Retrieved Stuff 84564498Seric -------------------------------------- 84658363Seric The external distributions come in a compressed or uncompressed tar 84758363Seric file. To extract the source distribution: 84858363Seric 84964498Seric % zcat v2.1.src.tar.Z | tar xf - 85058363Seric 85158363Seric (uncompress and extract individual files in current directory). To 85258363Seric unpack and install the client portion of the inst'able distribution: 85358363Seric 85458363Seric % mkdir dist 85564498Seric % cd dist; tar xf ../v2.1.inst.tar; cd .. 85658363Seric % inst -f dist/flexfax 85758363Seric ... 85858363Seric inst> go 85958363Seric 86058363Seric (Note, the dist subdirectory is because some versions of inst fail if 86164498Seric the files are in the current directory.) Server binaries are also 86264498Seric included in the inst'able images as flexfax.server.*. They are not 86364498Seric installed by default, so to get them also you need to do: 86458363Seric 86558363Seric % inst -f flexfax 86658363Seric ... 86758363Seric inst> install flexfax.server.* 86858363Seric inst> go 86958363Seric 87064498Seric The SGI binaries were built for Version 4.0.5H of the IRIX operating 87158363Seric system. They should work w/o problem on earlier versions of the 87258363Seric system, but I have not fully tested this. Also, note that to install a 87358363Seric server on an SGI machine, you need to have installed the Display 87458363Seric PostScript execution environment product (dps_eoe). Otherwise, the fax 87558363Seric server will not be able to convert PostScript to facsimile for 87658363Seric transmission. 87758363Seric 87864498Seric If you are working from the source distribution, look at the file 87964498Seric README in the top of the source tree. If you are working from the inst 88064498Seric images, the subsystem flexfax.man.readme contains the README file and 88164498Seric other useful pieces of information--the installed files are placed in 88264498Seric the directory /usr/local/doc/flexfax). Basically you will need to run 88364498Seric the faxaddmodem script to setup and configure your fax modem. Consult 88464498Seric the README file and the manual page for faxaddmodem for information. 88558363Seric 88658363Seric 88764498Seric FlexFAX Mail List 88864498Seric ----------------- 88958363Seric A mailing list for users of this software is located on sgi.com. 89058363Seric If you want to join this mailing list or have a list-related request 89158363Seric such as getting your name removed from it, send a request to 89258363Seric 89364498Seric majordomo@whizzer.wpd.sgi.com 89458363Seric 89564498Seric For example, to subscribe, send the line "subscribe flexfax" in 89664498Seric the body of your message. The line "help" will return a list of 89764498Seric the commands understood by the mailing list management software. 89864498Seric 89958363Seric Submissions (including bug reports) should be directed to: 90058363Seric 90158363Seric flexfax@sgi.com 90258363Seric 90364498Seric When corresponding about this software please always specify what 90464498Seric version you have, what system you're running on, and, if the problem is 90564498Seric specific to your modem, identify the modem and firmware revision. 90658363Seric 90764498Seric 90857945Seric+--------------------------------+ 90957945Seric| TWEAKING CONFIGURATION OPTIONS | 91057945Seric+--------------------------------+ 91157945Seric 91257945SericThere are a large number of configuration options that don't normally 91357945Sericneed to be changed. However, if you feel you need to tweak them, you 91457945Sericcan define the following M4 variables. This list is shown in four 91557945Sericcolumns: the name you define, the default value for that definition, 91657945Sericthe option or macro that is affected (either Ox for an option or Dx 91757945Sericfor a macro), and a brief description. Greater detail of the semantics 91857945Sericcan be found in the Installation and Operations Guide. 91957945Seric 92063582SericSome options are likely to be deprecated in future versions -- that is, 92163582Sericthe option is only included to provide back-compatibility. These are 92263582Sericmarked with "*". 92363582Seric 92465002SericRemember that these options are M4 variables, and hence may need to 92565002Sericbe quoted. In particular, arguments with commas will usually have to 92665002Sericbe ``double quoted, like this phrase'' to avoid having the comma 92765002Sericconfuse things. This is common for alias file definitions and for 92865002Sericthe read timeout. 92965002Seric 93057945SericM4 Variable Name Default Mac/Opt Description 93165002Seric================ ======= ======= =========== 93257945SericconfMAILER_NAME MAILER-DAEMON Dn The sender name used for 93357945Seric internally generated 93457945Seric outgoing messages. 93558681SericconfFROM_LINE From $g $d Dl The From_ line used when 93658681Seric sending to files or programs. 93757945SericconfFROM_HEADER $?x$x <$g>$|$g$. The format of an internally 93857945Seric Dq generated From: address. 93957945SericconfOPERATORS .:%@!^/[] Do Address operator characters. 94064153SericconfSMTP_LOGIN_MSG $j Sendmail $v/$Z ready at $b 94157945Seric De The initial (spontaneous) 94257945Seric SMTP greeting message. 94359743SericconfSEVEN_BIT_INPUT False O7 Force input to seven bits? 94457945SericconfALIAS_WAIT 10 Oa Wait (in minutes) for alias 94557945Seric file rebuild. 94658087SericconfMIN_FREE_BLOCKS 4 Ob Minimum number of free blocks 94758087Seric on queue filesystem to accept 94858087Seric SMTP mail. 94957945SericconfBLANK_SUB . OB Blank (space) substitution 95057945Seric character. 951*65619SericconfCON_EXPENSIVE False Oc Avoid connecting immediately 952*65619Seric to mailers marked expensive? 95357945SericconfCHECKPOINT_INTERVAL 10 OC Checkpoint queue files 95457945Seric every N recipients. 95557945SericconfDELIVERY_MODE background Od Default delivery mode. 95657945SericconfAUTO_REBUILD False OD Automatically rebuild 95757945Seric alias file if needed. 95857945SericconfERROR_MODE (undefined) Oe Error message mode. 95957945SericconfERROR_MESSAGE (undefined) OE Error message header/file. 96057945SericconfSAVE_FROM_LINES False Of Save extra leading 96157945Seric From_ lines. 96257945SericconfTEMP_FILE_MODE 0600 OF Temporary file mode. 96357945SericconfDEF_GROUP_ID 1 Og Default group id. 96457945SericconfMATCH_GECOS False OG Match GECOS field. 96557945SericconfMAX_HOP 17 Oh Maximum hop count. 96663582SericconfIGNORE_DOTS False Oi * Ignore dot as terminator 96757945Seric for incoming messages? 96857945SericconfBIND_OPTS (empty) OI Default options for BIND. 96963582SericconfMIME_FORMAT_ERRORS True Oj * Send error messages as MIME- 97059743Seric encapsulated messages per 97159743Seric RFC 1344. 97264153SericconfFORWARD_PATH (undefined) OJ The colon-separated list of 97364153Seric places to search for .forward 97464153Seric files. 97557945SericconfMCI_CACHE_SIZE 2 Ok Size of open connection cache. 97657945SericconfMCI_CACHE_TIMEOUT 5m OK Open connection cache timeout. 97763582SericconfUSE_ERRORS_TO False Ol * Use the Errors-To: header to 97863582Seric deliver error messages. This 97963582Seric should not be necessary because 98063582Seric of general acceptance of the 98163582Seric envelope/header distinction. 98257945SericconfLOG_LEVEL 9 OL Log level. 98357945SericconfME_TOO False Om Include sender in group 98457945Seric expansions. 98557945SericconfCHECK_ALIASES True On Check RHS of aliases when 98657945Seric running newaliases. 98763582SericconfOLD_STYLE_HEADERS True Oo * Assume that headers without 98857945Seric special chars are old style. 98958859SericconfDAEMON_OPTIONS (undefined) OO SMTP daemon options. 99058806SericconfPRIVACY_FLAGS authwarnings Op Privacy flags. 99157945SericconfCOPY_ERRORS_TO (undefined) OP Address for additional copies 99257945Seric of all error messages. 99357945SericconfQUEUE_FACTOR (undefined) Oq Slope of queue-only function 99458116SericconfREAD_TIMEOUT (undefined) Or SMTP read timeouts. 99563582SericconfSAFE_QUEUE True Os * Commit all messages to disk 99657945Seric before forking. 99758806SericconfMESSAGE_TIMEOUT 5d/4h OT Timeout for messages before 99858806Seric sending error/warning message. 99959317SericconfTIME_ZONE USE_SYSTEM Ot Time zone info -- can be 100057945Seric USE_SYSTEM to use the system's 100157945Seric idea, USE_TZ to use the user's 100257945Seric TZ envariable, or something 100357945Seric else to force that value. 100457945SericconfDEF_USER_ID 1 Ou Default user id. 100558718SericconfUSERDB_SPEC (undefined) OU User database specification. 100658859SericconfFALLBACK_MX (undefined) OV Fallback MX host. 100763857SericconfTRY_NULL_MX_LIST False Ow If we are the best MX for a 100863857Seric host and haven't made other 100963857Seric arrangements, try connecting 101063857Seric to the host directly; normally 101163857Seric this would be a config error. 101257945SericconfQUEUE_LA 8 Ox Load average at which queue-only 101357945Seric function kicks in. 101457945SericconfREFUSE_LA 12 OX Load average at which incoming 101557945Seric SMTP connections are refused. 101663582SericconfWORK_RECIPIENT_FACTOR 101763582Seric (undefined) Oy Cost of each recipient. 101863582SericconfSEPARATE_PROC False OY Run all deliveries in a 101957945Seric separate process. 102057945SericconfWORK_CLASS_FACTOR (undefined) Oz Priority multiplier for class. 102157945SericconfWORK_TIME_FACTOR (undefined) OZ Cost of each delivery attempt. 102258408SericconfCW_FILE /etc/sendmail.cw Name of file used to get the 102358408Seric Fw local additions to the $=w 102458408Seric class. 102564153SericconfSMTP_MAILER smtp - The mailer name used when 102663972Seric SMTP connectivity is required. 102763972Seric Either "smtp" or "esmtp". 102863999SericconfLOCAL_MAILER local - The mailer name used when 102963999Seric local connectivity is required. 103063999Seric Almost always "local". 103164028SericconfRELAY_MAILER relay - The default mailer name used 103264028Seric for relaying any mail (e.g., 103364028Seric to a BITNET_RELAY, a 103464028Seric SMART_HOST, or whatever). 103564028Seric This can reasonably be "suucp" 103664028Seric if you are on a UUCP-connected 103764028Seric site. 103864259SericconfDOMAIN_NAME (undefined) Dj If defined, sets $j. 103957945Seric 104058087Seric 104157246Seric+-----------+ 104257246Seric| HIERARCHY | 104357246Seric+-----------+ 104457246Seric 104551220SericWithin this directory are several subdirectories, to wit: 104651220Seric 104751220Sericm4 General support routines. These are typically 104851220Seric very important and should not be changed without 104957247Seric very careful consideration. 105051220Seric 105151220Sericcf The configuration files themselves. They have 105251220Seric ".mc" suffixes, and must be run through m4 to 105351220Seric become complete. The resulting output should 105451220Seric have a ".cf" suffix. 105551220Seric 105651220Sericostype Definitions describing a particular operating 105751220Seric system type. These should always be referenced 105851220Seric using the OSTYPE macro in the .mc file. Examples 105951220Seric include "bsd4.3", "bsd4.4", "sunos3.5", and 106051220Seric "sunos4.1". 106151220Seric 106251220Sericdomain Definitions describing a particular domain, referenced 106351220Seric using the DOMAIN macro in the .mc file. These are 106451220Seric site dependent; for example, we contribute "cs.exposed.m4" 106551220Seric and "cs.hidden.m4" which both describe hosts in the 106651220Seric CS.Berkeley.EDU subdomain; the former displays the local 106751220Seric hostname (e.g., mammoth.CS.Berkeley.EDU), whereas the 106851220Seric latter does its best to hide the identity of the local 106951220Seric workstation inside the CS subdomain. 107051220Seric 107151220Sericmailer Descriptions of mailers. These are referenced using 107251220Seric the MAILER macro in the .mc file. 107351220Seric 107451220Sericsh Shell files used when building the .cf file from the 107551220Seric .mc file in the cf subdirectory. 107651220Seric 107751220Sericfeature These hold special orthogonal features that you might 107851220Seric want to include. They should be referenced using 107951220Seric the FEATURE macro. 108051220Seric 108151220Serichack Local hacks. These can be referenced using the HACK 108251220Seric macro. They shouldn't be of more than voyeuristic 108351220Seric interest outside the .Berkeley.EDU domain, but who knows? 108451220Seric We've all got our own peccadilloes. 108551220Seric 108651268Sericsiteconfig Site configuration -- e.g., tables of locally connected 108751268Seric UUCP sites. 108851220Seric 108951268Seric 109057246Seric+------------------------+ 109157246Seric| ADMINISTRATIVE DETAILS | 109257246Seric+------------------------+ 109351220Seric 109451220SericThe following sections detail usage of certain internal parts of the 109551220Sericsendmail.cf file. Read them carefully if you are trying to modify 109651220Sericthe current model. If you find the above descriptions adequate, these 109751220Sericshould be {boring, confusing, tedious, ridiculous} (pick one or more). 109851220Seric 109951220SericRULESETS (* means built in to sendmail) 110051220Seric 110151220Seric 0 * Parsing 110251220Seric 1 * Sender rewriting 110351220Seric 2 * Recipient rewriting 110451220Seric 3 * Canonicalization 110551220Seric 4 * Post cleanup 110654839Seric 5 * Local address rewrite (after aliasing) 110760539Seric 1x mailer rules (sender qualification) 110860539Seric 2x mailer rules (recipient qualification) 110964801Seric 3x mailer rules (sender header qualification) 111064801Seric 4x mailer rules (recipient header qualification) 111164801Seric 5x mailer subroutines (general) 111264801Seric 6x mailer subroutines (general) 111364801Seric 7x mailer subroutines (general) 111464801Seric 8x reserved 111560539Seric 90 Mailertable host stripping 111660892Seric 96 Bottom half of Ruleset 3 (ruleset 6 in old sendmail) 111760892Seric 97 Hook for recursive ruleset 0 call (ruleset 7 in old sendmail) 111863857Seric 98 Local part of ruleset 0 (ruleset 8 in old sendmail) 111951220Seric 112051220Seric 112151220SericMAILERS 112251220Seric 112351220Seric 0 local, prog local and program mailers 112465218Seric 1 [e]smtp, relay SMTP channel 112565218Seric 2 uucp-* UNIX-to-UNIX Copy Program 112658087Seric 3 netnews Network News delivery 112758363Seric 4 fax Sam Leffler's FlexFAX software 112851220Seric 112951220Seric 113051220SericMACROS 113151220Seric 113251220Seric A 113351220Seric B Bitnet Relay 113465182Seric C 113554839Seric D The local domain -- usually not needed 113651220Seric E 113758363Seric F FAX Relay 113851220Seric G 113957591Seric H mail Hub (for mail clusters) 114051220Seric I 114151220Seric J 114251220Seric K 114351220Seric L 114451220Seric M Masquerade (who I claim to be) 114551220Seric N 114651220Seric O 114751220Seric P 114851220Seric Q 114951220Seric R Relay (for unqualified names) 115058071Seric S Smart Host 115151220Seric T 115251309Seric U my UUCP name (if I have a UUCP connection) 115351309Seric V UUCP Relay (class V hosts) 115451220Seric W UUCP Relay (class W hosts) 115551220Seric X UUCP Relay (class X hosts) 115651309Seric Y UUCP Relay (all other hosts) 115751220Seric Z Version number 115851220Seric 115951220Seric 116051220SericCLASSES 116151220Seric 116251220Seric A 116351220Seric B 116451220Seric C 116551220Seric D 116657246Seric E addresses that should not seem to come from $M 116754839Seric F hosts we forward for 116851220Seric G 116951220Seric H 117051220Seric I 117151220Seric J 117251220Seric K 117351220Seric L addresses that should not be forwarded to $R 117451220Seric M 117551220Seric N 117651220Seric O operators that indicate network operations (cannot be in local names) 117760211Seric P top level pseudo-domains: BITNET, FAX, UUCP, etc. 117851220Seric Q 117951220Seric R 118051220Seric S 118151220Seric T 118251220Seric U locally connected UUCP hosts 118351309Seric V UUCP hosts connected to relay $V 118451309Seric W UUCP hosts connected to relay $W 118551309Seric X UUCP hosts connected to relay $X 118651309Seric Y locally connected smart UUCP hosts 118764153Seric Z locally connected domain-ized UUCP hosts 118854839Seric . the class containing only a dot 118951220Seric 119051220Seric 119151220SericM4 DIVERSIONS 119251220Seric 119358071Seric 1 Local host detection and resolution 119458071Seric 2 Local Ruleset 3 additions 119558071Seric 3 Local Ruleset 0 additions 119651268Seric 4 UUCP Ruleset 0 additions 119751309Seric 5 locally interpreted names (overrides $R) 119854839Seric 6 local configuration (at top of file) 119951220Seric 7 mailer definitions 120054839Seric 8 special local name recognition (late in ruleset 3) 120158681Seric 9 special local rulesets (1 and 2) 1202