home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume1 / sendmail.cf < prev    next >
Internet Message Format  |  1986-11-30  |  39KB

  1. Date: Wed, 24 Apr 85 10:37:05 est
  2. From: Gene Spafford <gatech!spaf@gatech>
  3. Subject: GaTech Sendmail configuration
  4. Newsgroups: mod.sources
  5.  
  6. Recently, I made an offer in "net.mail" to send copies of our sendmail
  7. configuration files to anyone wishing copies.
  8.  
  9. The response has been staggering.  25 requests in 3 days.  I am sure
  10. the article has not propagated everywhere yet.
  11.  
  12. So, I'm posting them here.  If you want to read some of the discussion
  13. about this, see articles <434@gatech.CSNET> and <443@gatech.CSNET>
  14. along with the articles they reference (in net.mail).
  15.  
  16. I'd really appreciate it if anyone finding bugs or enchancements for
  17. these files would please communicate them to me.  I'll also try to
  18. answer questions about how or why something is set up the way it is
  19. (although I won't claim to be a sendmail wizard by any stretch of the
  20. imagination) -- but I will only consider questions MAILED to me.
  21.  
  22. I hope some of you find these of value.
  23. --gene
  24.  
  25. : ------------------ cut here -----------------------------------
  26. : to unbundle, "sh" this file -- DO NOT use csh
  27. :  SHAR archive format.  Archive created Wed Apr 24 09:45:58 EST 1985
  28. echo x - README
  29. sed 's/^X//' > README <<'+FUNKY+STUFF+'
  30. XThe files in this package build the sendmail.cf files for machines at
  31. XGeorgia Tech.  They are derived from the standard BSD 4.2 sendmail
  32. Xfiles, and from a set of sendmail files we received along with PMDF
  33. Xfrom the folks at CSNet.  The CSNet set of files were put together by
  34. XRay Essick (essick@uiucdcs) and were a great help in putting this
  35. Xpackage together.
  36. X
  37. XThe machines using "sendmail" at Georgia Tech fall into 3 basic
  38. Xcategories: gateway ("gatech"), department machines on a common
  39. Xethernet ("stratus", "nimbus", et.al.), and campus machines not on the
  40. XEtherent (only "gt-cmmsr" so far).
  41. X
  42. X"gatech" is intended to be the campus gateway machine.  It is on the
  43. Xcommon ethernet, has over 60 uucp contacts known to the outside world,
  44. Xhas a CSNet connection, and a set of rotored phone lines.  It is also
  45. Xthe "traditional" mail address known to most outsiders.
  46. X
  47. XThe department machines currently are comprised of the Clouds research
  48. Xmachines "stratus", "cirrus", and "nimbus", and the ICS/OCS Pyramid
  49. X"gitpyr".  They are connected via a common ethernet link, and they all
  50. Xcan speak TCP at each other.  Other machines are expected to be added
  51. Xto this group before long.  Almost all of these machines have a single
  52. Xphone line and/or direct links for uucp to machines that can't speak
  53. XTCP, such as all our 3B equipment.
  54. X
  55. XThe third class of machine on campus runs sendmail but has no TCP
  56. Xconnection to the others because our Net/One bridge won't pass TCP
  57. Xpackets across the backbone.  These sites use a phone line or Net/One
  58. Xvirtual circuit to connect to "gatech" and some of the other systems.
  59. XCurrently, the Man-Machine Center Vax, "gt-cmmsr" is the only machine
  60. Xin this state, but others are currently being arranged.
  61. X
  62. XThe basic idea in our configuration is for users to be able to use
  63. Xaddresses of the forms:
  64. X        site!user, site!site2!user, user@site.UUCP
  65. X        user@site.CSNET, user@site.ARPA, user@site.MAILNET,
  66. X        user@site.BITNET user@site.DEC
  67. Xand the local case:     user@site.GTNET, site:user, user%site
  68. XWe'd also like to be able to use just "user@site" and let the mailer
  69. Xfigure it out.  Here's how we accomplish that.
  70. X
  71. XAll of the internal machines are simple: they merely canonicalize the
  72. Xaddress according to standard rule, look to see if it is a GTNET host
  73. Xthat they know and send the letter straight to that host. Local letters
  74. Xare handled appropriately. Any other address which looks like a network
  75. Xaddress is sent to the relay site, "gatech", except that each machine
  76. Xcan have a small number of direct UUCP connections to outside
  77. Xmachines.  Ruleset zero for these systems check for these UUCP
  78. Xconnections.  Note that we use a file (/usr/lib/mail/uucp.local) to
  79. Xhold the UUCP connection list so that we don't have to play around with
  80. Xthe actual sendmail configuration if we change contacts.  The only
  81. Xthing one has to do to update the list of UUCP connections available on
  82. Xthat host is update the file. If you run with a frozen sendmail.cf, you
  83. Xalso have to type "/usr/lib/sendmail -bz".
  84. X
  85. XThe "gatech" machine is the big daddy.  Any address that the internal
  86. Xmachines are unable to handle gets bounced to this machine. The
  87. X"gatech" machine speaks to a plethora of people. It has Ethernet
  88. Xconnections within the department, over 60 UUCP connections, and a PMDF
  89. Xconnection to the CSnet-relay.  Someday we hope to have some form of
  90. Xdirect Internet connection too.  "gatech" should be able to recognize
  91. Xand route any (valid) address.  The "gatech" machine compares UUCP
  92. Xaddresses against a file similarly to the way the other machines handle
  93. Xthem.  Mail to the CSNET domain is sent to the PMDF mailer, which
  94. Xqueues the letter for phone transmission to the CSnet-relay host.  Mail
  95. Xto the ARPA domain, since we have no direct ARPA connection, is handed
  96. Xto the PMDF mailer for transmission to the CSnet-relay, which is an
  97. XARPA host.  Mail to the BITNET (IBM derivative) and MAILNET (through
  98. XMIT-multics) machines are routed to the host defined by the $B and $M
  99. Xmacros.  Mail to the DEC E-net is routed to the site listed in the $E
  100. Xmacro, currently "decwrl.arpa".  Since we do not have connections to
  101. Xany of those networks, we instead append the address of a known gateway
  102. Xto the address forming something like: user@host.mailnet@mit-multics.arpa
  103. Xand then re-iterate through ruleset 0 to get from our machine to the
  104. Xgateway.
  105. X
  106. XAny address without a domain gets converted into an address of the form
  107. X"user@site", and it makes an attempt to intuit the domain. This is done
  108. Xby checking (in order) the list of local sites, local uucp contacts (1
  109. Xhop), CSNET, ARPA, BITNET, UUCP, and DEC E-net sites. In the event of a
  110. Xmatch, the proper domain name is appended to the address and we
  111. Xre-iterate through ruleset zero.  This catches a fair number of missing
  112. Xdomain problems and hasn't caused too much confusion about names in use
  113. Xin several domains.
  114. X
  115. XFinally, the "gatech" machine takes any left-over non-local names and
  116. Xreturns them to the sender with a message about the fact that there is
  117. Xan unknown host/domain name in his letter.
  118. X
  119. XThe UUCP mailer on "gatech" is a re-routing mailer.  Any path or address
  120. Xhanded to "uumail" gets an "optimal" path supplied to it.  That is, the
  121. Xprogram steps through the address from ultimate destination to
  122. Xbeginning, and if it knows a path to that site it will substitute that
  123. Xpath for the remainder of the user-supplied path.  For example, if the
  124. Xaddress "a!b!c!d!e!f" is provided to the mailer, and it knows how to
  125. Xget to site "d" via "z!y" (but no idea how to get to "e"), it will
  126. Xrewrite the path to be "z!y!d!e!f".  The path database is built using
  127. X"pathalias" on the uucp map data obtained twice a month from the Usenix
  128. Xmachine ("gatech" is a regional repository of UUCP map information).
  129. XThe ruleset along with "uumail" rewrites the "To:" field to look like
  130. X"f@e.UUCP" since the user-supplied address-path is probably not the
  131. Xpath that the mailer is going to use. Note that this means that
  132. X"uumail.m4" and "uucpm.m4" are NOT identical in function -- beware if
  133. Xyou decide to use one of them as a base in building your own files.
  134. X"uucpm.m4" does not muck about with the "To:" field.
  135. X
  136. XThis uucp mechanism allows any of our users to simply address mail to
  137. X"foo@site.UUCP" and not worry about a path.  It also optimizes message
  138. Xpaths provided when answering news articles, and it allows our
  139. Xneighbors without mail routing software to address mail to
  140. X"gatech!somesite!person" and expect the mail to get through, if
  141. Xpossible.  So far, no one has complained about not being able to force
  142. Xa particular path through our mailer.
  143. X
  144. XThat's about it.  If you find these useful in some way, great.  If you
  145. Xshould find bugs or possible enhancements to these files, I would
  146. Xgreatly appreciate hearing about it.
  147. X----
  148. XGene Spafford
  149. XThe Clouds Project, School of ICS, Georgia Tech, Atlanta GA 30332
  150. XCSNet:    Spaf @ GATech        ARPA:    Spaf%GATech.CSNet @ CSNet-Relay.ARPA
  151. Xuucp:    ...!{akgua,allegra,hplabs,ihnp4,linus,seismo,ulysses}!gatech!spaf
  152. +FUNKY+STUFF+
  153. echo '-rw-r-----  1 root         6948 Apr 24 09:44 README    (as sent)'
  154. chmod u=rw,g=r,o= README
  155. ls -l README
  156. echo x - MANIFEST
  157. sed 's/^X//' > MANIFEST <<'+FUNKY+STUFF+'
  158. XFile        Description
  159. X----        -----------
  160. XKEY        Describes some of the macros and classes we use.
  161. XMANIFEST    This file; directory of files.
  162. XMakefile    Processes all our files.
  163. XREADME        Description of what files are and what they do.
  164. Xbase.m4        "basic" information included with all configurations.
  165. Xcirrus.mc    Master configuration file for gt-cirrus Clouds machine.
  166. Xcsbase.m4    Information specific to your installation. 
  167. Xetherm.m4    Actual definition of the Ethernet mail "channel".
  168. Xgatech.mc    Master configuration file for our main relay machine.
  169. Xgitpyr.mc    Master configuration file for ICS/OCS Pyramid.
  170. Xgt-cmmsr.mc    Master configuration file for MMR Vax.
  171. Xlocalm.m4    Actual definition of the "local" mail channel.
  172. Xnimbus.mc    Master configuration for gt-nimbus Clouds machine.
  173. Xpmdfm.m4    Definition of the pmdf mail "channel". 
  174. Xshort2.m4    Short ruleset 0 used by non-ICS sites.
  175. Xshortzero.m4    Short ruleset 0 used in ICS department sites.
  176. Xstratus.mc    Master configuration file for gt-stratus Clouds machine.
  177. Xtcpm.m4        TCP mailer, if we needed to use it.
  178. Xuucpm.m4    Definition of the uucp mail "channel". 
  179. Xuumail.m4    Definition of the uucp optimizing mailer used on "gatech"
  180. Xversion.m4    Define the sendmail version. 
  181. Xzerobase.m4    Machine independent preamble for ruleset 0.
  182. +FUNKY+STUFF+
  183. echo '-r--r--r--  1 root         1237 Apr 24 09:44 MANIFEST    (as sent)'
  184. chmod u=r,g=r,o=r MANIFEST
  185. ls -l MANIFEST
  186. echo x - KEY
  187. sed 's/^X//' > KEY <<'+FUNKY+STUFF+'
  188. X        USES FOR MACROS AND CLASSES
  189. X
  190. X    MACROS                CLASSES
  191. X    ======                =======
  192. X
  193. XA    arpanet relay            known arpanet hosts
  194. XB    Bitnet relay (wiscvm.arpa)    known BITNET hosts
  195. XC    CSnet-relay            known CSnet hosts
  196. X -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  197. XD    full local domain name        (bottom) local domain names
  198. XE       Decwrl.arpa            list of DEC E-net sites
  199. XF    forwarding host, $R default    hosts that we cannot talk directly to
  200. X -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  201. XG
  202. XH    internet name            all names this host is known by
  203. XI
  204. X -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  205. XJ
  206. XK
  207. XL
  208. X -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  209. XM    Mailnet relay site        (could be list of mailnet sites)
  210. XN
  211. XO
  212. X -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  213. XP
  214. XQ
  215. XR    Relay-host            Relay-host nicknames
  216. X -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  217. XS                    known SMTP partners
  218. XT    Outside domain            Top level domains
  219. XU    (local) uucp name        (local) uucp nicknames
  220. X -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  221. XV    Version number
  222. XW    Local machine with UUCP links    uucp sites on $W machine
  223. XX                    Known UUCP hosts
  224. X -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  225. XY    other machine with UUCP links    UUCP hosts connected to $Y machine
  226. XZ
  227. +FUNKY+STUFF+
  228. echo '-rw-r-----  1 root         1414 Apr 24 09:44 KEY    (as sent)'
  229. chmod u=rw,g=r,o= KEY
  230. ls -l KEY
  231. echo x - Makefile
  232. sed 's/^X//' > Makefile <<'+FUNKY+STUFF+'
  233. X######################################################################
  234. X#
  235. X#    Makefile for Sendmail GaTech configuration files
  236. X#
  237. X#        $Header: Makefile,v 4.1 85/04/22 15:13:00 root Rel $
  238. X#
  239. X######################################################################
  240. X
  241. X
  242. XM4    = base.m4 csbase.m4 etherm.m4 localm.m4 shortzero.m4\
  243. X      uucpm.m4 uumail.m4 version.m4 zerobase.m4 pmdfm.m4 short2.m4
  244. XMC    = gatech.mc stratus.mc nimbus.mc gitpyr.mc cirrus.mc gt-cmmsr.mc
  245. XSRCS=    $(MC) $(M4)
  246. X
  247. XCSALL    = gatech.cf gitpyr.cf stratus.cf nimbus.cf cirrus.cf
  248. XALL    = $(CSALL) gt-cmmsr.cf
  249. X
  250. XGET=    co
  251. X
  252. X.SUFFIXES: .mc .cf
  253. X
  254. X.mc.cf:
  255. X    m4 $*.mc > $*.cf
  256. X
  257. Xall: $(ALL)
  258. X
  259. Xcs:  $(CSALL)
  260. X
  261. Xinstall: cs
  262. X    inst gatech
  263. X    inst stratus
  264. X    inst nimbus
  265. X    inst cirrus
  266. X    echo "Don't forget to restart the daemons."
  267. X
  268. X############################
  269. X#   special dependencies   #
  270. X############################
  271. X
  272. X# all computer science department hosts....
  273. X$(CSALL): csbase.m4
  274. X
  275. X# pessimize -- basic dependencies
  276. X$(ALL): base.m4 localm.m4 uucpm.m4 version.m4 zerobase.m4
  277. X
  278. X# hosts using MMDF/PMDF
  279. Xgatech.cf: pmdfm.m4
  280. X
  281. X# Hosts using Ethernet/SMTP
  282. X$(CSALL): etherm.m4 
  283. X
  284. X# Hosts using optimized uucp mailer
  285. Xgatech.cf: uumail.m4
  286. X
  287. X# Hosts using short definition
  288. Xstratus.cf: shortzero.m4
  289. Xnimbus.cf: shortzero.m4
  290. Xcirrus.cf: shortzero.m4
  291. Xgitpyr.cf: shortzero.m4
  292. X
  293. X# Other cases
  294. Xgt-cmmsr.cf: short2.m4
  295. X
  296. X#####################
  297. X#   administrivia   #
  298. X#####################
  299. X
  300. Xsources: $(SRCS)
  301. X
  302. X$(SRCS):
  303. X    $(GET) -sRel $@
  304. X
  305. Xclean:
  306. X    rm -f *.cf a.out core make.out Make.errs
  307. X
  308. +FUNKY+STUFF+
  309. echo '-rw-r-----  1 root         1475 Apr 24 09:44 Makefile    (as sent)'
  310. chmod u=rw,g=r,o= Makefile
  311. ls -l Makefile
  312. echo x - base.m4
  313. sed 's/^X//' > base.m4 <<'+FUNKY+STUFF+'
  314. X############################################################
  315. X#
  316. X#  General configuration information
  317. X#
  318. X#  This information is basically just "boiler-plate"; it must be
  319. X#  there, but is essentially constant.
  320. X#
  321. X#  Information in this file should be independent of location --
  322. X#  i.e., although there are some policy decisions made, they are
  323. X#  not specific to Gatech per se.
  324. X#
  325. X#  $Header: base.m4,v 4.1 85/04/22 15:13:04 root Rel $
  326. X#
  327. X############################################################
  328. X
  329. Xinclude(version.m4)
  330. X
  331. X##########################
  332. X###   Special macros   ###
  333. X##########################
  334. X
  335. X# my name
  336. XDnMAILER-DAEMON
  337. X# UNIX header format
  338. XDlFrom $g  $d
  339. X# delimiter (operator) characters
  340. XDo.:%@!^=/[]
  341. X# format of a total name
  342. XDq$?x$x $.<$g>
  343. X# SMTP login message
  344. XDe$j Sendmail $v/$V ready at $b
  345. X
  346. X###################
  347. X###   Options   ###
  348. X###################
  349. X
  350. X# location of alias file
  351. XOA/usr/lib/aliases
  352. X# default delivery mode (deliver in background)
  353. XOdbackground
  354. X# (don't) connect to "expensive" mailers
  355. XOc
  356. X# temporary file mode
  357. XOF0600
  358. X# default GID
  359. XOg1
  360. X# location of help file
  361. XOH/usr/lib/sendmail.hf
  362. X# log level
  363. XOL2
  364. X# default messages to old style
  365. XOo
  366. X# queue directory
  367. XOQ/usr/spool/mqueue
  368. X# read timeout -- violates protocols
  369. XOr2h
  370. X# status file
  371. XOS/usr/lib/sendmail.st
  372. X# queue up everything before starting transmission
  373. XOs
  374. X# Queue when we're busy (x) and refuse SMTP when really busy (X)
  375. XOx15
  376. XOX20
  377. X# default timeout interval
  378. XOT5d
  379. X# time zone names (V6 only)
  380. XOtEST,EDT
  381. X# default UID
  382. XOu1
  383. X# wizard's password
  384. XOWa/FjIfuGKXyc2
  385. X
  386. X###############################
  387. X###   Message precedences   ###
  388. X###############################
  389. X
  390. XPfirst-class=0
  391. XPspecial-delivery=100
  392. XPjunk=-100
  393. X
  394. X#########################
  395. X###   Trusted users   ###
  396. X#########################
  397. X
  398. XTroot
  399. XTdaemon
  400. XTuucp
  401. XTnetwork
  402. X
  403. X#############################
  404. X###   Format of headers   ###
  405. X#############################
  406. X
  407. XH?P?Return-Path: <$g>
  408. XHReceived: $?sfrom $s $.by $j ($v/$V)
  409. X    id $i; $b
  410. XH?D?Resent-Date: $a
  411. XH?D?Date: $a
  412. XH?F?Resent-From: $q
  413. XH?F?From: $q
  414. XH?x?Full-Name: $x
  415. XHSubject:
  416. XHPosted-Date: $a
  417. X# H?l?Received-Date: $b
  418. X# H?M?Resent-Message-Id: <$t.$i@$j>
  419. XH?M?Message-Id: <$t.$i@$j>
  420. X
  421. X###########################
  422. X###   Rewriting rules   ###
  423. X###########################
  424. X
  425. X
  426. X################################
  427. X#  Sender Field Pre-rewriting  #
  428. X################################
  429. XS1
  430. X
  431. X###################################
  432. X#  Recipient Field Pre-rewriting  #
  433. X###################################
  434. XS2
  435. X
  436. X#################################
  437. X#  Final Output Post-rewriting  #
  438. X#################################
  439. XS4
  440. X
  441. XR@            $@                handle <> error addr
  442. X
  443. X# externalize local domain info
  444. XR$*<$*LOCAL>$*        $1<$2$D>$3            change local info
  445. XR$*<$+>$*        $1$2$3                defocus
  446. XR$*$=S:$*        $1$2!$3
  447. XR@$+:$+:$+        $@@$1,$2:$3            <route-addr> canonical
  448. X
  449. X# delete duplicate local names -- mostly for arpaproto.mc
  450. XR$+%$=w@$=w        $1@$3                u%UCB@UCB => u@UCB
  451. XR$+%$=w@$=w.$=D        $1@$3.$D            u%UCB@UCB => u@UCB
  452. X
  453. X###########################
  454. X#  Name Canonicalization  #
  455. X###########################
  456. XS3
  457. X
  458. X# handle "from:<>" special case
  459. XR<>            $@@                turn into magic token
  460. XR$*$=S:$=S$*        $1$3$4
  461. XR$*$=S!$=S$*        $1$3$4
  462. X
  463. X# basic textual canonicalization
  464. XR$*<$+>$*        $2                basic RFC821/822 parsing
  465. XR$+ at $+        $1@$2                "at" -> "@" for RFC 822
  466. XR$*<$*>$*        $1$2$3                in case recursive
  467. X
  468. X# make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later
  469. XR@$+,$+            @$1:$2                change all "," to ":"
  470. X
  471. X# localize and dispose of domain-based addresses
  472. XR@$+:$+            $@$>6<@$1>:$2            handle <route-addr>
  473. X
  474. X# more miscellaneous cleanup
  475. XR$+            $:$>8$1                host dependent cleanup
  476. XR$+:$*;@$+        $@$1:$2;@$3            list syntax
  477. XR$+@$+            $:$1<@$2>            focus on domain
  478. XR$+<$+@$+>        $1$2<@$3>            move gaze right
  479. XR$+<@$+>        $@$>6$1<@$2>            already canonical
  480. X
  481. X# convert old-style addresses to a domain-based address
  482. XR$+%$+            $@$>6$1<@$2>            user%host
  483. XR$-:$+            $@$>6$2<@$1>            host:user
  484. XR$-.$+            $@$>6$2<@$1>            host.user
  485. XR$+^$+            $1!$2                convert ^ to !
  486. XR$-!$+            $@$>6$2<@$1.UUCP>        resolve uucp names
  487. XR$-=$+            $@$>6$2<@$1.BITNET>        resolve bitnet names
  488. +FUNKY+STUFF+
  489. echo '-rw-r-----  1 root         3987 Apr 24 09:44 base.m4    (as sent)'
  490. chmod u=rw,g=r,o= base.m4
  491. ls -l base.m4
  492. echo x - cirrus.mc
  493. sed 's/^X//' > cirrus.mc <<'+FUNKY+STUFF+'
  494. X############################################################
  495. X############################################################
  496. X#####
  497. X#####        SENDMAIL CONFIGURATION FILE FOR CIRRUS
  498. X#####
  499. X#####    $Header: cirrus.mc,v 4.1 85/04/22 15:13:11 root Rel $
  500. X#####
  501. X############################################################
  502. X############################################################
  503. X
  504. X
  505. X
  506. X############################################################
  507. X###    local info
  508. X############################################################
  509. X
  510. X# internet hostname
  511. XCwgt-cirrus cirrus Cirrus CIRRUS GT-Cirrus GT-CIRRUS GT-cirrus
  512. X
  513. X# UUCP name
  514. XDUgt-cirrus
  515. XCUgt-cirrus cirrus
  516. X
  517. Xinclude(csbase.m4)
  518. Xinclude(shortzero.m4)
  519. +FUNKY+STUFF+
  520. echo '-rw-r-----  1 root          678 Apr 24 09:44 cirrus.mc    (as sent)'
  521. chmod u=rw,g=r,o= cirrus.mc
  522. ls -l cirrus.mc
  523. echo x - csbase.m4
  524. sed 's/^X//' > csbase.m4 <<'+FUNKY+STUFF+'
  525. X#################################################
  526. X#
  527. X#  General configuration information and so on
  528. X#  Specific to GaTech sites
  529. X#
  530. X#  $Header: csbase.m4,v 4.1 85/04/22 15:13:17 root Rel $
  531. X#
  532. X#################################################
  533. X
  534. X######################
  535. X#   General Macros   #
  536. X######################
  537. X
  538. X
  539. X# local domain names
  540. XDDGTNET
  541. XCDgtnet GTNET GTNet GtNet GTnet
  542. X
  543. X# My "top-level" domain (seen on Gatech)
  544. XDTCSNET
  545. X
  546. X# major relay host
  547. XDRgatech
  548. XCRgatech GATECH GATech Gatech GaTech GAtech
  549. X
  550. X# and forwarding host for ether mail
  551. XDFgatech
  552. X
  553. X# my official hostname
  554. XDj$w.$D
  555. X
  556. X# known SMTP/ethernet hosts (this domain only) -- only $R need be complete
  557. XCSgatech Gatech
  558. XCSgitpyr Gitpyr
  559. XCSgt-nimbus nimbus GT-Nimbus Nimbus
  560. XCSgt-cirrus GT-Cirrus cirrus Cirrus
  561. XCSgt-stratus stratus GT-Stratus Stratus
  562. X
  563. X# known top-level domains
  564. XCTARPA UUCP BITNET CSNET MAILNET DEC 
  565. X
  566. X# UUCP hosts that we talk to
  567. XFW/usr/lib/mail/uucp.local
  568. X
  569. X
  570. Xinclude(base.m4)
  571. X
  572. X#######################
  573. X#   Rewriting rules   #
  574. X#######################
  575. X
  576. X##### special local conversions
  577. XS6
  578. X# Recognize "old" syntax mistakes, like UUCP specifications of Ethernet
  579. X#    hosts
  580. XR$*<@$=S.UUCP>        $1<@$2.$D>            uucp-isms
  581. X#
  582. XR$*<@$*$=D>$*        $1<@$2LOCAL>$4            convert local domain
  583. XR$*<@$=S>$*        $1<@$2.LOCAL>$3            user@localhost
  584. XR$*<@$+$=S>$*        $1<@$2$3.LOCAL>$4        user@host.subdomain
  585. XR$*<@$*$=D.$=T>$*    $1<@$2LOCAL>$4            catch "gtnet.csnet"
  586. XR$*<@LOCAL>        $1                degenerate case
  587. X
  588. XR$+%$+<@$R.LOCAL>    $1<@$2.LOCAL>            hacks for % syntax
  589. XR$+%$=S<@$=S.LOCAL>    $1<@$2.LOCAL>            relayed internally
  590. X
  591. XR$*<@$+.$=D.$=D>$*    $1<@$2.$3>$5            make gtnet top level
  592. X
  593. Xinclude(localm.m4)
  594. X
  595. Xinclude(zerobase.m4)
  596. X
  597. +FUNKY+STUFF+
  598. echo '-rw-r-----  1 root         1615 Apr 24 09:44 csbase.m4    (as sent)'
  599. chmod u=rw,g=r,o= csbase.m4
  600. ls -l csbase.m4
  601. echo x - etherm.m4
  602. sed 's/^X//' > etherm.m4 <<'+FUNKY+STUFF+'
  603. X############################################################
  604. X############################################################
  605. X#####
  606. X#####      Ethernet Mailer specification
  607. X#####
  608. X#####      $Header: etherm.m4,v 4.1 85/04/22 15:13:21 root Rel $
  609. X#####
  610. X############################################################
  611. X############################################################
  612. X
  613. XMether,    P=[IPC], F=msDFIMuCX, S=11, A=IPC $h
  614. X
  615. XS11
  616. XR$*<@$+>$*        $@$1<@$2>$3            already ok
  617. XR$+            $@$1<@$w.LOCAL>            tack on our hostname
  618. +FUNKY+STUFF+
  619. echo '-rw-r-----  1 root          495 Apr 24 09:44 etherm.m4    (as sent)'
  620. chmod u=rw,g=r,o= etherm.m4
  621. ls -l etherm.m4
  622. echo x - gatech.mc
  623. sed 's/^X//' > gatech.mc <<'+FUNKY+STUFF+'
  624. X############################################################
  625. X############################################################
  626. X#####
  627. X#####        SENDMAIL CONFIGURATION FILE FOR GATCH
  628. X#####
  629. X#####    This one is the big daddy.  There is no "upstairs"
  630. X#####    to bounce a message to -- except perhaps the CSnet
  631. X#####
  632. X#####    $Header: gatech.mc,v 4.2 85/04/23 11:05:00 root Rel $
  633. X#####
  634. X############################################################
  635. X############################################################
  636. X
  637. X
  638. X
  639. X############################################################
  640. X###    local info
  641. X############################################################
  642. X
  643. X# internet hostname
  644. XCwgatech Gatech GATech GaTech ga-tech
  645. X
  646. X# override SMTP hostname to match Arpanet name
  647. XDj$w.csnet
  648. X
  649. X# Our UUCP hostname(s)
  650. XDUgatech
  651. XCUgatech GATech GaTech
  652. X
  653. X# Defined Gateway sites and so on.  Hosts are listed in files.
  654. X#
  655. X#     ARPA Gateway
  656. XDAcsnet-relay
  657. XFA/usr/lib/mail/arpa.hosts %s
  658. X#
  659. X#    BITNET gateway
  660. XDBwiscvm.arpa
  661. XFB/usr/lib/mail/bitnet.hosts %s
  662. X#
  663. X#     CSNET gateway
  664. XDCcsnet-relay
  665. XFC/usr/lib/mail/csnet.hosts %s
  666. X#
  667. X#       Gateway to Dec E-Net
  668. XDEdecwrl.arpa
  669. XFE/usr/lib/mail/decnet.hosts %s
  670. X#
  671. X#    Gateway to Mailnet.
  672. XDMmit-multics.arpa
  673. X# (no list of sites at this time)
  674. X#
  675. X#    UUCP network
  676. X#  (no gateway host)
  677. XFX/usr/lib/mail/uucp.hosts %s
  678. X
  679. X
  680. X# we have full sendmail support here
  681. XOa
  682. X
  683. Xinclude(csbase.m4)
  684. X
  685. X################################################
  686. X###  Machine dependent part of ruleset zero  ###
  687. X################################################
  688. X
  689. X
  690. X#     Resolve names that can go via the ethernet
  691. XR$*<@$*$=S.LOCAL>$*        $#ether$@$3$:$1<@$2$3.$D>$4    user@etherhost
  692. X
  693. X#     Resolve local UUCP links (all others)
  694. XR<@$+.$-.UUCP>:$+    $#uucp$@$2$:@$1.$2.UUCP:$3    @host.domain.UUCP: ...
  695. XR<@$-.UUCP>:$+        $#uucp$@$1$:$2            @host.UUCP: ...
  696. XR$+<@$+.$-.UUCP>    $#uucp$@$3$:$1@$2.$3.UUCP    user@host.domain.UUCP
  697. XR$+<@$-.UUCP>        $#uucp$@$2$:$1            user@host.UUCP
  698. X
  699. X#
  700. X#    Resolution of the CSNET, ARPA, BITNET and MAILNET domains should really
  701. X#    have some sort of provision for addresses of the form:
  702. X#    "@domain.XXX:rest-of-address" similar to the UUCP stuff
  703. X#
  704. X
  705. X#    Resolve ARPA names - these go by way of the PMDF mailer.
  706. X#       If we had an Arpa link, we'd use the TCP mailer instead.
  707. X#        make sure that we leave the "arpa" in the address
  708. XR$+<@$*.ARPA>        $#pmdf$@$A$:$1<@$2.ARPA>    user@domain.ARPA
  709. X
  710. X# Current: send BITNET mail to a known gatewaying host (wiscvm.arpa)
  711. XR$+<@$*.BITNET>        $@$>0$1%$2.BITNET<@$B>        user@domain.BITNET
  712. X
  713. X#    Resolve mail to the CSNET domain
  714. X#        make sure to leave the "csnet" in the address
  715. XR$+<@$*.CSNET>        $#pmdf$@$C$:$1<@$2.CSNET>    user@domain.CSNET
  716. X
  717. X#    Resolve addresses to the MAILNET domain - these are handled
  718. X#        by the site in the $M macro.  We merely re-iterate rule 0
  719. X#        to get to the site specified by $M.
  720. XR$+<@$*.MAILNET>    $@$>0$1%$2.MAILNET<@$M>        user@domain.MAILNET
  721. X
  722. X#    Resolve DEC E-Net addresses
  723. XR$+<@$*.DEC>        $@$>0$1%$2.DEC<@$E>        user@domain.DEC
  724. X
  725. X#    At this point we look for names of the form
  726. X#    user@site and see if we can intuit a domain for
  727. X#    "site".  If so, we append the domain and try all over again.
  728. XR$+<@$*$=S>        $@$>0$1<@$2$3.$D>        Local host
  729. XR$+<@$*$=W>        $@$>0$1<@$2$3.UUCP>        (local) UUCP host
  730. XR$+<@$*$=C>        $@$>0$1<@$2$3.CSNET>        CSnet host
  731. XR$+<@$*$=A>        $@$>0$1<@$2$3.ARPA>        Arpanet host
  732. XR$+<@$*$=X>        $@$>0$1<@$2$3.UUCP>        (other) UUCP host
  733. XR$+<@$*$=B>        $@$>0$1<@$2$3.BITNET>        BITNET host
  734. XR$+<@$*$=E>        $@$>0$1<@$2$3.DEC>        DEC E-Net host
  735. XR$+<@$*dec-$=E>        $@$>0$1<@$2$3.DEC>        ditto
  736. X
  737. X#    Error on any names with a network in them here since we couldn't
  738. X#    figure out where to send them.
  739. XR$*<@$+>$*        $#error$:Unknown host or domain in address
  740. X
  741. X# remaining names are local (since they aren't on any of our networks)
  742. XR$+            $#local$:$1            everything else
  743. X
  744. X########################################
  745. X###  Host dependent address cleanup  ###
  746. X########################################
  747. X
  748. XS8
  749. XR$*$=U!$+@$+        $3@$4                drop uucp forward
  750. X
  751. X
  752. Xinclude(uumail.m4)
  753. Xinclude(pmdfm.m4)
  754. Xinclude(etherm.m4)
  755. +FUNKY+STUFF+
  756. echo '-rw-r-----  1 root         3912 Apr 24 09:44 gatech.mc    (as sent)'
  757. chmod u=rw,g=r,o= gatech.mc
  758. ls -l gatech.mc
  759. echo x - gitpyr.mc
  760. sed 's/^X//' > gitpyr.mc <<'+FUNKY+STUFF+'
  761. X############################################################
  762. X############################################################
  763. X#####
  764. X#####        SENDMAIL CONFIGURATION FILE FOR GITPYR
  765. X#####
  766. X#####    $Header: gitpyr.mc,v 4.1 85/04/22 15:13:30 root Rel $
  767. X#####
  768. X############################################################
  769. X############################################################
  770. X
  771. X
  772. X
  773. X############################################################
  774. X###    local info
  775. X############################################################
  776. X
  777. X# internet hostname
  778. XCwgitpyr Gitpyr GITPYR
  779. X
  780. X# UUCP name
  781. XDUgitpyr
  782. XCUgitpyr
  783. X
  784. Xinclude(csbase.m4)
  785. Xinclude(shortzero.m4)
  786. +FUNKY+STUFF+
  787. echo '-rw-r-----  1 root          625 Apr 24 09:44 gitpyr.mc    (as sent)'
  788. chmod u=rw,g=r,o= gitpyr.mc
  789. ls -l gitpyr.mc
  790. echo x - gt-cmmsr.mc
  791. sed 's/^X//' > gt-cmmsr.mc <<'+FUNKY+STUFF+'
  792. X############################################################
  793. X############################################################
  794. X#####
  795. X#####        SENDMAIL CONFIGURATION FILE FOR GT-CMMSR
  796. X#####
  797. X#####    $Header: gt-cmmsr.mc,v 4.1 85/04/22 15:13:34 root Rel $
  798. X#####
  799. X############################################################
  800. X############################################################
  801. X
  802. X
  803. X
  804. X############################################################
  805. X###    local info
  806. X############################################################
  807. X
  808. X# internet hostname
  809. XCwgt-cmmsr cmmsr Cirrus CIRRUS GT-Cirrus GT-CIRRUS GT-cmmsr
  810. X
  811. X# UUCP name
  812. XDUgt-cmmsr
  813. XCUgt-cmmsr cmmsr
  814. X
  815. Xinclude(csbase.m4)
  816. Xinclude(short2.m4)
  817. +FUNKY+STUFF+
  818. echo '-rw-r--r--  1 root          673 Apr 24 09:44 gt-cmmsr.mc    (as sent)'
  819. chmod u=rw,g=r,o=r gt-cmmsr.mc
  820. ls -l gt-cmmsr.mc
  821. echo x - localm.m4
  822. sed 's/^X//' > localm.m4 <<'+FUNKY+STUFF+'
  823. X############################################################
  824. X############################################################
  825. X#####
  826. X#####      Local and Program Mailer specification
  827. X#####
  828. X#####      $Header: localm.m4,v 4.1 85/04/22 15:13:39 root Rel $
  829. X#####
  830. X############################################################
  831. X############################################################
  832. X
  833. XMlocal,    P=/bin/mail, F=rlsDFMmn, S=10, A=mail -d $u
  834. XMprog,    P=/bin/sh,   F=lsDFMe,   S=10, A=sh -c $u
  835. X
  836. XS10
  837. XR@            MAILER-DAEMON            errors to mailer-daemon
  838. +FUNKY+STUFF+
  839. echo '-rw-r-----  1 root          523 Apr 24 09:44 localm.m4    (as sent)'
  840. chmod u=rw,g=r,o= localm.m4
  841. ls -l localm.m4
  842. echo x - nimbus.mc
  843. sed 's/^X//' > nimbus.mc <<'+FUNKY+STUFF+'
  844. X############################################################
  845. X############################################################
  846. X#####
  847. X#####        SENDMAIL CONFIGURATION FILE FOR NIMBUS
  848. X#####
  849. X#####    $Header: nimbus.mc,v 4.1 85/04/22 15:13:43 root Rel $
  850. X#####
  851. X############################################################
  852. X############################################################
  853. X
  854. X
  855. X
  856. X############################################################
  857. X###    local info
  858. X############################################################
  859. X
  860. X# internet hostname
  861. XCwgt-nimbus nimbus NIMBUS Nimbus GT-Nimbus GT-nimbus GT-NIMBUS
  862. X
  863. X# UUCP name
  864. XDUgt-nimbus
  865. XCUgt-nimbus nimbus
  866. X
  867. Xinclude(csbase.m4)
  868. Xinclude(shortzero.m4)
  869. +FUNKY+STUFF+
  870. echo '-rw-r-----  1 root          678 Apr 24 09:44 nimbus.mc    (as sent)'
  871. chmod u=rw,g=r,o= nimbus.mc
  872. ls -l nimbus.mc
  873. echo x - pmdfm.m4
  874. sed 's/^X//' > pmdfm.m4 <<'+FUNKY+STUFF+'
  875. X############################################################
  876. X############################################################
  877. X#####
  878. X#####        PMDF Phonenet Channel Mailer specification
  879. X#####
  880. X#####    $Header: pmdfm.m4,v 4.1 85/04/22 15:13:47 root Rel $
  881. X#####
  882. X############################################################
  883. X############################################################
  884. X
  885. XMpmdf,    P=/usr/local/lib/pmdf/pmdf-submit,    F=mDsFSn,    S=17, R=17,
  886. X    M=65535, A=pmdf-submit -f $g $u
  887. X#
  888. X#    Notice that the PMDF mailer DOES NOT USE the host field. We
  889. X#    set this host field to "CSNET-RELAY" in all instances where
  890. X#    we call the PMDF mailer so as to be able to send one copy
  891. X#    of a letter with a number of recipients.
  892. X#
  893. X
  894. XS17
  895. X
  896. X# pass <route-addr>'s through
  897. XR<@$+>$*        $@<@$1>$2            resolve <route-addr>
  898. X
  899. X# map colons to dots everywhere.....
  900. XR$*:$*            $1.$2                map colons to dots
  901. X
  902. X# handle the simple case....
  903. XR$+<@$-.ARPA>        $@$1<@$2.ARPA>            user@host.ARPA
  904. XR$+<@$-.CSNET>        $@$1<@$2.CSNET>            user@host.CSNET
  905. X
  906. XR$+<@LOCAL>        $@$1<@$R.CSNET>            local names
  907. XR$+<@$+.LOCAL>        $@$1%$2<@$R.CSNET>        local notes
  908. XR$+<@$*$=S>        $@$1%$2$3<@$R.CSNET>        more local hosts
  909. X
  910. X# handle other external cases
  911. XR$+<@$->        $@$1<@$2>    
  912. XR$+<@$+.$-.$=T>        $@$1%$2<@$3.$4>            approximate something
  913. XR$+<@[$+]>        $@$1<@[$2]>            already ok
  914. X
  915. X# convert remaining addresses to old format and externalize appropriately
  916. XR$+<@$-.UUCP>        $2!$1                u@host.UUCP => host!u
  917. XR$-:$+            $@$1.$2<@$A>            convert berk hosts
  918. XR$+<@$+>        $@$1%$2<@$A>            pessmize
  919. XR$+            $:$1<@$R.CSNET>            tack on our hostname
  920. XR$+%$=A<@$A>        $1<@$2>                strip out unneeded relay
  921. +FUNKY+STUFF+
  922. echo '-rw-r-----  1 root         1564 Apr 24 09:44 pmdfm.m4    (as sent)'
  923. chmod u=rw,g=r,o= pmdfm.m4
  924. ls -l pmdfm.m4
  925. echo x - short2.m4
  926. sed 's/^X//' > short2.m4 <<'+FUNKY+STUFF+'
  927. X################################################
  928. X###  Machine dependent part of ruleset zero  
  929. X###
  930. X###  Short version for non-ICS machines not on 
  931. X###  common ethernet. (e.g., gt-cmmsr)
  932. X###
  933. X###  $Header: short2.m4,v 4.1 85/04/22 15:13:51 root Rel $
  934. X################################################
  935. X
  936. X# resolve names that we can handle locally
  937. XR<@$=W.UUCP>$+        $#uucp$@$1$:$2            @host.UUCP: ...
  938. XR$+<@$=W.UUCP>        $#uucp$@$2$:$1            user@host.UUCP
  939. X
  940. X# other non-local names will be kicked upstairs
  941. XR$*<@$+>$*        $#uucp$@$F$:$1<@$2>$3        user@some.where
  942. X
  943. X# remaining names must be local
  944. XR$+            $#local$:$1            everything else
  945. X
  946. Xinclude(uucpm.m4)
  947. +FUNKY+STUFF+
  948. echo '-rw-r--r--  1 root          627 Apr 24 09:44 short2.m4    (as sent)'
  949. chmod u=rw,g=r,o=r short2.m4
  950. ls -l short2.m4
  951. echo x - shortzero.m4
  952. sed 's/^X//' > shortzero.m4 <<'+FUNKY+STUFF+'
  953. X################################################
  954. X###  Machine dependent part of ruleset zero  
  955. X###
  956. X###  Short version for ICS machines on common
  957. X###  ethernet. (NOT "gatech")
  958. X###
  959. X###  $Header: shortzero.m4,v 4.1 85/04/22 15:13:55 root Rel $
  960. X################################################
  961. X
  962. X# resolve names that we can handle locally
  963. XR<@$=W.UUCP>$+        $#uucp$@$1$:$2            @host.UUCP: ...
  964. XR$+<@$=W.UUCP>        $#uucp$@$2$:$1            user@host.UUCP
  965. X
  966. X# resolve names that can go via the ethernet
  967. XR$*<@$*$=S.LOCAL>$*    $#ether$@$3$:$1<@$2$3.$D>$4    user@etherhost
  968. X
  969. X# other non-local names will be kicked upstairs
  970. XR$*<@$+>$*        $#ether$@$F$:$1<@$2>$3        user@some.where
  971. X
  972. X# remaining names must be local
  973. XR$+            $#local$:$1            everything else
  974. X
  975. Xinclude(uucpm.m4)
  976. Xinclude(etherm.m4)
  977. +FUNKY+STUFF+
  978. echo '-rw-r--r--  1 root          748 Apr 24 09:44 shortzero.m4    (as sent)'
  979. chmod u=rw,g=r,o=r shortzero.m4
  980. ls -l shortzero.m4
  981. echo x - stratus.mc
  982. sed 's/^X//' > stratus.mc <<'+FUNKY+STUFF+'
  983. X############################################################
  984. X############################################################
  985. X#####
  986. X#####        SENDMAIL CONFIGURATION FILE FOR STRATUS
  987. X#####
  988. X#####    $Header: stratus.mc,v 4.1 85/04/22 15:13:58 root Rel $
  989. X#####
  990. X############################################################
  991. X############################################################
  992. X
  993. X
  994. X
  995. X############################################################
  996. X###    local info
  997. X############################################################
  998. X
  999. X# internet hostname
  1000. XCwgt-stratus stratus STRATUS GT-Stratus GT-STRATUS
  1001. X
  1002. X# UUCP name
  1003. XDUgt-stratus
  1004. XCUgt-stratus stratus
  1005. X
  1006. Xinclude(csbase.m4)
  1007. Xinclude(shortzero.m4)
  1008. +FUNKY+STUFF+
  1009. echo '-rw-r--r--  1 root          671 Apr 24 09:44 stratus.mc    (as sent)'
  1010. chmod u=rw,g=r,o=r stratus.mc
  1011. ls -l stratus.mc
  1012. echo x - tcpm.m4
  1013. sed 's/^X//' > tcpm.m4 <<'+FUNKY+STUFF+'
  1014. X############################################################
  1015. X############################################################
  1016. X#####
  1017. X#####      Arpanet TCP Mailer specification
  1018. X#####
  1019. X#####      $Header: tcpm.m4,v 4.1 85/04/23 11:03:09 root Rel $
  1020. X#####
  1021. X############################################################
  1022. X############################################################
  1023. X
  1024. XMtcp,    P=[IPC], F=msDFMueXL, S=14, R=14, A=IPC $h, E=\r\n
  1025. X
  1026. XS14
  1027. X
  1028. X# pass <route-addr>'s through
  1029. XR<@$+>$*        $@<@$1>$2            resolve <route-addr>
  1030. X
  1031. X# map colons to dots everywhere.....
  1032. XR$*:$*            $1.$2                map colons to dots
  1033. X
  1034. X# handle the simple case....
  1035. XR$+<@$-.ARPA>        $@$1<@$2.ARPA>            user@host.ARPA
  1036. X
  1037. X# output local hosts in user%host@Berkeley syntax
  1038. XR$+<@LOCAL>        $@$1<@$A>            local names
  1039. XR$+<@$+.LOCAL>        $@$1%$2<@$A>            local hosts
  1040. XR$+<@$*$=S>        $@$1%$2$3<@$A>
  1041. XR$+<@$*$=Z>        $@$1%$2$3<@$A>
  1042. X
  1043. X# handle other external cases
  1044. XR$+<@$->        $@$1<@$2>            no .ARPA on simple names
  1045. XR$+<@$+.$-.ARPA>    $@$1%$2<@$3.ARPA>        approximate something
  1046. XR$+<@[$+]>        $@$1<@[$2]>            already ok
  1047. X
  1048. X# convert remaining addresses to old format and externalize appropriately
  1049. XR$+            $:$>5$1                => old format
  1050. XR$-:$+            $@$1.$2<@$A>            convert berk hosts
  1051. XR$+<@$+>        $@$1%$2<@$A>            pessmize
  1052. XR$+            $:$1%$w<@$A>            tack on our hostname
  1053. XR$+%$=R<@$=A>        $1<@$3>                strip unneeded relay
  1054. +FUNKY+STUFF+
  1055. echo '-rw-r-----  1 root         1284 Apr 24 09:44 tcpm.m4    (as sent)'
  1056. chmod u=rw,g=r,o= tcpm.m4
  1057. ls -l tcpm.m4
  1058. echo x - uucpm.m4
  1059. sed 's/^X//' > uucpm.m4 <<'+FUNKY+STUFF+'
  1060. X############################################################
  1061. X############################################################
  1062. X#####
  1063. X#####      UUCP Mailer specification
  1064. X#####
  1065. X#####      $Header: uucpm.m4,v 4.3 85/04/23 18:44:55 root Exp $
  1066. X#####
  1067. X############################################################
  1068. X############################################################
  1069. X
  1070. XMuucp,    P=/usr/bin/uux, F=sDFMuU, S=13, R=23, M=65535,
  1071. X    A=uux - -L -a$f -gC $h!rmail ($u)
  1072. X
  1073. XS13
  1074. XR$+            $:$>5$1                convert to old style
  1075. XR$=w!$+            $2                strip local name
  1076. XR$*<@$->$*        $1<@$2.UUCP>$3            resolve abbreviations
  1077. XR$*<@$*.UUCP>$*        $:$>5$1<@$2.UUCP>$3
  1078. XR$+            $:$U!$1                stick on our host name
  1079. XR$=w!$=R$+        $:$2$3
  1080. XR$*$=w!$=w$*        $1$U$4
  1081. X
  1082. XS23
  1083. XR$+            $:$>5$1                convert to old style
  1084. XR$*<@$=S>$*        $1<@$2.$D.UUCP>$3        resolve abbreviations
  1085. XR$*<@$R.$D.UUCP>$3    $1<@$2.UUCP>$3
  1086. X
  1087. X
  1088. XS5
  1089. XR$+<@$-.LOCAL>        $1%$2                u@h.LOCAL => u%h
  1090. XR$+<@$-.UUCP>        $2!$1                u@host.UUCP => host!u
  1091. XR$+@$+.$=T        $1@$2                u@host.ARPA => u@host
  1092. +FUNKY+STUFF+
  1093. echo '-rw-r-----  1 root          958 Apr 24 09:45 uucpm.m4    (as sent)'
  1094. chmod u=rw,g=r,o= uucpm.m4
  1095. ls -l uucpm.m4
  1096. echo x - uumail.m4
  1097. sed 's/^X//' > uumail.m4 <<'+FUNKY+STUFF+'
  1098. X############################################################
  1099. X############################################################
  1100. X#####
  1101. X#####      UUCP Mailer specification
  1102. X#####   This is for the rerouting mailer on Gatech
  1103. X#####
  1104. X#####      $Header: uumail.m4,v 4.3 85/04/23 18:44:12 root Exp $
  1105. X#####
  1106. X############################################################
  1107. X############################################################
  1108. X
  1109. X# use fancy path expanding UUCP frontend.
  1110. XMuucp,    P=/usr/lib/mail/uumail, F=sCDFMSU, S=13, R=23, M=65535,
  1111. X    A=uumail -f $g $h!$u
  1112. X
  1113. XS13
  1114. XR$+            $:$>5$1                convert to old style
  1115. XR$=w!$+            $2                strip local name
  1116. XR$*<@$->$*        $1<@$2.UUCP>$3            resolve abbreviations
  1117. XR$*<@$*.UUCP>$*        $:$>5$1<@$2.UUCP>$3
  1118. XR$+            $:$U!$1                stick on our host name
  1119. XR$=w!$=R$+        $:$2$3
  1120. XR$*$=w!$=w$*        $1$U$4
  1121. X
  1122. XS23
  1123. XR$+!$+!$+<@$*.UUCP>$*    $2!$3<@$4.UUCP>$5        strip leading sites
  1124. XR$+!$+<@$*.UUCP>$*    $:$2<@$1.UUCP>$4        put in right sitename
  1125. XR$*<@$-.LOCAL>$*    $1<@$2.UUCP>$3
  1126. XR$*<@$=S>$*        $1<@$2.UUCP>$3            resolve abbreviations
  1127. XR$*<@$R.$D.UUCP>$3    $1<@$2.UUCP>$3
  1128. X
  1129. X
  1130. XS5
  1131. XR$+<@$-.LOCAL>        $1%$2                u@h.LOCAL => u%h
  1132. XR$+<@$-.UUCP>        $2!$1                u@host.UUCP => host!u
  1133. +FUNKY+STUFF+
  1134. echo '-rw-r--r--  1 root         1117 Apr 24 09:45 uumail.m4    (as sent)'
  1135. chmod u=rw,g=r,o=r uumail.m4
  1136. ls -l uumail.m4
  1137. echo x - version.m4
  1138. sed 's/^X//' > version.m4 <<'+FUNKY+STUFF+'
  1139. X#    $Header: version.m4,v 4.2 85/04/22 16:15:48 root Rel $
  1140. X
  1141. XDV5.1.GaTech
  1142. +FUNKY+STUFF+
  1143. echo '-rw-r-----  1 root           71 Apr 24 09:44 version.m4    (as sent)'
  1144. chmod u=rw,g=r,o= version.m4
  1145. ls -l version.m4
  1146. echo x - zerobase.m4
  1147. sed 's/^X//' > zerobase.m4 <<'+FUNKY+STUFF+'
  1148. X############################################################
  1149. X############################################################
  1150. X#####
  1151. X#####        RULESET ZERO PREAMBLE
  1152. X#####
  1153. X#####    The beginning of ruleset zero is constant through all
  1154. X#####    configurations.
  1155. X#####
  1156. X#####    $Header: zerobase.m4,v 4.1 85/04/22 15:14:15 root Rel $
  1157. X#####
  1158. X############################################################
  1159. X############################################################
  1160. X
  1161. XS0
  1162. X
  1163. X# first make canonical
  1164. XR$*<$*>$*        $1$2$3                defocus
  1165. XR$+            $:$>3$1                make canonical
  1166. X
  1167. X# handle special cases.....
  1168. XR@            $#local$:MAILER-DAEMON        handle <> form
  1169. X#R$*<@[$+]>$*        $#tcp$@[$2]$:$1@[$2]$3        numeric internet spec
  1170. X
  1171. X# arrange for local names to be fully qualified
  1172. XR$*<$*$=S>$*        $1<$2$3.LOCAL>$4        user@etherhost
  1173. X
  1174. X# now delete the local info
  1175. XR$*<$*$=w.LOCAL>$*    $1<$2>$4            thishost.LOCAL
  1176. XR$*<$*$=w.$T>$*        $1<$2>$4            thishost.ARPA
  1177. XR$*<$*$=w>$*        $1<$2>$4            thishost
  1178. XR$*<$*.>$*        $1<$2>$3            drop trailing dot
  1179. XR<@>:$*            $@$>0$1                retry after route strip
  1180. XR$*<@>            $@$>0$1                strip null trash & retry
  1181. X
  1182. X##################################
  1183. X#  End of ruleset zero preamble  #
  1184. X##################################
  1185. +FUNKY+STUFF+
  1186. echo '-rw-r-----  1 root         1147 Apr 24 09:45 zerobase.m4    (as sent)'
  1187. chmod u=rw,g=r,o= zerobase.m4
  1188. ls -l zerobase.m4
  1189. exit 0
  1190.  
  1191.