home *** CD-ROM | disk | FTP | other *** search
- Date: Wed, 24 Apr 85 10:37:05 est
- From: Gene Spafford <gatech!spaf@gatech>
- Subject: GaTech Sendmail configuration
- Newsgroups: mod.sources
-
- 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
-
-