home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / mail / sendmail / 3284 < prev    next >
Encoding:
Text File  |  1993-01-28  |  25.6 KB  |  843 lines

  1. Newsgroups: comp.mail.sendmail
  2. Path: sparky!uunet!charon.amdahl.com!pacbell.com!ames!saimiri.primate.wisc.edu!sdd.hp.com!zaphod.mps.ohio-state.edu!uunet.ca!choreo!root
  3. From: root@choreo.ca (Superuser)
  4. Subject: problems with DEC sendmail
  5. X-Disclaimer:  This news article was written by an employee or customer of
  6.                Choreo Systems Inc., and does not necessarily reflect the
  7.                opinions or views of the Managament of Choreo Systems Inc.
  8. Organization: Choreo Systems, Ottawa Canada
  9. Date: Tue, 26 Jan 1993 18:18:29 GMT
  10. Message-ID: <1993Jan26.181829.5257@choreo.ca>
  11. Followup-To: chare@choreo.ca
  12. Lines: 829
  13.  
  14. Greetings:
  15.  
  16. I am in the process of installing a DECstation 3100 for a user here, and we
  17. need to set up sendmail.  I am a novice when it comes to this MTA, as I 
  18. typically work with MMDF.
  19.  
  20. At any rate, when this user sends mail out to our local net, it is returned
  21. from the MAILER-DAEMON with an error that it can't contact a machine called
  22. mail.tcplocal.
  23.  
  24. The relay machine which Ultrix is trying to contact to route the mail is
  25. mail.Choreo.CA.  How do I fix this?
  26.  
  27. This is what my sendmail.cf file looks like.
  28.  
  29. Please reply to my mail address, chare@choreo.ca, as I don't regulary get this
  30. group.
  31.  
  32. Thanks for your help.
  33.  
  34. ############################################################
  35. ############################################################
  36. #####
  37. #####        SENDMAIL CONFIGURATION FILE
  38. #####
  39. #
  40. # @(#)generic.mc    4.1    (ULTRIX)    7/2/90
  41. #
  42. #####        generic configuration
  43. #####
  44. #####
  45. ############################################################
  46. ############################################################
  47.  
  48.  
  49. ############################################################
  50. ###    local info
  51. ############################################################
  52.  
  53.  
  54. # This section specifies data about your environment and how to
  55. # handle mail. The configuration has provisions for several (independent)
  56. # mail relay machines for handling different kinds of mail.
  57. # Below these are all given the name "RELAY". If you need or want this
  58. # kind of relay you will need to uncomment the line and put in the name
  59. # of the appropriate host.
  60. #
  61. # The relay machines are specified separately for each kind of mail
  62. # so you can spread out the load. On the other hand they could all
  63. # point to the same machine to centralize information. The relay can
  64. # even name this machine and the "right thing" will happen. When adding
  65. # relay names, be sure to put the first name directly next to the
  66. # name of the macro or class - do not put a space between it. Also, remember
  67. # to uncomment it by removing the pound sign "#".
  68. # Relay machine names should be expressed as the simple unqualified host
  69. # name. ie. Do not include the domain specifiation of the host in the macro
  70. # definition of the relay name.
  71. #
  72. # For example, the general purpose relay example is given as:
  73. #
  74. #    start of line ->#DRRELAY
  75. #
  76. # To make "foo" your general purpose relay, change the line to:
  77. #
  78. #    start of line ->DRfoo
  79. #
  80. # The $w macro is preset by sendmail to the current host's unqualified
  81. # host name. Here we simply capture the value in our own $A macro.
  82. #
  83. DA$w
  84.  
  85.  
  86. # The $D macro will be the domain for this machine. If your machine
  87. # is part of a registered domain, that name should be defined here.
  88. #
  89. # If you don't have a domain, leave it defined as local. Some typical
  90. # domains are DEC.COM, ARPA, MIT.EDU, CSS.GOV.
  91. #
  92. # Do not add domain definitions to the $D macro. The macro should be
  93. # re-defined to specify the primary internet domain for this machine.
  94. # Additional domains for this machine may ge given in the  CLASS  "D"
  95. # definitions below.
  96. #
  97. DDChoreo.CA
  98.  
  99. # These are other "domains" in which this machine may be named. They
  100. # are used to recognize all forms of the name for the local machine.
  101. #
  102. #CDlocal uucp dnet
  103. #
  104. # These are pseudo domains used internally. They are not part of
  105. # the real Internet system and must not be allowed to escape.
  106. #
  107. CIlocal uucp dnet
  108.  
  109.  
  110. # The $j macro is the name presented to remote SMTP servers when
  111. # establishing a mail connection. It should always be your fully
  112. # qualified domain name.
  113. #
  114. Dj$w.$D
  115.  
  116.  
  117. # The $U macro is the name of this machine for UUCP communications.
  118. # It is usually the same as the normal host name, but may need to be
  119. # different for various site-specific reasons.
  120. #
  121. DU$w
  122.  
  123.  
  124. # The $Y macro should define the name of this system for  DECnet
  125. # communications. It is intended for use in the DECnet mail ruleset.
  126. # This is the DECnet node name to be used for DECnet mail. It does not
  127. # necessarily need to be the same as the hostname and most probably could
  128. # not be in any case. U**x hostnames can be 255 characters long and contain
  129. # imbedded domain information, while DECnet node names are limited to a
  130. # maximum of 6 plain ascii characters.
  131. #
  132. DY$w
  133.  
  134.  
  135. # The $w CLASS can be used to define "nicknames" for the local host.
  136. # These are alternate names that other systems may use to direct mail
  137. # to the local host. If this feature is used, the class should contain
  138. # the set of all names by which this host is known by. This feature might
  139. # normally be used when the local host name is revised but it is not feasable
  140. # to notify all other hosts of the new name. Additionally, it may be that
  141. # the local host is known by one name on the internet and another name on
  142. # additional networks to which this host is connected.
  143. #
  144. #
  145. #CwMyUnqualifiedHostName  AnAlternateName  NameUsedOnOtherNetwork 
  146.  
  147.  
  148. # The $S class can be used to identify "local" machines. Mail to these
  149. # machines will include the sender's and receiver's host names but will
  150. # omit the domain in order to reduce the visual clutter. Mail delivered
  151. # by SMTP to other (non-local) hosts will use full qualification.
  152. #
  153. # If your /etc/hosts file contains only local hosts, you can read the names
  154. # directly from /etc/hosts. Otherwise you should produce a separate list
  155. # of local host names in /usr/lib/hosts.local. Both forms are shown below.
  156. #
  157. #FS/usr/lib/hosts.local
  158. #FS/etc/hosts %*[0-9.]%s
  159.  
  160.  
  161. # The $R macro is the simple unqualifed host name of your general purpose
  162. # relay machine. Any mail that cannot be resolved locally is forwarded to
  163. # this machine for processing. It gets anything not covered by the other
  164. # relay hosts.
  165. #
  166. DRmail.Choreo.CA
  167.  
  168.  
  169. # The $F macro and class defines a named list of hosts and a relay machine
  170. # to handle their mail. This is not normally used, but is included in the
  171. # rewrite rules in case the need should arise.
  172. #
  173. #DFRELAY
  174. #CFred blue green
  175.  
  176.  
  177. # The $E macro defines the relay host for dnet (DECNET) connections.
  178. # You need this only if your machine is not running DECNET but depending
  179. # on some other local machine to relay DECNET mail.
  180. #
  181. #DERELAY
  182.  
  183.  
  184. # The $Z macro names the relay for UUCP mail for sites not directly
  185. # reachable by this host. The list of reachable sites is read from
  186. # the UUCP L.sys file and assigned to the $Z class once when the
  187. # config file is frozen.
  188. #
  189. # *WARNING* You must refreeze the sendmail config file every time
  190. # you add a new host to uucp, or else sendmail will not know about
  191. # it.  If you use uucpsetup to add new hosts, this will be done
  192. # for you automatically - if you add hosts to L.sys by hand, you
  193. # must do it yourself. Type: "/usr/lib/sendmail -bz" as root.
  194. #
  195. DZmail
  196. #FZ/usr/lib/uucp/L.sys %[0-9a-zA-Z_-]
  197.  
  198.  
  199. # The $N macro and class allow you to establish a central site for resolving
  200. # user names which are not known locally. If you use this the relay machine
  201. # will be passed any mail which is not for someone listed in /etc/passwd.
  202. # In particular this means that all alias processing will be passed to the
  203. # relay. You can add additional names to the N class to handle specific local
  204. # aliases such as postmaster.
  205. #
  206. #
  207. ###################################
  208. ### Notes for Name Server Users ###
  209. ###################################
  210. #
  211. # For installations running one or both name servers, Yellow Pages or
  212. # Hesiod/BIND, locally known users include (by default) those users defined
  213. # in the Yellow Pages maps, passwd.byname and mail.aliases, or the Hesiod
  214. # passwd and aliases database.  If the user is not found in the /etc/passwd
  215. # file, sendmail will check the above maps before passing the mail on to the
  216. # central site for resolution.  If you do not want to consider such users as
  217. # "local" for mailing purposes, comment out the rules defined under the
  218. # sections labeled
  219. #
  220. #        ############################################
  221. #        ### Optional Rules for Name Server Users ###
  222. #        ############################################
  223. #
  224. # in the  "Machine dependent part of ruleset zero"  definitions below. 
  225. #
  226. #######################################
  227. ### end Notes for Name Server Users ###
  228. #######################################
  229. #
  230. #
  231. # WARNING: If you use this feature you must refreeze the configuration file
  232. # (via /usr/lib/sendmail -bz) every time a user is added or deleted from
  233. # /etc/passwd. Also you will not be able to establish any local aliases
  234. # other than those listed in class N below.
  235. #
  236. DNmail
  237. FN/etc/passwd %[0-9a-zA-Z_-]
  238. CN MAILER-DAEMON postmaster admin
  239. #
  240.  
  241. ############################################################
  242. #
  243. # @(#)base.m4    4.1    (ULTRIX)    7/2/90
  244. #
  245. #    General configuration information
  246. #
  247. #    This information is basically just "boiler-plate"; it must be
  248. #    there, but is essentially constant.
  249. #
  250. #    Information in this file should be independent of location --
  251. #    i.e., although there are some policy decisions made, they are
  252. #    not specific to any specific site.
  253. #
  254. #
  255. ############################################################
  256.  
  257. #        @(#)version.m4    4.1    (ULTRIX)    7/2/90
  258.  
  259. DVUltrix3.0-C/CH-Tue Jan 26 12:28:47 EST 1993
  260. #
  261.  
  262.  
  263. #
  264. # @(#)base.m4    4.1    (ULTRIX)    7/2/90
  265. #
  266. ##########################
  267. ###   Special macros   ###
  268. ##########################
  269.  
  270. # my name
  271. DnMAILER-DAEMON
  272. # UNIX header format
  273. DlFrom $g  $d
  274. # delimiter (operator) characters
  275. Do.:%@!^=/[]
  276. # format of a total name
  277. Dq$g$?x ($x)$.
  278. # SMTP login message
  279. De$j Sendmail $v/$V ready at $b
  280. #
  281. # forwarding host -- redefine this if you can't talk to the relay directly
  282. DF$R
  283. #
  284.  
  285. ###################
  286. ###   Options   ###
  287. ###################
  288.  
  289. # location of alias file
  290. OA/usr/lib/aliases
  291.  
  292. # default delivery mode (deliver in background)
  293. Odbackground
  294.  
  295. # (don't) connect to "expensive" mailers
  296. #Oc
  297.  
  298. # temporary file mode
  299. OF0600
  300.  
  301. # default GID
  302. Og1
  303.  
  304. # location of help file
  305. OH/usr/lib/sendmail.hf
  306.  
  307. # log level
  308. OL9
  309.  
  310. # send to me to in alias expansion
  311. Om
  312.  
  313. # default messages to old style
  314. Oo
  315.  
  316. # queue directory
  317. OQ/usr/spool/mqueue
  318.  
  319. # read timeout -- violates protocols
  320. Or2h
  321.  
  322. # status file
  323. OS/usr/lib/sendmail.st
  324.  
  325. # queue up everything before starting transmission
  326. Os
  327.  
  328. # default timeout interval
  329. OT3d
  330.  
  331. # time zone names (V6 only)
  332. OtEST,EDT
  333.  
  334. # default UID
  335. Ou1
  336.  
  337. # Configuration options to adjust for system load conditions.
  338. #
  339. # Option  "x"  specifies the load average at which point sendmail
  340. # just queues messages for later delivery. The internal default is
  341. # a load average of 8 and need not be explicitly stated in the
  342. # configuration file.
  343. #
  344. # Large systems (8800 class) can set this value to about 20 to 25
  345. # while small systems (uvax) should run at about 4.
  346. #
  347. # The exact setting depends on processor speed, swap space, memory
  348. # size, and normal load average. The load average of your system
  349. # should be checked during a normal work period and the "x" option
  350. # set to a few degrees higher. Too low a value will cause mail to
  351. # be unneccessarily delayed, while too high a value may tend to
  352. # increase the load on the machine during transient peaks.
  353. #
  354. Ox8
  355. #
  356. # Option "X" (upper case) specifies the load average at which point
  357. # sendmail will refuse further connections.
  358. # The internal default is 12. 
  359. #
  360. # Large systems (8800 class) can set this at approximately 25 to 30. The
  361. # same comments apply here as for option "x" (lower case). Small systems
  362. # (uvax, small memory, limited swap space) should run at about 5 or 6.
  363. #
  364. OX12
  365.  
  366. ###############################
  367. ###   Message precedences   ###
  368. ###############################
  369.  
  370. Pfirst-class=0
  371. Pspecial-delivery=100
  372. Pjunk=-100
  373.  
  374. #########################
  375. ###   Trusted users   ###
  376. #########################
  377.  
  378. Troot
  379. Tdaemon
  380. Tuucp
  381. Tnetwork
  382.  
  383. #############################
  384. ###   Format of headers   ###
  385. #############################
  386.  
  387. H?P?Return-Path: <$g>
  388. H?R?Received: $?sfrom $s $.by $j ($v/$V)
  389.     id $i; $b
  390. H?D?Resent-Date: $a
  391. H?D?Date: $a
  392. H?F?Resent-From: $q
  393. H?F?From: $q
  394. H?x?Full-Name: $x
  395. HSubject:
  396. HPosted-Date: $a
  397. H?l?Received-Date: $b
  398. H?M?Resent-Message-Id: <$t.$i@$j>
  399. H?M?Message-Id: <$t.$i@$j>
  400. HOrganization: Choreo Systems Inc., Ottawa Technical Services Group
  401.  
  402. ###########################
  403. ###   Rewriting rules   ###
  404. ###########################
  405.  
  406.  
  407. ################################
  408. #  Sender Field Pre-rewriting  #
  409. ################################
  410. S1
  411. #R$*<$*>$*        $1$2$3                defocus
  412.  
  413. ###################################
  414. #  Recipient Field Pre-rewriting  #
  415. ###################################
  416. S2
  417. #R$*<$*>$*        $1$2$3                defocus
  418.  
  419. #################################
  420. #  Final Output Post-rewriting  #
  421. #################################
  422. S4
  423.  
  424. R@            $@                handle <> error addr
  425.  
  426. # resolve numeric addresses to name if possible
  427. R$*<@[$+]>$*        $:$1<@$[[$2]$]>$3        lookup numeric addr
  428.  
  429. # externalize local domain info
  430. R$*<@LOCAL>$*        $:$1<@$A>$2            change local info
  431. R$*<$*.LOCAL>$*        $:$1<$2.$D>$3            change local info
  432. R$*<$+>$*        $1$2$3                defocus
  433. R@$+:$+:$+        @$1,$2:$3            <route-addr> canonical
  434. R@$+:$+            $@<@$1:$2>            route-addr needs <>
  435.  
  436. # UUCP must always be presented in old form
  437. R$+@$-.UUCP        $2!$1                u@h.UUCP => h!u
  438.  
  439. # Put MAIL-11 back in :: form
  440. R$+@$-.DNET        $2::$1                u@h.dnet => h::u
  441. R$+@$-.$-.DNET        $2.$3::$1            numeric form
  442.  
  443. # delete duplicate local names -- mostly for arpaproto.mc
  444. R$+%$=w@$=w        $1@$3                u%UCB@UCB => u@UCB
  445. R$+%$=w@$=w.$D        $1@$3.$D            u%UCB@UCB => u@UCB
  446.  
  447. ###########################
  448. #  Name Canonicalization  #
  449. ###########################
  450. S3
  451.  
  452. # handle "from:<>" special case
  453. R<>            $@@                turn into magic token
  454.  
  455. # basic textual canonicalization
  456. R$*<$*<$*<$+>$*>$*>$*    $4                3-level <> nesting
  457. R$*<$*<$+>$*>$*        $3                2-level <> nesting
  458. R$*<$+>$*        $2                basic RFC821/822 parsing
  459. R$+ at $+        $1@$2                "at" -> "@" for RFC 822
  460. R$*<$*>$*        $1$2$3                in case recursive
  461.  
  462. # make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later
  463. R@$+,$+            @$1:$2                change all "," to ":"
  464.  
  465. # localize and dispose of domain-based addresses
  466. R@$+:$+            $@$>6<@$1>:$2            handle <route-addr>
  467.  
  468. # more miscellaneous cleanup
  469. R$=w::$-$+        $2$3                clean off my name
  470. R$+            $:$>8$1                host dependent cleanup
  471. R$+:$*;@$+        $@$1:$2;@$3            list syntax
  472. R$+@$+            $:$1<@$2>            focus on domain
  473. R$+<$+@$+>        $1$2<@$3>            move gaze right
  474. R$+<@$+%$+>        $1%$2<@$3>            move gaze right
  475. R$-!$+<@$~S>        $1!$2@$3            defocus - not local host
  476. R$-::$+<@$~S>        $1::$2@$3            defocus - not local host
  477. R$+<@$+>        $@$>6$1<@$2>            already canonical
  478.  
  479. # localize mail-11 syntax
  480. R$-::$+            $@$>6$2<@$1.dnet>        host::user
  481. R$-.$-::$+        $@$>6$3<@$1.$2.dnet>        numeric decnet addr
  482.  
  483. # convert old-style addresses to a domain-based address
  484. R$+%$+            $:$1<@$2>            user%host
  485. R$+<@$+%$+>        $1%$2<@$3>            move "@" right
  486. R$+<@$+>        $@$>6$1<@$2>            now canonical
  487. R$-:$+            $@$>6$2<@$1>            host:user
  488. R$-.$+!$+        $@$>6$3<@$1.$2>            host.domain!user
  489. R$-!$+            $@$>6$2<@$1.UUCP>        resolve uucp names
  490.  
  491.  
  492.  
  493. ############################################################
  494. ############################################################
  495. #####
  496. #####           local conventions
  497. #
  498. # @(#)localbase.m4    4.1    (ULTRIX)    7/2/90
  499. #####
  500. #####
  501. #####
  502. ############################################################
  503. ############################################################
  504.  
  505. ##### special local conversions
  506.  
  507. # Here you can any special local rewriting rules and keep them all
  508. # in one place. Ruleset 8 is invoked at the beginning of ruleset 3
  509. # and ruleset 6 is invoked at the end. Ruleset 3 always returns
  510. # the result of a call to ruleset 6.
  511.  
  512. S8
  513. # empty
  514.  
  515. S6
  516. #
  517. R$*<@$w>$*        $:$1<@$w>$2            localhost.domain
  518. R$+<@$=w>        $:$1<@$w>            localhost
  519. R$-$+<@$w>        $@$>3$1$2            localhost
  520. R$-$+<@$=w.$D>        $@$>3$1$2            localhost
  521. R$-$+<@$=w.$=D>        $@$>3$1$2            other local domains
  522. R$+<@$=S>$*        $@$1<@$2.LOCAL>$3        localhost
  523. R$+<@$=S.$D>$*        $@$1<@$2.LOCAL>$3        localhost
  524. R$+<@$=S.$=D>$*        $@$1<@$2.LOCAL>$4        other local domains
  525. #
  526. R$*<@$+>$*        $@$1<@$2>$3            already ok
  527.  
  528.  
  529.  
  530. ############################################################
  531. ############################################################
  532. #####
  533. #####        RULESET ZERO PREAMBLE
  534. #####
  535. #####    The beginning of ruleset zero is constant through all
  536. #####    configurations.
  537. #####
  538. # @(#)zerobase.m4    4.1    (ULTRIX)    7/2/90
  539. #####
  540. ############################################################
  541. ############################################################
  542.  
  543. S9
  544. # rerun ruleset 3 and then call 0 again
  545. R$+            $:$>3$1
  546. R$+            $@$>0$1
  547.  
  548. S0
  549.  
  550. # first make canonical (necessary for recursion)
  551. #R$+            $:$>3$1                make canonical
  552.  
  553. # handle special cases.....
  554. R@            $#local$:MAILER-DAEMON        handle <> form
  555. R$*<@[$+]>$*        $:$1<@$[[$2]$]>$3        lookup numeric addr
  556. R$*<@[$+]>$*        $#tcp$@[$2]$:$1@[$2]$3        numeric internet spec
  557.  
  558. # arrange for local names to be fully qualified
  559. R$*<$*$=S>$*        $1<$2$3.LOCAL>$4        user@etherhost
  560.  
  561. # canonicalize using the nameserver if not internal domain
  562. R$*<@$*.$~I>$*        $:$1<@$[$2.$3$]>$4
  563. R$*<@$->$*        $:$1<@$[$2$]>$3
  564.  
  565. # now delete the local info
  566. R$*<$*$=w.$D>$*        $1<$2>$4            thishost.thisdomain
  567. R$*<$*$=w.$=D>$*    $1<$2>$5            thishost.localdomain
  568. R$*<$*$=w>$*        $1<$2>$4            thishost
  569. R$*<$*.>$*        $1<$2>$3            drop trailing dot
  570. R<@>:$*            $@$>9$1                retry after route strip
  571. R$*<@>            $@$>9$1                strip null trash & retry
  572. R$*<@LOCAL>        $@$>9$1                strip null trash & retry
  573.  
  574.  
  575. ##################################
  576. #  End of ruleset zero preamble  #
  577. ##################################
  578.  
  579.  
  580. ################################################
  581. ###  Machine dependent part of ruleset zero  ###
  582. ################################################
  583. #
  584. # @(#)generic.mc    4.1    (ULTRIX)    7/2/90
  585. #
  586. # short circuit local hosts
  587.  
  588. R$*<@$=S.UUCP>$*    $1<@$2.LOCAL>$3            uucp => local
  589. R$*<@$=S.dnet>$*    $1<@$2.LOCAL>$3            dnet => local
  590. R$*<@$=S.$D>$*        $:$1<@$2.LOCAL>$3        domain => local
  591.  
  592. # if we do not have dnet, send to forwarder
  593. R$+<@$+.dnet>$*        $:$?E$1%$2.dnet<@$E.LOCAL>$3$|$1<@$2.dnet>$3$.
  594.  
  595. # forward uucp we don't know to primary forwarder
  596. R$*<@$~Z.UUCP>$*    $:$?Z$1%$2.UUCP<@$Z.LOCAL>$3$|$1<@$2.UUCP>$3$.
  597.  
  598. # forward around hosts with communication problems
  599. R$*<@$=F.LOCAL>$*    $1%$2.LOCAL<@$F.LOCAL>$3    reroute message
  600.  
  601. # Undo forwarding if we are forwarder
  602. R$+%$+.$-<@$=w.LOCAL>$*    $1<@$2.$3>$5            if we are forwarder
  603.  
  604. # resolve names we can handle locally
  605. R$*<@LOCAL>$*        $#local$:$1$2            local
  606.  
  607. # first handle local network traffic double check that we know the host
  608. #R$*<@$~S.LOCAL>$*    $#error$:Host $2 not connected to $w via tcp
  609. #R$*<@$->$*        $#error$:Host $2 not connected to $w via tcp
  610. R$*<@$-.LOCAL>        $#tcplocal$@$2$:$1<@$2>        user@tcphost.LOCAL
  611. R$*<@$-.LOCAL>$+    $#tcplocal$@$2$:$1<@$2.LOCAL>$3    user@tcphost.LOCAL
  612.  
  613. # Do umc mailings
  614. R$*<@$+.umc>$*        $#umc$@$2$:$1<@$2>$3        user@host.umc
  615.  
  616.  
  617. # Echotest mailer (for debug via mail -v echotest::user)
  618. R$+<@echotest.dnet>    $#Echo$@echotest$:$1
  619.  
  620.  
  621. # handle dnet mail
  622. R$+<@$+.dnet>        $#Dmail$@$2$:$1            dnet user
  623.  
  624.  
  625. # handle uucp traffic.  double check that we know the host
  626. R$*<@$~Z.UUCP>$*    $#error$:Host $2 not connected to $w via uucp
  627. R<@$+.UUCP>:$+        $1!$2                to old format
  628. R$+<@$+.UUCP>        $2!$1                to old format
  629. R$-!$+            $#uucp$@$1$:$2            host!...
  630.  
  631.  
  632. # all other domains try for forwarder, if defined
  633. R$*<@$+.$->$*        $:$?R$1<@$2.$3>$4<@$R>$|$1<@$2.$3>$4$.
  634. R$*<@$+.$->$*<@$=w>    $#tcp$@$2.$3$:$1<@$2.$3>$4    we are forwarder
  635. R$*<@$+.$->$*<@$+>    $#tcplocal$@$5$:$1<@$2.$3>$4    pass it on
  636.  
  637.  
  638. # no forwarder, try for tcp connection
  639. R$*<@$+>$*        $#tcp$@$2$:$1<@$2>$3        user@tcphost.domain
  640.  
  641.  
  642. # at this point, we are trying a local name.  if we don't
  643. # recognize it, forward to name forwarder host if defined.
  644. #
  645. #        ############################################
  646. #        ### Optional Rules for Name Server Users ###
  647. #        ############################################
  648. #
  649. # For installations running one or both name servers, Yellow Pages or
  650. # Hesiod/BIND, names defined in the Yellow Pages maps, passwd.byname and
  651. # mail.aliases, or the Hesiod passwd and aliases databases are considered to
  652. # be local.  If the system is not running a name server, the next two rules
  653. # produce no effect. The next TWO rules may be commented out if you are
  654. # running Yellow Pages or Hesiod/BIND but do not want users defined in the
  655. # YP passwd.byname and mail.aliases maps or the Hesiod passwd and aliases
  656. # databases to be considered as "local" to your system. That is, delivery of
  657. # mail for those users will be attempted on the local machine.  If the rules
  658. # are commented out, the mail will be sent to the name forwarder for resolution
  659. # if one is defined.  If no name forwarder is defined, the mail will be
  660. # rejected as "user unknown".
  661. #
  662.  
  663. R${$*            $#local$:$1    if in YP or Hesiod passwd map, assume local
  664. R$"$*            $#local$:$1    if in YP or Hesiod aliases map, assume local
  665.  
  666.  
  667. R$~N            $:$?N$1<@$N.LOCAL>$|$1$.    not local, redirect
  668. R$*<@$=w.LOCAL>$*    $1                but, there's more to it.
  669. #                            If we are the forwarder,
  670. #                            hope it is an alias.
  671. R$*<@$*$-.LOCAL>$*    $#tcplocal$@$3$:$1<@$2$3.LOCAL>$4    let name forwarder do it
  672.  
  673. # everything else must be a local name
  674. R$+            $#local$:$1            local names
  675.  
  676. ############################################################
  677. ############################################################
  678. #####
  679. #####        Local and Program Mailer specification
  680. #####
  681. #        @(#)localm.m4    2.2    (ULTRIX)    4/12/89
  682. #####
  683. ############################################################
  684. ############################################################
  685.  
  686. Mlocal,    P=/bin/mail, F=lsDFmn, S=10, R=10, A=mail -r $f -d $u
  687. Mprog,    P=/bin/sh,   F=lsDFRe,   S=10, R=10, A=sh -c $u
  688.  
  689. S10
  690. R$+<@LOCAL>        $@$1                delete LOCAL
  691. R$+<@$-.LOCAL>        $@$1<@$2>            delete .LOCAL
  692. R@            $@MAILER-DAEMON            errors to mailer-daemon
  693.  
  694. ############################################################
  695. ############################################################
  696. #####
  697. #####        Mail-Plus Mailer
  698. #####
  699. # @(#)umc.m4    4.1    (ULTRIX)    7/2/90
  700. #####
  701. ############################################################
  702. ############################################################
  703.  
  704. Mumc,    P=/usr/var/umc/mr_mailer, F=mnDFMeCS, S=19, R=19, A=mr_mailer -send -hop $c -from $f -to $u
  705.  
  706.  
  707.  
  708. ############################################################
  709. ############################################################
  710. #####
  711. #####        Mail-11 Mailer
  712. #####
  713. #####        @(#)xm.m4    4.1    (ULTRIX)    7/2/90
  714. #####
  715. ############################################################
  716. ############################################################
  717.  
  718. MDmail,    P=/usr/bin/mail11v3, F=mnSXxH, S=17, R=18, A=mail11 $f $x $h
  719.  
  720. S17
  721. R$+            $:$>18$1            preprocess
  722. R$Y::$+            $@$Y::$1            ready to go
  723.  
  724. S18
  725. R$+<@$-.UUCP>        $:$2!$1                back to old style
  726. R$+<@$-.DNET>        $:$2::$1            convert to dnet style
  727. R$+<@$-.LOCAL>        $:$2::$1            convert to dnet style
  728. R$+<@$=S>        $:$2::$1            convert to dnet style
  729. R$+<@$=S.$D>        $:$2::$1            convert to dnet style
  730. R$=S::$+        $2                strip local names
  731. R$+::$+            $@$1::$2            already qualified
  732.  
  733.  
  734.  
  735. ############################################################
  736. ############################################################
  737. #####
  738. #####        Arpanet TCP Mailer specification
  739. #####
  740. # @(#)tcpm.m4    4.1    (ULTRIX)    7/2/90
  741. #####
  742. ############################################################
  743. ############################################################
  744.  
  745. Mtcp,    P=[IPC], F=mDFMueCXLR, S=14, R=14, A=IPC $h, E=\r\n
  746. Mtcplocal,    P=[IPC], F=mDFMueCXLR, S=19, R=19, A=IPC $h, E=\r\n
  747.  
  748. S14
  749.  
  750. # pass <route-addr>'s through
  751. R<@$+>$*        $@<@$[$1$]>$2            resolve <route-addr>
  752.  
  753. # gatewayed to/from DNET
  754. R$+<@$-.DNET>$*        $@$1%$2.dnet<@$A>$3    user@host.DNET
  755.  
  756. # gatewayed to/from UUCP
  757. R$+<@$-.UUCP>$*        $@$2!$1<@$A>$3        user@host.DNET
  758.  
  759. # strip local host names if we are forwarder
  760. R$+<@$=S>        $:$1<@$2>$?R<$R>$.        add forwarder
  761. R$+<@$=S.$D>        $:$1<@$2.$3>$?R<$R>$.
  762. R$+<@$+.LOCAL>        $:$?R$1<@$2.LOCAL><$R>$|$1<@$2>$.
  763.  
  764. R$+<@$=S><$=w>        $:$1                strip name
  765. R$+<@$=S.$D><$=w>    $:$1
  766. R$+<@$+.LOCAL><$=w>    $:$1
  767. R$+<$R>            $:$1                remove forwarder name
  768.  
  769. # tack on our name and domain
  770. R$-            $@$1<@$A.$D>            local names
  771. R$+<@LOCAL>        $@$1<@$A.$D>            local names
  772. R$+<@$+.LOCAL>        $@$1<@$2.$D>            local hosts
  773. R$+<@$=S>        $@$1<@$2.$D>            local hosts
  774.  
  775. # canonicalize
  776. R$+<@$->        $@$1<@$[$2$]>            simple name
  777. R$+<@[$+]>        $@$1<@[$2]>            numeric ok
  778. R$+<@$+>        $@$1<@$[$2$]>            user@host.domain
  779.  
  780.  
  781. S19
  782. # Delete domain on local hosts.
  783. R$+<@LOCAL>        $@$1<@$w>
  784. R$+<@$=S>        $@$1<@$2>
  785. R$+<@$=S.$D>        $@$1<@$2>
  786. R$+<@$=S.LOCAL>        $@$1<@$2>
  787. R$+<@$+.$=D>        $@$1<@$2.$3>            leave local domains
  788. R$-            $@$1<@$A>            qualify simple name
  789.  
  790. # Do normal rewrite if all else fails.
  791. R$+            $@$>14$1
  792.  
  793.  
  794. ############################################################
  795. ############################################################
  796. #####
  797. #####        UUCP Mailer specification
  798. #####
  799. #        @(#)uucpm.m4    4.1    (ULTRIX)    7/2/90
  800. #####
  801. ############################################################
  802. ############################################################
  803.  
  804. # There are two options for the uucp mailer presented here. The only
  805. # difference is the -r option to uux. With the -r option, uucp mail
  806. # will be queued until some other process forces a call to be made.
  807. # Without the -r option, a call will be attempted immediately to
  808. # deliver this message, although the normal uucp rules about when to
  809. # call still apply.
  810. #
  811. # This one just queues the message for a later uucp call.
  812. #Muucp,    P=/usr/bin/uux, F=sDFhuU, S=13, R=23, M=100000,
  813. #    A=uux - -r $h!rmail ($u)
  814. #
  815. # This one attempts a call immediately.
  816. Muucp,    P=/usr/bin/uux, F=sDFhuU, S=13, R=23, M=100000,
  817.     A=uux - $h!rmail ($u)
  818. #
  819. # This mailer lets you pretend to speak uucp to a host with which you have
  820. # an IP/TCP connection. It uses UUCP address rewrite rules with TCP
  821. # message transport. Hosts to be given this treatment must be identified
  822. # by ruleset zero.
  823. Muucptcp,    P=[IPC], F=msDFMhuX, S=13, R=23, M=100000, A=IPC $h
  824.  
  825. S13
  826. R$+            $:$>23$1            prescan
  827. R$U!$+            $@$U!$1                ready to go
  828. R$+            $@$U!$1                stick on our host name
  829.  
  830. S23
  831. R$+<@$-.UUCP>        $2!$1                old form
  832. R$+<@$=S>        $1                strip local names
  833. R$+<@$=S.$=D>        $1                strip local names
  834. R$+<@$-.DNET>        $2.dnet!$1            old form
  835. R$+<@$+>        $2!$1                old form
  836. R$=S!$+            $2                strip local name
  837. R$=S.$D!$+        $2                strip local name
  838. R$=S.$=D!$+        $2                strip local name
  839. #R$-            $U!$1                stick on our host name
  840.  
  841.  
  842.