sources-request@genrad.UUCP (04/24/85)
From: Gene Spafford <spaf@gatech> Recently, I made an offer in "net.mail" to send copies of our sendmail configuration files to anyone wishing copies. The response has been staggering. 25 requests in 3 days. I am sure the article has not propagated everywhere yet. So, I'm posting them here. If you want to read some of the discussion about this, see articles <434@gatech.CSNET> and <443@gatech.CSNET> along with the articles they reference (in net.mail). I'd really appreciate it if anyone finding bugs or enchancements for these files would please communicate them to me. I'll also try to answer questions about how or why something is set up the way it is (although I won't claim to be a sendmail wizard by any stretch of the imagination) -- but I will only consider questions MAILED to me. I hope some of you find these of value. --gene : ------------------ cut here ----------------------------------- : to unbundle, "sh" this file -- DO NOT use csh : SHAR archive format. Archive created Wed Apr 24 09:45:58 EST 1985 echo x - README sed 's/^X//' > README <<'+FUNKY+STUFF+' XThe files in this package build the sendmail.cf files for machines at XGeorgia Tech. They are derived from the standard BSD 4.2 sendmail Xfiles, and from a set of sendmail files we received along with PMDF Xfrom the folks at CSNet. The CSNet set of files were put together by XRay Essick (essick@uiucdcs) and were a great help in putting this Xpackage together. X XThe machines using "sendmail" at Georgia Tech fall into 3 basic Xcategories: gateway ("gatech"), department machines on a common Xethernet ("stratus", "nimbus", et.al.), and campus machines not on the XEtherent (only "gt-cmmsr" so far). X X"gatech" is intended to be the campus gateway machine. It is on the Xcommon ethernet, has over 60 uucp contacts known to the outside world, Xhas a CSNet connection, and a set of rotored phone lines. It is also Xthe "traditional" mail address known to most outsiders. X XThe department machines currently are comprised of the Clouds research Xmachines "stratus", "cirrus", and "nimbus", and the ICS/OCS Pyramid X"gitpyr". They are connected via a common ethernet link, and they all Xcan speak TCP at each other. Other machines are expected to be added Xto this group before long. Almost all of these machines have a single Xphone line and/or direct links for uucp to machines that can't speak XTCP, such as all our 3B equipment. X XThe third class of machine on campus runs sendmail but has no TCP Xconnection to the others because our Net/One bridge won't pass TCP Xpackets across the backbone. These sites use a phone line or Net/One Xvirtual circuit to connect to "gatech" and some of the other systems. XCurrently, the Man-Machine Center Vax, "gt-cmmsr" is the only machine Xin this state, but others are currently being arranged. X XThe basic idea in our configuration is for users to be able to use Xaddresses of the forms: X site!user, site!site2!user, user@site.UUCP X user@site.CSNET, user@site.ARPA, user@site.MAILNET, X user@site.BITNET user@site.DEC Xand the local case: user@site.GTNET, site:user, user%site XWe'd also like to be able to use just "user@site" and let the mailer Xfigure it out. Here's how we accomplish that. X XAll of the internal machines are simple: they merely canonicalize the Xaddress according to standard rule, look to see if it is a GTNET host Xthat they know and send the letter straight to that host. Local letters Xare handled appropriately. Any other address which looks like a network Xaddress is sent to the relay site, "gatech", except that each machine Xcan have a small number of direct UUCP connections to outside Xmachines. Ruleset zero for these systems check for these UUCP Xconnections. Note that we use a file (/usr/lib/mail/uucp.local) to Xhold the UUCP connection list so that we don't have to play around with Xthe actual sendmail configuration if we change contacts. The only Xthing one has to do to update the list of UUCP connections available on Xthat host is update the file. If you run with a frozen sendmail.cf, you Xalso have to type "/usr/lib/sendmail -bz". X XThe "gatech" machine is the big daddy. Any address that the internal Xmachines are unable to handle gets bounced to this machine. The X"gatech" machine speaks to a plethora of people. It has Ethernet Xconnections within the department, over 60 UUCP connections, and a PMDF Xconnection to the CSnet-relay. Someday we hope to have some form of Xdirect Internet connection too. "gatech" should be able to recognize Xand route any (valid) address. The "gatech" machine compares UUCP Xaddresses against a file similarly to the way the other machines handle Xthem. Mail to the CSNET domain is sent to the PMDF mailer, which Xqueues the letter for phone transmission to the CSnet-relay host. Mail Xto the ARPA domain, since we have no direct ARPA connection, is handed Xto the PMDF mailer for transmission to the CSnet-relay, which is an XARPA host. Mail to the BITNET (IBM derivative) and MAILNET (through XMIT-multics) machines are routed to the host defined by the $B and $M Xmacros. Mail to the DEC E-net is routed to the site listed in the $E Xmacro, currently "decwrl.arpa". Since we do not have connections to Xany of those networks, we instead append the address of a known gateway Xto the address forming something like: user@host.mailnet@mit-multics.arpa Xand then re-iterate through ruleset 0 to get from our machine to the Xgateway. X XAny address without a domain gets converted into an address of the form X"user@site", and it makes an attempt to intuit the domain. This is done Xby checking (in order) the list of local sites, local uucp contacts (1 Xhop), CSNET, ARPA, BITNET, UUCP, and DEC E-net sites. In the event of a Xmatch, the proper domain name is appended to the address and we Xre-iterate through ruleset zero. This catches a fair number of missing Xdomain problems and hasn't caused too much confusion about names in use Xin several domains. X XFinally, the "gatech" machine takes any left-over non-local names and Xreturns them to the sender with a message about the fact that there is Xan unknown host/domain name in his letter. X XThe UUCP mailer on "gatech" is a re-routing mailer. Any path or address Xhanded to "uumail" gets an "optimal" path supplied to it. That is, the Xprogram steps through the address from ultimate destination to Xbeginning, and if it knows a path to that site it will substitute that Xpath for the remainder of the user-supplied path. For example, if the Xaddress "a!b!c!d!e!f" is provided to the mailer, and it knows how to Xget to site "d" via "z!y" (but no idea how to get to "e"), it will Xrewrite the path to be "z!y!d!e!f". The path database is built using X"pathalias" on the uucp map data obtained twice a month from the Usenix Xmachine ("gatech" is a regional repository of UUCP map information). XThe ruleset along with "uumail" rewrites the "To:" field to look like X"f@e.UUCP" since the user-supplied address-path is probably not the Xpath that the mailer is going to use. Note that this means that X"uumail.m4" and "uucpm.m4" are NOT identical in function -- beware if Xyou decide to use one of them as a base in building your own files. X"uucpm.m4" does not muck about with the "To:" field. X XThis uucp mechanism allows any of our users to simply address mail to X"foo@site.UUCP" and not worry about a path. It also optimizes message Xpaths provided when answering news articles, and it allows our Xneighbors without mail routing software to address mail to X"gatech!somesite!person" and expect the mail to get through, if Xpossible. So far, no one has complained about not being able to force Xa particular path through our mailer. X XThat's about it. If you find these useful in some way, great. If you Xshould find bugs or possible enhancements to these files, I would Xgreatly appreciate hearing about it. X---- XGene Spafford XThe Clouds Project, School of ICS, Georgia Tech, Atlanta GA 30332 XCSNet: Spaf @ GATech ARPA: Spaf%GATech.CSNet @ CSNet-Relay.ARPA Xuucp: ...!{akgua,allegra,hplabs,ihnp4,linus,seismo,ulysses}!gatech!spaf +FUNKY+STUFF+ echo '-rw-r----- 1 root 6948 Apr 24 09:44 README (as sent)' chmod u=rw,g=r,o= README ls -l README echo x - MANIFEST sed 's/^X//' > MANIFEST <<'+FUNKY+STUFF+' XFile Description X---- ----------- XKEY Describes some of the macros and classes we use. XMANIFEST This file; directory of files. XMakefile Processes all our files. XREADME Description of what files are and what they do. Xbase.m4 "basic" information included with all configurations. Xcirrus.mc Master configuration file for gt-cirrus Clouds machine. Xcsbase.m4 Information specific to your installation. Xetherm.m4 Actual definition of the Ethernet mail "channel". Xgatech.mc Master configuration file for our main relay machine. Xgitpyr.mc Master configuration file for ICS/OCS Pyramid. Xgt-cmmsr.mc Master configuration file for MMR Vax. Xlocalm.m4 Actual definition of the "local" mail channel. Xnimbus.mc Master configuration for gt-nimbus Clouds machine. Xpmdfm.m4 Definition of the pmdf mail "channel". Xshort2.m4 Short ruleset 0 used by non-ICS sites. Xshortzero.m4 Short ruleset 0 used in ICS department sites. Xstratus.mc Master configuration file for gt-stratus Clouds machine. Xtcpm.m4 TCP mailer, if we needed to use it. Xuucpm.m4 Definition of the uucp mail "channel". Xuumail.m4 Definition of the uucp optimizing mailer used on "gatech" Xversion.m4 Define the sendmail version. Xzerobase.m4 Machine independent preamble for ruleset 0. +FUNKY+STUFF+ echo '-r--r--r-- 1 root 1237 Apr 24 09:44 MANIFEST (as sent)' chmod u=r,g=r,o=r MANIFEST ls -l MANIFEST echo x - KEY sed 's/^X//' > KEY <<'+FUNKY+STUFF+' X USES FOR MACROS AND CLASSES X X MACROS CLASSES X ====== ======= X XA arpanet relay known arpanet hosts XB Bitnet relay (wiscvm.arpa) known BITNET hosts XC CSnet-relay known CSnet hosts X - - - - - - - - - - - - - - - - - - - - - - - - - - XD full local domain name (bottom) local domain names XE Decwrl.arpa list of DEC E-net sites XF forwarding host, $R default hosts that we cannot talk directly to X - - - - - - - - - - - - - - - - - - - - - - - - - - XG XH internet name all names this host is known by XI X - - - - - - - - - - - - - - - - - - - - - - - - - - XJ XK XL X - - - - - - - - - - - - - - - - - - - - - - - - - - XM Mailnet relay site (could be list of mailnet sites) XN XO X - - - - - - - - - - - - - - - - - - - - - - - - - - XP XQ XR Relay-host Relay-host nicknames X - - - - - - - - - - - - - - - - - - - - - - - - - - XS known SMTP partners XT Outside domain Top level domains XU (local) uucp name (local) uucp nicknames X - - - - - - - - - - - - - - - - - - - - - - - - - - XV Version number XW Local machine with UUCP links uucp sites on $W machine XX Known UUCP hosts X - - - - - - - - - - - - - - - - - - - - - - - - - - XY other machine with UUCP links UUCP hosts connected to $Y machine XZ +FUNKY+STUFF+ echo '-rw-r----- 1 root 1414 Apr 24 09:44 KEY (as sent)' chmod u=rw,g=r,o= KEY ls -l KEY echo x - Makefile sed 's/^X//' > Makefile <<'+FUNKY+STUFF+' X###################################################################### X# X# Makefile for Sendmail GaTech configuration files X# X# $Header: Makefile,v 4.1 85/04/22 15:13:00 root Rel $ X# X###################################################################### X X XM4 = base.m4 csbase.m4 etherm.m4 localm.m4 shortzero.m4\ X uucpm.m4 uumail.m4 version.m4 zerobase.m4 pmdfm.m4 short2.m4 XMC = gatech.mc stratus.mc nimbus.mc gitpyr.mc cirrus.mc gt-cmmsr.mc XSRCS= $(MC) $(M4) X XCSALL = gatech.cf gitpyr.cf stratus.cf nimbus.cf cirrus.cf XALL = $(CSALL) gt-cmmsr.cf X XGET= co X X.SUFFIXES: .mc .cf X X.mc.cf: X m4 $*.mc > $*.cf X Xall: $(ALL) X Xcs: $(CSALL) X Xinstall: cs X inst gatech X inst stratus X inst nimbus X inst cirrus X echo "Don't forget to restart the daemons." X X############################ X# special dependencies # X############################ X X# all computer science department hosts.... X$(CSALL): csbase.m4 X X# pessimize -- basic dependencies X$(ALL): base.m4 localm.m4 uucpm.m4 version.m4 zerobase.m4 X X# hosts using MMDF/PMDF Xgatech.cf: pmdfm.m4 X X# Hosts using Ethernet/SMTP X$(CSALL): etherm.m4 X X# Hosts using optimized uucp mailer Xgatech.cf: uumail.m4 X X# Hosts using short definition Xstratus.cf: shortzero.m4 Xnimbus.cf: shortzero.m4 Xcirrus.cf: shortzero.m4 Xgitpyr.cf: shortzero.m4 X X# Other cases Xgt-cmmsr.cf: short2.m4 X X##################### X# administrivia # X##################### X Xsources: $(SRCS) X X$(SRCS): X $(GET) -sRel $@ X Xclean: X rm -f *.cf a.out core make.out Make.errs X +FUNKY+STUFF+ echo '-rw-r----- 1 root 1475 Apr 24 09:44 Makefile (as sent)' chmod u=rw,g=r,o= Makefile ls -l Makefile echo x - base.m4 sed 's/^X//' > base.m4 <<'+FUNKY+STUFF+' X############################################################ X# X# General configuration information X# X# This information is basically just "boiler-plate"; it must be X# there, but is essentially constant. X# X# Information in this file should be independent of location -- X# i.e., although there are some policy decisions made, they are X# not specific to Gatech per se. X# X# $Header: base.m4,v 4.1 85/04/22 15:13:04 root Rel $ X# X############################################################ X Xinclude(version.m4) X X########################## X### Special macros ### X########################## X X# my name XDnMAILER-DAEMON X# UNIX header format XDlFrom $g $d X# delimiter (operator) characters XDo.:%@!^=/[] X# format of a total name XDq$?x$x $.<$g> X# SMTP login message XDe$j Sendmail $v/$V ready at $b X X################### X### Options ### X################### X X# location of alias file XOA/usr/lib/aliases X# default delivery mode (deliver in background) XOdbackground X# (don't) connect to "expensive" mailers XOc X# temporary file mode XOF0600 X# default GID XOg1 X# location of help file XOH/usr/lib/sendmail.hf X# log level XOL2 X# default messages to old style XOo X# queue directory XOQ/usr/spool/mqueue X# read timeout -- violates protocols XOr2h X# status file XOS/usr/lib/sendmail.st X# queue up everything before starting transmission XOs X# Queue when we're busy (x) and refuse SMTP when really busy (X) XOx15 XOX20 X# default timeout interval XOT5d X# time zone names (V6 only) XOtEST,EDT X# default UID XOu1 X# wizard's password XOWa/FjIfuGKXyc2 X X############################### X### Message precedences ### X############################### X XPfirst-class=0 XPspecial-delivery=100 XPjunk=-100 X X######################### X### Trusted users ### X######################### X XTroot XTdaemon XTuucp XTnetwork X X############################# X### Format of headers ### X############################# X XH?P?Return-Path: <$g> XHReceived: $?sfrom $s $.by $j ($v/$V) X id $i; $b XH?D?Resent-Date: $a XH?D?Date: $a XH?F?Resent-From: $q XH?F?From: $q XH?x?Full-Name: $x XHSubject: XHPosted-Date: $a X# H?l?Received-Date: $b X# H?M?Resent-Message-Id: <$t.$i@$j> XH?M?Message-Id: <$t.$i@$j> X X########################### X### Rewriting rules ### X########################### X X X################################ X# Sender Field Pre-rewriting # X################################ XS1 X X################################### X# Recipient Field Pre-rewriting # X################################### XS2 X X################################# X# Final Output Post-rewriting # X################################# XS4 X XR@ $@ handle <> error addr X X# externalize local domain info XR$*<$*LOCAL>$* $1<$2$D>$3 change local info XR$*<$+>$* $1$2$3 defocus XR$*$=S:$* $1$2!$3 XR@$+:$+:$+ $@@$1,$2:$3 <route-addr> canonical X X# delete duplicate local names -- mostly for arpaproto.mc XR$+%$=w@$=w $1@$3 u%UCB@UCB => u@UCB XR$+%$=w@$=w.$=D $1@$3.$D u%UCB@UCB => u@UCB X X########################### X# Name Canonicalization # X########################### XS3 X X# handle "from:<>" special case XR<> $@@ turn into magic token XR$*$=S:$=S$* $1$3$4 XR$*$=S!$=S$* $1$3$4 X X# basic textual canonicalization XR$*<$+>$* $2 basic RFC821/822 parsing XR$+ at $+ $1@$2 "at" -> "@" for RFC 822 XR$*<$*>$* $1$2$3 in case recursive X X# make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later XR@$+,$+ @$1:$2 change all "," to ":" X X# localize and dispose of domain-based addresses XR@$+:$+ $@$>6<@$1>:$2 handle <route-addr> X X# more miscellaneous cleanup XR$+ $:$>8$1 host dependent cleanup XR$+:$*;@$+ $@$1:$2;@$3 list syntax XR$+@$+ $:$1<@$2> focus on domain XR$+<$+@$+> $1$2<@$3> move gaze right XR$+<@$+> $@$>6$1<@$2> already canonical X X# convert old-style addresses to a domain-based address XR$+%$+ $@$>6$1<@$2> user%host XR$-:$+ $@$>6$2<@$1> host:user XR$-.$+ $@$>6$2<@$1> host.user XR$+^$+ $1!$2 convert ^ to ! XR$-!$+ $@$>6$2<@$1.UUCP> resolve uucp names XR$-=$+ $@$>6$2<@$1.BITNET> resolve bitnet names +FUNKY+STUFF+ echo '-rw-r----- 1 root 3987 Apr 24 09:44 base.m4 (as sent)' chmod u=rw,g=r,o= base.m4 ls -l base.m4 echo x - cirrus.mc sed 's/^X//' > cirrus.mc <<'+FUNKY+STUFF+' X############################################################ X############################################################ X##### X##### SENDMAIL CONFIGURATION FILE FOR CIRRUS X##### X##### $Header: cirrus.mc,v 4.1 85/04/22 15:13:11 root Rel $ X##### X############################################################ X############################################################ X X X X############################################################ X### local info X############################################################ X X# internet hostname XCwgt-cirrus cirrus Cirrus CIRRUS GT-Cirrus GT-CIRRUS GT-cirrus X X# UUCP name XDUgt-cirrus XCUgt-cirrus cirrus X Xinclude(csbase.m4) Xinclude(shortzero.m4) +FUNKY+STUFF+ echo '-rw-r----- 1 root 678 Apr 24 09:44 cirrus.mc (as sent)' chmod u=rw,g=r,o= cirrus.mc ls -l cirrus.mc echo x - csbase.m4 sed 's/^X//' > csbase.m4 <<'+FUNKY+STUFF+' X################################################# X# X# General configuration information and so on X# Specific to GaTech sites X# X# $Header: csbase.m4,v 4.1 85/04/22 15:13:17 root Rel $ X# X################################################# X X###################### X# General Macros # X###################### X X X# local domain names XDDGTNET XCDgtnet GTNET GTNet GtNet GTnet X X# My "top-level" domain (seen on Gatech) XDTCSNET X X# major relay host XDRgatech XCRgatech GATECH GATech Gatech GaTech GAtech X X# and forwarding host for ether mail XDFgatech X X# my official hostname XDj$w.$D X X# known SMTP/ethernet hosts (this domain only) -- only $R need be complete XCSgatech Gatech XCSgitpyr Gitpyr XCSgt-nimbus nimbus GT-Nimbus Nimbus XCSgt-cirrus GT-Cirrus cirrus Cirrus XCSgt-stratus stratus GT-Stratus Stratus X X# known top-level domains XCTARPA UUCP BITNET CSNET MAILNET DEC X X# UUCP hosts that we talk to XFW/usr/lib/mail/uucp.local X X Xinclude(base.m4) X X####################### X# Rewriting rules # X####################### X X##### special local conversions XS6 X# Recognize "old" syntax mistakes, like UUCP specifications of Ethernet X# hosts XR$*<@$=S.UUCP> $1<@$2.$D> uucp-isms X# XR$*<@$*$=D>$* $1<@$2LOCAL>$4 convert local domain XR$*<@$=S>$* $1<@$2.LOCAL>$3 user@localhost XR$*<@$+$=S>$* $1<@$2$3.LOCAL>$4 user@host.subdomain XR$*<@$*$=D.$=T>$* $1<@$2LOCAL>$4 catch "gtnet.csnet" XR$*<@LOCAL> $1 degenerate case X XR$+%$+<@$R.LOCAL> $1<@$2.LOCAL> hacks for % syntax XR$+%$=S<@$=S.LOCAL> $1<@$2.LOCAL> relayed internally X XR$*<@$+.$=D.$=D>$* $1<@$2.$3>$5 make gtnet top level X Xinclude(localm.m4) X Xinclude(zerobase.m4) X +FUNKY+STUFF+ echo '-rw-r----- 1 root 1615 Apr 24 09:44 csbase.m4 (as sent)' chmod u=rw,g=r,o= csbase.m4 ls -l csbase.m4 echo x - etherm.m4 sed 's/^X//' > etherm.m4 <<'+FUNKY+STUFF+' X############################################################ X############################################################ X##### X##### Ethernet Mailer specification X##### X##### $Header: etherm.m4,v 4.1 85/04/22 15:13:21 root Rel $ X##### X############################################################ X############################################################ X XMether, P=[IPC], F=msDFIMuCX, S=11, A=IPC $h X XS11 XR$*<@$+>$* $@$1<@$2>$3 already ok XR$+ $@$1<@$w.LOCAL> tack on our hostname +FUNKY+STUFF+ echo '-rw-r----- 1 root 495 Apr 24 09:44 etherm.m4 (as sent)' chmod u=rw,g=r,o= etherm.m4 ls -l etherm.m4 echo x - gatech.mc sed 's/^X//' > gatech.mc <<'+FUNKY+STUFF+' X############################################################ X############################################################ X##### X##### SENDMAIL CONFIGURATION FILE FOR GATCH X##### X##### This one is the big daddy. There is no "upstairs" X##### to bounce a message to -- except perhaps the CSnet X##### X##### $Header: gatech.mc,v 4.2 85/04/23 11:05:00 root Rel $ X##### X############################################################ X############################################################ X X X X############################################################ X### local info X############################################################ X X# internet hostname XCwgatech Gatech GATech GaTech ga-tech X X# override SMTP hostname to match Arpanet name XDj$w.csnet X X# Our UUCP hostname(s) XDUgatech XCUgatech GATech GaTech X X# Defined Gateway sites and so on. Hosts are listed in files. X# X# ARPA Gateway XDAcsnet-relay XFA/usr/lib/mail/arpa.hosts %s X# X# BITNET gateway XDBwiscvm.arpa XFB/usr/lib/mail/bitnet.hosts %s X# X# CSNET gateway XDCcsnet-relay XFC/usr/lib/mail/csnet.hosts %s X# X# Gateway to Dec E-Net XDEdecwrl.arpa XFE/usr/lib/mail/decnet.hosts %s X# X# Gateway to Mailnet. XDMmit-multics.arpa X# (no list of sites at this time) X# X# UUCP network X# (no gateway host) XFX/usr/lib/mail/uucp.hosts %s X X X# we have full sendmail support here XOa X Xinclude(csbase.m4) X X################################################ X### Machine dependent part of ruleset zero ### X################################################ X X X# Resolve names that can go via the ethernet XR$*<@$*$=S.LOCAL>$* $#ether$@$3$:$1<@$2$3.$D>$4 user@etherhost X X# Resolve local UUCP links (all others) XR<@$+.$-.UUCP>:$+ $#uucp$@$2$:@$1.$2.UUCP:$3 @host.domain.UUCP: ... XR<@$-.UUCP>:$+ $#uucp$@$1$:$2 @host.UUCP: ... XR$+<@$+.$-.UUCP> $#uucp$@$3$:$1@$2.$3.UUCP user@host.domain.UUCP XR$+<@$-.UUCP> $#uucp$@$2$:$1 user@host.UUCP X X# X# Resolution of the CSNET, ARPA, BITNET and MAILNET domains should really X# have some sort of provision for addresses of the form: X# "@domain.XXX:rest-of-address" similar to the UUCP stuff X# X X# Resolve ARPA names - these go by way of the PMDF mailer. X# If we had an Arpa link, we'd use the TCP mailer instead. X# make sure that we leave the "arpa" in the address XR$+<@$*.ARPA> $#pmdf$@$A$:$1<@$2.ARPA> user@domain.ARPA X X# Current: send BITNET mail to a known gatewaying host (wiscvm.arpa) XR$+<@$*.BITNET> $@$>0$1%$2.BITNET<@$B> user@domain.BITNET X X# Resolve mail to the CSNET domain X# make sure to leave the "csnet" in the address XR$+<@$*.CSNET> $#pmdf$@$C$:$1<@$2.CSNET> user@domain.CSNET X X# Resolve addresses to the MAILNET domain - these are handled X# by the site in the $M macro. We merely re-iterate rule 0 X# to get to the site specified by $M. XR$+<@$*.MAILNET> $@$>0$1%$2.MAILNET<@$M> user@domain.MAILNET X X# Resolve DEC E-Net addresses XR$+<@$*.DEC> $@$>0$1%$2.DEC<@$E> user@domain.DEC X X# At this point we look for names of the form X# user@site and see if we can intuit a domain for X# "site". If so, we append the domain and try all over again. XR$+<@$*$=S> $@$>0$1<@$2$3.$D> Local host XR$+<@$*$=W> $@$>0$1<@$2$3.UUCP> (local) UUCP host XR$+<@$*$=C> $@$>0$1<@$2$3.CSNET> CSnet host XR$+<@$*$=A> $@$>0$1<@$2$3.ARPA> Arpanet host XR$+<@$*$=X> $@$>0$1<@$2$3.UUCP> (other) UUCP host XR$+<@$*$=B> $@$>0$1<@$2$3.BITNET> BITNET host XR$+<@$*$=E> $@$>0$1<@$2$3.DEC> DEC E-Net host XR$+<@$*dec-$=E> $@$>0$1<@$2$3.DEC> ditto X X# Error on any names with a network in them here since we couldn't X# figure out where to send them. XR$*<@$+>$* $#error$:Unknown host or domain in address X X# remaining names are local (since they aren't on any of our networks) XR$+ $#local$:$1 everything else X X######################################## X### Host dependent address cleanup ### X######################################## X XS8 XR$*$=U!$+@$+ $3@$4 drop uucp forward X X Xinclude(uumail.m4) Xinclude(pmdfm.m4) Xinclude(etherm.m4) +FUNKY+STUFF+ echo '-rw-r----- 1 root 3912 Apr 24 09:44 gatech.mc (as sent)' chmod u=rw,g=r,o= gatech.mc ls -l gatech.mc echo x - gitpyr.mc sed 's/^X//' > gitpyr.mc <<'+FUNKY+STUFF+' X############################################################ X############################################################ X##### X##### SENDMAIL CONFIGURATION FILE FOR GITPYR X##### X##### $Header: gitpyr.mc,v 4.1 85/04/22 15:13:30 root Rel $ X##### X############################################################ X############################################################ X X X X############################################################ X### local info X############################################################ X X# internet hostname XCwgitpyr Gitpyr GITPYR X X# UUCP name XDUgitpyr XCUgitpyr X Xinclude(csbase.m4) Xinclude(shortzero.m4) +FUNKY+STUFF+ echo '-rw-r----- 1 root 625 Apr 24 09:44 gitpyr.mc (as sent)' chmod u=rw,g=r,o= gitpyr.mc ls -l gitpyr.mc echo x - gt-cmmsr.mc sed 's/^X//' > gt-cmmsr.mc <<'+FUNKY+STUFF+' X############################################################ X############################################################ X##### X##### SENDMAIL CONFIGURATION FILE FOR GT-CMMSR X##### X##### $Header: gt-cmmsr.mc,v 4.1 85/04/22 15:13:34 root Rel $ X##### X############################################################ X############################################################ X X X X############################################################ X### local info X############################################################ X X# internet hostname XCwgt-cmmsr cmmsr Cirrus CIRRUS GT-Cirrus GT-CIRRUS GT-cmmsr X X# UUCP name XDUgt-cmmsr XCUgt-cmmsr cmmsr X Xinclude(csbase.m4) Xinclude(short2.m4) +FUNKY+STUFF+ echo '-rw-r--r-- 1 root 673 Apr 24 09:44 gt-cmmsr.mc (as sent)' chmod u=rw,g=r,o=r gt-cmmsr.mc ls -l gt-cmmsr.mc echo x - localm.m4 sed 's/^X//' > localm.m4 <<'+FUNKY+STUFF+' X############################################################ X############################################################ X##### X##### Local and Program Mailer specification X##### X##### $Header: localm.m4,v 4.1 85/04/22 15:13:39 root Rel $ X##### X############################################################ X############################################################ X XMlocal, P=/bin/mail, F=rlsDFMmn, S=10, A=mail -d $u XMprog, P=/bin/sh, F=lsDFMe, S=10, A=sh -c $u X XS10 XR@ MAILER-DAEMON errors to mailer-daemon +FUNKY+STUFF+ echo '-rw-r----- 1 root 523 Apr 24 09:44 localm.m4 (as sent)' chmod u=rw,g=r,o= localm.m4 ls -l localm.m4 echo x - nimbus.mc sed 's/^X//' > nimbus.mc <<'+FUNKY+STUFF+' X############################################################ X############################################################ X##### X##### SENDMAIL CONFIGURATION FILE FOR NIMBUS X##### X##### $Header: nimbus.mc,v 4.1 85/04/22 15:13:43 root Rel $ X##### X############################################################ X############################################################ X X X X############################################################ X### local info X############################################################ X X# internet hostname XCwgt-nimbus nimbus NIMBUS Nimbus GT-Nimbus GT-nimbus GT-NIMBUS X X# UUCP name XDUgt-nimbus XCUgt-nimbus nimbus X Xinclude(csbase.m4) Xinclude(shortzero.m4) +FUNKY+STUFF+ echo '-rw-r----- 1 root 678 Apr 24 09:44 nimbus.mc (as sent)' chmod u=rw,g=r,o= nimbus.mc ls -l nimbus.mc echo x - pmdfm.m4 sed 's/^X//' > pmdfm.m4 <<'+FUNKY+STUFF+' X############################################################ X############################################################ X##### X##### PMDF Phonenet Channel Mailer specification X##### X##### $Header: pmdfm.m4,v 4.1 85/04/22 15:13:47 root Rel $ X##### X############################################################ X############################################################ X XMpmdf, P=/usr/local/lib/pmdf/pmdf-submit, F=mDsFSn, S=17, R=17, X M=65535, A=pmdf-submit -f $g $u X# X# Notice that the PMDF mailer DOES NOT USE the host field. We X# set this host field to "CSNET-RELAY" in all instances where X# we call the PMDF mailer so as to be able to send one copy X# of a letter with a number of recipients. X# X XS17 X X# pass <route-addr>'s through XR<@$+>$* $@<@$1>$2 resolve <route-addr> X X# map colons to dots everywhere..... XR$*:$* $1.$2 map colons to dots X X# handle the simple case.... XR$+<@$-.ARPA> $@$1<@$2.ARPA> user@host.ARPA XR$+<@$-.CSNET> $@$1<@$2.CSNET> user@host.CSNET X XR$+<@LOCAL> $@$1<@$R.CSNET> local names XR$+<@$+.LOCAL> $@$1%$2<@$R.CSNET> local notes XR$+<@$*$=S> $@$1%$2$3<@$R.CSNET> more local hosts X X# handle other external cases XR$+<@$-> $@$1<@$2> XR$+<@$+.$-.$=T> $@$1%$2<@$3.$4> approximate something XR$+<@[$+]> $@$1<@[$2]> already ok X X# convert remaining addresses to old format and externalize appropriately XR$+<@$-.UUCP> $2!$1 u@host.UUCP => host!u XR$-:$+ $@$1.$2<@$A> convert berk hosts XR$+<@$+> $@$1%$2<@$A> pessmize XR$+ $:$1<@$R.CSNET> tack on our hostname XR$+%$=A<@$A> $1<@$2> strip out unneeded relay +FUNKY+STUFF+ echo '-rw-r----- 1 root 1564 Apr 24 09:44 pmdfm.m4 (as sent)' chmod u=rw,g=r,o= pmdfm.m4 ls -l pmdfm.m4 echo x - short2.m4 sed 's/^X//' > short2.m4 <<'+FUNKY+STUFF+' X################################################ X### Machine dependent part of ruleset zero X### X### Short version for non-ICS machines not on X### common ethernet. (e.g., gt-cmmsr) X### X### $Header: short2.m4,v 4.1 85/04/22 15:13:51 root Rel $ X################################################ X X# resolve names that we can handle locally XR<@$=W.UUCP>$+ $#uucp$@$1$:$2 @host.UUCP: ... XR$+<@$=W.UUCP> $#uucp$@$2$:$1 user@host.UUCP X X# other non-local names will be kicked upstairs XR$*<@$+>$* $#uucp$@$F$:$1<@$2>$3 user@some.where X X# remaining names must be local XR$+ $#local$:$1 everything else X Xinclude(uucpm.m4) +FUNKY+STUFF+ echo '-rw-r--r-- 1 root 627 Apr 24 09:44 short2.m4 (as sent)' chmod u=rw,g=r,o=r short2.m4 ls -l short2.m4 echo x - shortzero.m4 sed 's/^X//' > shortzero.m4 <<'+FUNKY+STUFF+' X################################################ X### Machine dependent part of ruleset zero X### X### Short version for ICS machines on common X### ethernet. (NOT "gatech") X### X### $Header: shortzero.m4,v 4.1 85/04/22 15:13:55 root Rel $ X################################################ X X# resolve names that we can handle locally XR<@$=W.UUCP>$+ $#uucp$@$1$:$2 @host.UUCP: ... XR$+<@$=W.UUCP> $#uucp$@$2$:$1 user@host.UUCP X X# resolve names that can go via the ethernet XR$*<@$*$=S.LOCAL>$* $#ether$@$3$:$1<@$2$3.$D>$4 user@etherhost X X# other non-local names will be kicked upstairs XR$*<@$+>$* $#ether$@$F$:$1<@$2>$3 user@some.where X X# remaining names must be local XR$+ $#local$:$1 everything else X Xinclude(uucpm.m4) Xinclude(etherm.m4) +FUNKY+STUFF+ echo '-rw-r--r-- 1 root 748 Apr 24 09:44 shortzero.m4 (as sent)' chmod u=rw,g=r,o=r shortzero.m4 ls -l shortzero.m4 echo x - stratus.mc sed 's/^X//' > stratus.mc <<'+FUNKY+STUFF+' X############################################################ X############################################################ X##### X##### SENDMAIL CONFIGURATION FILE FOR STRATUS X##### X##### $Header: stratus.mc,v 4.1 85/04/22 15:13:58 root Rel $ X##### X############################################################ X############################################################ X X X X############################################################ X### local info X############################################################ X X# internet hostname XCwgt-stratus stratus STRATUS GT-Stratus GT-STRATUS X X# UUCP name XDUgt-stratus XCUgt-stratus stratus X Xinclude(csbase.m4) Xinclude(shortzero.m4) +FUNKY+STUFF+ echo '-rw-r--r-- 1 root 671 Apr 24 09:44 stratus.mc (as sent)' chmod u=rw,g=r,o=r stratus.mc ls -l stratus.mc echo x - tcpm.m4 sed 's/^X//' > tcpm.m4 <<'+FUNKY+STUFF+' X############################################################ X############################################################ X##### X##### Arpanet TCP Mailer specification X##### X##### $Header: tcpm.m4,v 4.1 85/04/23 11:03:09 root Rel $ X##### X############################################################ X############################################################ X XMtcp, P=[IPC], F=msDFMueXL, S=14, R=14, A=IPC $h, E=\r\n X XS14 X X# pass <route-addr>'s through XR<@$+>$* $@<@$1>$2 resolve <route-addr> X X# map colons to dots everywhere..... XR$*:$* $1.$2 map colons to dots X X# handle the simple case.... XR$+<@$-.ARPA> $@$1<@$2.ARPA> user@host.ARPA X X# output local hosts in user%host@Berkeley syntax XR$+<@LOCAL> $@$1<@$A> local names XR$+<@$+.LOCAL> $@$1%$2<@$A> local hosts XR$+<@$*$=S> $@$1%$2$3<@$A> XR$+<@$*$=Z> $@$1%$2$3<@$A> X X# handle other external cases XR$+<@$-> $@$1<@$2> no .ARPA on simple names XR$+<@$+.$-.ARPA> $@$1%$2<@$3.ARPA> approximate something XR$+<@[$+]> $@$1<@[$2]> already ok X X# convert remaining addresses to old format and externalize appropriately XR$+ $:$>5$1 => old format XR$-:$+ $@$1.$2<@$A> convert berk hosts XR$+<@$+> $@$1%$2<@$A> pessmize XR$+ $:$1%$w<@$A> tack on our hostname XR$+%$=R<@$=A> $1<@$3> strip unneeded relay +FUNKY+STUFF+ echo '-rw-r----- 1 root 1284 Apr 24 09:44 tcpm.m4 (as sent)' chmod u=rw,g=r,o= tcpm.m4 ls -l tcpm.m4 echo x - uucpm.m4 sed 's/^X//' > uucpm.m4 <<'+FUNKY+STUFF+' X############################################################ X############################################################ X##### X##### UUCP Mailer specification X##### X##### $Header: uucpm.m4,v 4.3 85/04/23 18:44:55 root Exp $ X##### X############################################################ X############################################################ X XMuucp, P=/usr/bin/uux, F=sDFMuU, S=13, R=23, M=65535, X A=uux - -L -a$f -gC $h!rmail ($u) X XS13 XR$+ $:$>5$1 convert to old style XR$=w!$+ $2 strip local name XR$*<@$->$* $1<@$2.UUCP>$3 resolve abbreviations XR$*<@$*.UUCP>$* $:$>5$1<@$2.UUCP>$3 XR$+ $:$U!$1 stick on our host name XR$=w!$=R$+ $:$2$3 XR$*$=w!$=w$* $1$U$4 X XS23 XR$+ $:$>5$1 convert to old style XR$*<@$=S>$* $1<@$2.$D.UUCP>$3 resolve abbreviations XR$*<@$R.$D.UUCP>$3 $1<@$2.UUCP>$3 X X XS5 XR$+<@$-.LOCAL> $1%$2 u@h.LOCAL => u%h XR$+<@$-.UUCP> $2!$1 u@host.UUCP => host!u XR$+@$+.$=T $1@$2 u@host.ARPA => u@host +FUNKY+STUFF+ echo '-rw-r----- 1 root 958 Apr 24 09:45 uucpm.m4 (as sent)' chmod u=rw,g=r,o= uucpm.m4 ls -l uucpm.m4 echo x - uumail.m4 sed 's/^X//' > uumail.m4 <<'+FUNKY+STUFF+' X############################################################ X############################################################ X##### X##### UUCP Mailer specification X##### This is for the rerouting mailer on Gatech X##### X##### $Header: uumail.m4,v 4.3 85/04/23 18:44:12 root Exp $ X##### X############################################################ X############################################################ X X# use fancy path expanding UUCP frontend. XMuucp, P=/usr/lib/mail/uumail, F=sCDFMSU, S=13, R=23, M=65535, X A=uumail -f $g $h!$u X XS13 XR$+ $:$>5$1 convert to old style XR$=w!$+ $2 strip local name XR$*<@$->$* $1<@$2.UUCP>$3 resolve abbreviations XR$*<@$*.UUCP>$* $:$>5$1<@$2.UUCP>$3 XR$+ $:$U!$1 stick on our host name XR$=w!$=R$+ $:$2$3 XR$*$=w!$=w$* $1$U$4 X XS23 XR$+!$+!$+<@$*.UUCP>$* $2!$3<@$4.UUCP>$5 strip leading sites XR$+!$+<@$*.UUCP>$* $:$2<@$1.UUCP>$4 put in right sitename XR$*<@$-.LOCAL>$* $1<@$2.UUCP>$3 XR$*<@$=S>$* $1<@$2.UUCP>$3 resolve abbreviations XR$*<@$R.$D.UUCP>$3 $1<@$2.UUCP>$3 X X XS5 XR$+<@$-.LOCAL> $1%$2 u@h.LOCAL => u%h XR$+<@$-.UUCP> $2!$1 u@host.UUCP => host!u +FUNKY+STUFF+ echo '-rw-r--r-- 1 root 1117 Apr 24 09:45 uumail.m4 (as sent)' chmod u=rw,g=r,o=r uumail.m4 ls -l uumail.m4 echo x - version.m4 sed 's/^X//' > version.m4 <<'+FUNKY+STUFF+' X# $Header: version.m4,v 4.2 85/04/22 16:15:48 root Rel $ X XDV5.1.GaTech +FUNKY+STUFF+ echo '-rw-r----- 1 root 71 Apr 24 09:44 version.m4 (as sent)' chmod u=rw,g=r,o= version.m4 ls -l version.m4 echo x - zerobase.m4 sed 's/^X//' > zerobase.m4 <<'+FUNKY+STUFF+' X############################################################ X############################################################ X##### X##### RULESET ZERO PREAMBLE X##### X##### The beginning of ruleset zero is constant through all X##### configurations. X##### X##### $Header: zerobase.m4,v 4.1 85/04/22 15:14:15 root Rel $ X##### X############################################################ X############################################################ X XS0 X X# first make canonical XR$*<$*>$* $1$2$3 defocus XR$+ $:$>3$1 make canonical X X# handle special cases..... XR@ $#local$:MAILER-DAEMON handle <> form X#R$*<@[$+]>$* $#tcp$@[$2]$:$1@[$2]$3 numeric internet spec X X# arrange for local names to be fully qualified XR$*<$*$=S>$* $1<$2$3.LOCAL>$4 user@etherhost X X# now delete the local info XR$*<$*$=w.LOCAL>$* $1<$2>$4 thishost.LOCAL XR$*<$*$=w.$T>$* $1<$2>$4 thishost.ARPA XR$*<$*$=w>$* $1<$2>$4 thishost XR$*<$*.>$* $1<$2>$3 drop trailing dot XR<@>:$* $@$>0$1 retry after route strip XR$*<@> $@$>0$1 strip null trash & retry X X################################## X# End of ruleset zero preamble # X################################## +FUNKY+STUFF+ echo '-rw-r----- 1 root 1147 Apr 24 09:45 zerobase.m4 (as sent)' chmod u=rw,g=r,o= zerobase.m4 ls -l zerobase.m4 exit 0