home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume10 / ida / part06 < prev    next >
Encoding:
Internet Message Format  |  1987-06-22  |  43.1 KB

  1. Path: uunet!rs
  2. From: rs@uunet.UU.NET (Rich Salz)
  3. Newsgroups: comp.sources.unix
  4. Subject: v10i017:  The IDA Sendmail Kit, Part06/07
  5. Message-ID: <436@uunet.UU.NET>
  6. Date: 24 Jun 87 00:56:58 GMT
  7. Organization: UUNET Communications Services, Arlington, VA
  8. Lines: 1401
  9. Approved: rs@uunet.uu.net
  10.  
  11. Mod.sources: Volume 10, Number 17
  12. Submitted by: Lennart Lovstrand <mcvax!ida.liu.se!lel>
  13. Archive-name: ida/Part06
  14.  
  15.  
  16. #! /bin/sh
  17. # This is a shell archive.  Remove anything before this line, then unpack
  18. # it by saving it into a file and typing "sh file".  To overwrite existing
  19. # files, type "sh file -c".  You can also feed this as standard input via
  20. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  21. # will see the following message at the end:
  22. #        "End of archive 6 (of 7)."
  23. # Contents:  ida/doc/part1.ms
  24. # Wrapped by lenlo@prefix on Wed Jun 10 15:39:57 1987
  25. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  26. if test -f ida/doc/part1.ms -a "${1}" != "-c" ; then 
  27.   echo shar: Will not over-write existing file \"ida/doc/part1.ms\"
  28. else
  29. echo shar: Extracting \"ida/doc/part1.ms\" \(40946 characters\)
  30. sed "s/^X//" >ida/doc/part1.ms <<'END_OF_ida/doc/part1.ms'
  31. X.\" refer -e -l,2 -s paper.ms | tbl | pstroff -ms        -*- nroff -*-
  32. X.AM
  33. X.RP
  34. X.ds < \v'0.2m'\s-3
  35. X.ds > \s0\v'-0.2m'
  36. X.de DQ            \" Double quoted string
  37. X\\&\\$3\\*Q\\$1\\*U\\$2
  38. X..
  39. X.de SQ            \" Single quoted string
  40. X\\&\\$3`\\$1'\\$2
  41. X..
  42. X.de UC            \" Uppercase string (in a smaller font)
  43. X\\&\\$3\\s-1\\$1\\s+1\&\\$2
  44. X..
  45. X.de UQ            \" Uppercase quoted string (in a smaller font)
  46. X\\&\\$3\\*Q\\s-1\\$1\\s+1\\*U\\$2
  47. X..
  48. X.de QQ            \" Quoted paragraph (possibly in a sized font)
  49. X.QP
  50. X.if !'\\$1'' .ps \\$1
  51. X..
  52. X.de II            \" Indented, auto numbered paragraph
  53. X.if !'\\$1'' .nr II \\$1-1 1
  54. X.IP [\\n+(II]
  55. X..
  56. X.de JB            \" Indented paragraph, bold label, extended width
  57. X.IP "\fB\\$1\fR" 15
  58. X..
  59. X.de JS            \" Indented paragraph, small label
  60. X.IP "\s-1\\$1\s+1"
  61. X..
  62. X.de AP            \" Appendix
  63. X.if \\n(1T .bp
  64. X.RT
  65. X.if \\n(1T .sp
  66. X.if !\\n(1T .BG
  67. X.RT
  68. X.ft 3
  69. X.if n .ul 100
  70. XAPPENDIX \\$1:
  71. X..
  72. X.de DO                \" Domain table entry, see Appendix D
  73. X.br
  74. X.UC \\$1
  75. X\t\\$2
  76. X..
  77. X.de X1                \" Generate 1st level index entry
  78. X.br
  79. X.ie '\\$3'' .ta \\n(LLu-\\w"\\$1"u \\n(LLuR
  80. X.el .ta \\n(LLu-\\w'\\$3'u-1u \\n(LLu-\\w'\\$3'u
  81. X\\$2\a\t\\$1
  82. X..
  83. X.de X2                \" Generate 2nd level index entry
  84. X.in 3n
  85. X.nr LL \\n(LL-3n
  86. X.X1 "\\$1" "\\$2"
  87. X.nr LL \\n(LL+3n
  88. X.in 0
  89. X..
  90. X.\" ***** HERE BEGINS THE ACTUAL CODE (ie TEXT)
  91. X.ND May 27, 1987
  92. X.ie n .ds LH Electronic Mail Addressing
  93. X.el .ds LH Electronic Mail Addressing with The IDA Sendmail Enhancement Kit
  94. X.ds CH
  95. X.ds RH Lennart Lo\\*:vstrand \\(co 1987
  96. X.ds LF
  97. X.ds CF \*- % \*-
  98. X.ds RF
  99. X.TL
  100. XElectronic Mail Addressing in Theory and Practice
  101. X.SM
  102. X.br
  103. Xwith The IDA Sendmail Enhancement Kit
  104. X.if t \{\
  105. X.SM
  106. X.br
  107. X(or The Postmaster's Last Will and Testament)
  108. X.\}
  109. X.AU
  110. XLennart Lo\*:vstrand*
  111. X.FS
  112. X* New address from July 1987: Xerox EuroPARC, 61 Regent Street,
  113. XCambridge CB2 1AB, U.K.
  114. X.FE
  115. X<lel@ida.liu.se>
  116. X.AI
  117. XDepartment of Computer and Information Science
  118. XUniversity of Linko\*:ping
  119. XS-581 83 Linko\*:ping
  120. XSWEDEN
  121. X.AB
  122. XThis paper discusses theoretical and practical aspects of handling
  123. Xelectronic mail addresses in a heterogeneous environment.  It argues for
  124. Xmore intelligent Mail Transport Agents that are able to fully format
  125. Xaddresses according to different formats and that does not unnecessarily
  126. Xcomplicate header addresses.  Also described is a set of enhancements to
  127. Xthe
  128. X.UX
  129. X.I sendmail
  130. Xprogram and accompanying rewriting rules used to fulfill our two main
  131. Xgoals: (1) To provide a canonical format for handling all electronic
  132. Xmail addresses in which
  133. X.DQ replying
  134. Xregularly will work and where local users do not have to depend on the
  135. Xrecipient's explicit route or addressing syntax when submitting a
  136. Xmessage.  (2) To design and implement a method for managing mail to and
  137. Xfrom local users in a machine independent way, allowing them to change
  138. Xtheir preferred actual mailboxes while maintaining the same visible
  139. Xsurface addresses at all times.
  140. X.FS
  141. X.ps +1
  142. X.sp
  143. XReport no. LiTH-IDA-Ex-8715
  144. X.FE
  145. X.AE
  146. X.NH
  147. XINTRODUCTION
  148. X.QQ
  149. X.I
  150. XWhile some computer-based mail addressing systems are actually easier to
  151. Xdeal with than the paper-based model, they are the exception\*-and not
  152. Xthe rule.
  153. X.br
  154. X.ti +\n(QIu
  155. XWhy, you might ask, has electronic mail service become so very complex?
  156. XMost of the problems are simply inherent in reaching beyond a local
  157. Xsystem to connect with another.
  158. X.br
  159. X.R
  160. X.ad r
  161. X\&
  162. X.[[
  163. X%A David Crocker
  164. X%T Networking Considered Harmful
  165. X%J Unix Review
  166. X%V 5
  167. X%N 3
  168. X%D 1987
  169. X.]]
  170. X.br
  171. X.ad b
  172. X.LP
  173. XSending electronic mail is not always as easy as it ought to be.  Too
  174. Xmany incompatible mail addressing formats exist, forcing the presumptive
  175. Xuser sending a message to know a great deal more than can be thought
  176. Xreasonable about the recipient mail system's idiosyncrasies.  This is a
  177. Xwidely recognized problem, which can be seen as a consequence of the
  178. Xever increasing interconnectivity between different computer systems,
  179. Xeach subscribing to a different addressing standard.  There are gateways
  180. Xthat do address transformation on messages passing from one network to
  181. Xanother, but it is normally done in a too insufficient manner to get rid
  182. Xof the unintelligible hybrid addresses that often infest us.  Even worse
  183. Xare the many systems that assault these mixed format addresses by
  184. Xrewriting them to malformed or incomplete ones.  A hybrid address
  185. Xpassing several network boundaries is often transformed in such a way
  186. Xthat it no longer is possible to use it as a
  187. X.DQ reply
  188. Xor error return address; not even for a human being, much less for a
  189. Xmachine.
  190. X.PP
  191. XThese problems are especially frequent in the
  192. X.UX 
  193. Xworld.  Networks like the
  194. X.UC ARPANET
  195. Xand
  196. X.UC CSNET
  197. Xhave the advantage of being more internally coherent; both
  198. Xfollow the Internet mail syntax specifications, described in
  199. X.UC RFC 822
  200. X\&
  201. X.[[
  202. X%A David Crocker
  203. X%T Standard for the Format of \s-1ARPA\s+1 Internet Text Messages
  204. X%S \s-1RFC\s+1\&822
  205. X%D 1982
  206. X.]].
  207. XThe
  208. X.UX 
  209. Xworld used to practice the
  210. X.SQ ! -path 
  211. Xaddressing syntax in which all addresses are relative routes, but has
  212. Xrecently been moving over to the domain address standard of the
  213. XInternet.  The present problems concern nodes that has not yet done the
  214. Xtransition and those that
  215. X.I cannot
  216. Xchange, because their standard mailer software is unable to handle these
  217. Xnew format addresses.  A typical example of the latter are the System V
  218. Xsystems.  Berkeley systems have the freedom of
  219. X.I sendmail (8),
  220. Xwhich unfortunately not always turns out as a blessing.  In a way, it is
  221. Xtoo easy to rewrite addresses using
  222. X.I sendmail ,
  223. Xbut too hard to control the transformations.  This often leads to strange and
  224. Xincompatible formats that don't belong in either standard.
  225. X.PP
  226. XThis paper discusses the most common formats and functions electronic
  227. Xmail addresses have.  It argues for more intelligent Mail Transport
  228. XAgents that are able to fully format addresses according to different
  229. Xformats and that does not unnecessarily complicate header addresses.  In
  230. Xthe end, it moves over to describe the
  231. X.I
  232. XIDA Sendmail Enhancement Kit
  233. X.R
  234. Xand the work and rationale that lies behind it.  The Kit is made up of
  235. Xtwo parts: First, the configuration file setup and the rewriting rules
  236. Xcontained in it.  These implement a rewriting strategy based on always
  237. X.I completely
  238. Xresolving addresses instead of being content by looking at the immediate
  239. Xhost.  The addresses are then fully transformed again according to the
  240. Xrespective mailer's and expected ultimate recipient's format.  Second,
  241. Xwe describe a set of modifications to the
  242. X.I sendmail
  243. Xsource, giving it an extended functionality that in the opinion of this
  244. Xauthor should have been implemented long ago.  Typical additions are:
  245. XDirect Access to Dbm(3) Files, Separate Envelope/Header Rewritings, and
  246. XMulti-Token Class Matches.  The configuration file is heavily dependent
  247. Xof these modifications and will not function without them.
  248. X.PP
  249. XWe have also developed a way of handling mail to or from local users in
  250. Xa machine independent way by hiding their actual sender and recipient
  251. Xaddresses behind generic organization oriented addresses.  This way, one
  252. Xmay have a fixed visible address which is dynamically associated with
  253. Xone or more physical mailboxes.  Mails sent from any of a person's
  254. X.DQ "well known"
  255. Xaccounts will appear to come from his generic address.  Similarly, mail
  256. Xto any of his generic address will be forwarded to his preferred
  257. Xmailbox(es).  Note that the generic addresses as a group have no
  258. Xconnection to any particular machine.  Instead, they are merely database
  259. Xentries on one or more nodes.
  260. X.NH
  261. XNAMES, ADDRESSES, AND ROUTES
  262. X.LP
  263. XLarry Kluger and John Shoch has in an excellent article
  264. X.[ [
  265. X%A Larry Kluger
  266. X%A John Shoch
  267. X%T Names, Addresses, and Routes
  268. X%J Unix Review
  269. X%V 4
  270. X%N 1
  271. X%D 1986
  272. X.]]
  273. Xdescribed the distinction between
  274. X.I names ,
  275. X.I addresses ,
  276. Xand
  277. X.I routes ,
  278. Xin short:
  279. X.QQ
  280. X.I
  281. XThe name of a resource refers to what we seek, an address indicates
  282. Xwhere the resource is, and a route tells us how to get there.
  283. X.LP
  284. XWhen dealing with electronic mail,
  285. X.I names
  286. Xare typically used in identifying three kinds of entities: (1) The
  287. Xmailbox associated with the sender (originator) and recipient of a
  288. Xmessage, (2) The name space (domain) in which the sender/recipient is
  289. Xknown, and (3) The computer system that houses a Mail Transfer Agent
  290. X(MTA) able of delivering or forwarding messages.  Often, the two latter
  291. Xcoincide by associating the domain of a set of mailboxes with the actual
  292. Xmachine that implements them.  Furthermore, an
  293. X.I address
  294. Xwould be the data structure used in directly connecting to another MTA
  295. Xover a computer network, such as a four-byte Internet number + TCP port
  296. Xnumber, or an ordinary telephone number.  It may well happen that many
  297. Xnames map to the same address, or that the same name have more than one
  298. Xaddress.  Lastly, a
  299. X.I route
  300. Xconsists of an ordered sequence of two or more MTA names or addresses,
  301. Xforming an explicit path that the message should take to reach its
  302. Xrecipient.  Routes can be further divided into
  303. X.I "system routes,"
  304. Xwhere the MTA itself is the responsible of constructing a useful path
  305. Xand
  306. X.I "source routes,"
  307. Xwhere that responsibility lies on the person sending the message.
  308. X.PP
  309. XThe mapping from
  310. X.I names
  311. Xto
  312. X.I addresses
  313. Xis essentially beyond the scope of this paper, and will only briefly be
  314. Xmentioned in the following sections.
  315. XThus, we have taken the liberty of using the general meaning of the word
  316. X.I address
  317. Xto it denote both mailbox/domain name pairs as well as complete routes.
  318. XAlso, we are using the words
  319. X.I system ,
  320. X.I host ,
  321. Xand
  322. X.I node
  323. Xto all denote MTAs somewhere in a network.  It is our hope that the
  324. Xreader should not be confused because of this.
  325. X.NH
  326. XMAIL ADDRESS FORMATS
  327. X.LP
  328. XThe absolute majority of today's mailing systems use addresses,\**
  329. X.FS
  330. XThat is, routes or mailbox/domain name pairs.
  331. X.FE
  332. Xrepresented by a simple string of characters.  Some of these characters
  333. Ximplement operators that are used to divide the address into
  334. Xmailbox/domain/route parts when parsed by an MTA.  Different
  335. Xoperators have different directions of associativity, making it
  336. Xincreasingly difficult to unambiguously parse addresses produced by
  337. Xcombining incompatible operators of different mail address syntaxes.  It
  338. Xis hoped that at least some of these problems will be solved with the
  339. Xemergence of the structured attribute list addresses of
  340. X.UC X .400.
  341. XIn the mean time, we have a variety of different formats in use, each
  342. Xsubscribing to a different set of delimiting operators.  It is not uncommon to
  343. Xsee addresses like:
  344. X.QQ
  345. Xmcvax!enea!liuida!obelix!p_e%seismo.css.gov@relay.cs.net
  346. X.LP
  347. Xor even
  348. X.QQ
  349. Xenea!seismo.\s-1CSS.GOV\s+1!!\s-1OZ.AI.MIT.EDU\s+1,!\s-1MC.LCS.MIT.EDU\s+1:ebg
  350. !\s-1REAGAN.AI.MIT.EDU\s+1
  351. X.LP
  352. Xturn up in message envelopes and headers.  The last example comes from
  353. Xthe envelope sender address found on a message in which the
  354. X.UC RFC 822
  355. Xroute was incompletely translated into
  356. X.UUCP
  357. X.SQ ! -path
  358. Xsyntax.  Now, before delving into a discussion about how these may be
  359. Xresolved or preferably avoided, let's take a look at what kind of
  360. Xaddressing formats currently exist.
  361. X.NH 2
  362. XRelative Addresses
  363. X.LP
  364. XThese types of addresses are by necessity all implemented as
  365. X.I routes .
  366. XIn purely relative addresses, all node names are relative to each other,
  367. Xmaking path optimization or system routing difficult, if not impossible.
  368. XFor the sender of a message, this means that addresses will look
  369. Xdifferent depending on his location in the network, forcing him to
  370. Xrecompute all addresses each time he changes his location.  Even worse,
  371. Xin a rapidly growing network, it might even happen that an address
  372. Xbecomes invalid overnight because some link far away has been
  373. Xdisconnected or replaced by another.  All this makes it difficult for a
  374. Xpresumptive user to continuously keep his addresses correct and up to
  375. Xdate.
  376. X.PP
  377. XRelative addresses have since long been in use within the
  378. X.UX 
  379. Xcommunity, but a great deal of work has been done by an organization
  380. Xcalled
  381. X.I "The \s-1UUCP\s+1 Mapping Project"
  382. Xin eliminating duplicate host names, thus making it possible to use
  383. Xabsolute addresses\**
  384. X.FS
  385. XSee the following section.
  386. X.FE
  387. Xin a flat name space.  It is presently moving towards utilizing full
  388. Xdomain names but is delayed by the fact that some systems, notably
  389. X.I "System V"
  390. Xsystems, cannot handle anything but
  391. X.UC UUCP
  392. Xsource routes with standard mailer software.  The addressing syntax for
  393. X.UX
  394. X.UC UUCP
  395. X.SQ ! -paths
  396. Xis as follows:
  397. X.QQ
  398. Xnode!\|.\|.\|.\|!node!user
  399. X.LP
  400. XThe route sequence is read from the left to the right, with the ultimate
  401. Xrecipient on the rightmost end.  Other systems that have similar
  402. Xaddressing formats are the Berknet and
  403. X.UC VAX/VMS
  404. Xmail systems, which use:
  405. X.QQ
  406. Xnode:\|.\|.\|.\|:node:user
  407. X.LP
  408. Xand
  409. X.QQ
  410. Xnode::\|.\|.\|.\|::node::user
  411. X.LP
  412. Xrespectively.
  413. X.UC RFC 822
  414. Xalso specifies a way of constructing explicit paths using the somewhat
  415. Xcomplicated syntax:
  416. X.QQ
  417. X<@node,@node,\|.\|.\|.\|:user@node>
  418. X.LP
  419. XHere, the message should be passed through each successive node from
  420. Xleft to right, ending up in the last user@node's mailbox.  Note that the
  421. Xless than and greater than brackets are included in the syntax.  Another
  422. Xwidely used but undocumented format is
  423. X.I
  424. XYe Olde
  425. X.UC ARPANET
  426. X.SQ % -Kludge:
  427. X.R
  428. X.QQ
  429. Xuser%node%\|.\|.\|.\|%node@node
  430. X.LP
  431. Xwhich is interpreted from the right to the left by delivering the
  432. Xmessage to the node after the atsign and then instantiating the
  433. Xrightmost percent sign into a new atsign, etc.
  434. X.NH 2
  435. XAbsolute Addresses
  436. X.QQ
  437. X.nf
  438. X.I
  439. XThe Tao that can be told of is not the Absolute Tao;
  440. XThe Names that can be given are not Absolute Names.\k:
  441. X
  442. XThe Nameless is the origin of Heaven and Earth;
  443. XThe Named is it the Mother of all Things.
  444. X.br
  445. X.R
  446. X\h'|\n:u-\w'[LaotseBC]'u'
  447. X.[[
  448. X%A Laotse
  449. X%T Tao Te Ching
  450. X%S Book 1, Verse 1
  451. X%D ca 500 BC
  452. X.]]
  453. X.br
  454. X.ad b
  455. X.LP
  456. XAbsolute addresses have the advantage of being universally unique and
  457. Xthus applicable by any MTA\**
  458. X.FS
  459. XAt least in theory\*-not all MTAs necessarily know about how to deliver
  460. Xto all addresses.
  461. X.FE
  462. Xindependently of where it is located.  Since the names should be
  463. Xuniquely identified, some way of distributing them within their name
  464. Xspace needs to be accomplished.  The simplest way of doing this is by
  465. Xregistering plain node names with some central name directory on a
  466. Xfirst-come-you-get-it service.  The
  467. X.I "\s-1UUCP\s+1 Project"
  468. Xtried this to avoid duplicate
  469. X.UC UUCP
  470. Xnode names.  However, maintaining such a directory and propagating its
  471. Xchanges easily becomes too heavy a burden to handle.  Another strategy
  472. Xwas first adopted by the
  473. X.UC ARPA 
  474. XInternet community, the hierarchical domain naming system described by
  475. X.UC RFC 882
  476. X\&
  477. X.[[
  478. X%A Paul Mockapetris
  479. X%T Domain Names\*-Concepts and Facilities
  480. X%S \s-1RFC\s+1\&882
  481. X%D 1983
  482. X.]],
  483. X.UC RFC 920
  484. X\&
  485. X.[[
  486. X%A Jon Postel
  487. X%A Joyce Reynolds
  488. X%T Domain Requirements
  489. X%S \s-1RFC\s+1\&920
  490. X%D 1984
  491. X.]]
  492. Xand others.
  493. X.PP
  494. XIn this system, a labelled tree is built with each node in the tree
  495. Xdenoting a specific domain.  Some nodes correspond to actual hosts,
  496. Xtypically the leaves in the tree, while others simply map to some
  497. Xorganizational entity, like a group, department, or institution.  The
  498. Xpurpose of the domain naming system is to distribute the naming
  499. Xauthority throughout the tree.  Letting each domain have the
  500. Xresponsibility of naming the domains immediately beneath it guarantees
  501. Xthe uniqueness of all simple domain names relative to their parents.
  502. XThe full, qualified domain names are constructed by concatenating each
  503. Xlevel's simple domain name with a dot in between.  For example, there
  504. Xmight exist a certain mail computer named
  505. X.UQ MC
  506. Xwithin the Laboratory of Computer Science of the Massachusetts Institute
  507. Xof Technology, an Educational organization.  A possible domain name for
  508. Xthis computer would be:
  509. X.QQ -1
  510. XMC.LCS.MIT.EDU
  511. X.LP
  512. XThere might be many hosts named
  513. X.UQ MC,
  514. Xbut only one within the
  515. X.UQ LCS.MIT.EDU
  516. Xdomain.  The same goes for the
  517. X.UQ LCS
  518. Xdomain within the
  519. X.UQ MIT.EDU
  520. Xdomain.  The global uniqueness of each fully qualified domain is thus
  521. Xguaranteed by its parentage.
  522. X.PP
  523. XThe domain system is currently in use within the
  524. X.UC ARPA
  525. XInternet,
  526. X.UC CSNET,
  527. Xand is in progress within the
  528. X.UC UUCP
  529. Xworld.  Under its anonymous root domain, it presently has six
  530. Xthree-letter organizational domains registered and a continuously
  531. Xincreasing number of national two-letter domains.  The organizational
  532. Xdomains are mainly used within the U.S., and the national domains in
  533. XEurope and Asia.  There are also a set of
  534. X.I "de facto"
  535. Xnetwork based domains in use, although not officially registered.  These
  536. Xare really mock domains used to incorporate hosts on physical networks
  537. Xthat cannot or do not want to handle domain addresses.  Examples of
  538. Xthese are
  539. X.UC BITNET
  540. Xand still most of the
  541. X.UC UUCP
  542. Xworld.  Appendix D lists all domains currently registered with the SRI
  543. XNetwork Information Center together with a set of otherwise frequently
  544. Xrecognized network based domains.
  545. X.NH 2
  546. XAttribute Addresses
  547. X.LP
  548. XWith the
  549. X.UC CCITT \**
  550. X.FS
  551. X.I
  552. XComite\*' Consultatif International Te\*'le\*'phonique et
  553. XTe\*'le\*'graphique,
  554. X.R
  555. Xi.e. the International Telegraph and Telephone Consultive Committee
  556. X.FE
  557. X.UC X .400
  558. X\&
  559. X.[[
  560. X%A Malaga-Torremolinos
  561. X%T Message Handling Systems: System Model\\*-Service Elements
  562. X%S \s-1X\s+1.400
  563. X%D 1984
  564. X.]]
  565. Xseries standard for electronic mail in emergence, a new kind of
  566. Xaddressing system is being proposed.  In this format, recipients are
  567. Xuniquely identified using a list of attribute-value pairs.  Some of
  568. Xthese, like the Organization and Country attributes, are obligatory
  569. Xwhile others may be supplied only if known by the sender.  The idea is
  570. Xthat the base attributes should be able to guide the message to a
  571. Xrelevant directory server, while the others then are used to select the
  572. Xactual recipient.  Attribute sets that select no or more than one
  573. Xrecipient will probably be considered erroneous, but could be used in
  574. Xselecting multiple recipients.
  575. X.PP
  576. XIt will yet take several years before the attribute addressing scheme
  577. Xhas come to widespread use.  It will, however, surely come\*-if nothing
  578. Xelse, then because it has the force of the united PTTs behind it.
  579. XAlready, there exists guidelines for mapping between
  580. X.UC RFC 822
  581. Xbased addresses and
  582. X.UC X .400,
  583. Xsuch as
  584. X.UC RFC 987
  585. X\&
  586. X.[[
  587. X%A Steven Kille
  588. X%S \s-1RFC\s+1\&987
  589. X%T Mapping Between \s-1X\s+1.400 and \s-1RFC\s+1\&822
  590. X%D 1986
  591. X.]].
  592. X.NH 2
  593. XHybrid Addresses
  594. X.LP
  595. XWith all this in mind, let's take a look at how different formats
  596. Xsometimes are combined and how we can resolve them.  The three major
  597. Xaddressing formats for routing messages are:
  598. X.TS
  599. Xl lw(2i) l.
  600. X[1]    T{
  601. XThe
  602. X.UC UUCP
  603. X.SQ ! -path
  604. XT}    <\fInode\*<1\*>\fP!\fInode\*<2\*>\fP!\fInode\*<3\*>\fP!\fIuser\fP>
  605. X[2]    T{
  606. XYe Olde
  607. X.UC ARPANET
  608. X.SQ % -Kludge
  609. XT}    <\fIuser\fP%\fInode\*<3\*>\fP%\fInode\*<2\*>\fP@\fInode\*<1\*>\fP>
  610. X[3]    T{
  611. XThe
  612. X.UC RFC 822
  613. Xroute syntax
  614. XT}    <@\fInode\*<1\*>\fP,@\fInode\*<2\*>\fP:\fIuser\fP@\fInode\*<3\*>\fP>
  615. X.TE
  616. X.LP
  617. Xwhere the latter mostly is used for envelope senders.
  618. X.PP
  619. XCombinations of the above usually appear in messages crossing one or
  620. Xmore network boundaries with different addressing formats.  Since each
  621. Xof these formats were independently developed, it may not be obvious how
  622. Xthey should be interpreted when combined.  Still, by reasoning a little,
  623. Xmuch can be inferred from how they incrementally are constructed.
  624. X.PP
  625. XStarting with the Domainist's approach to the matter, we have to give
  626. X.SQ @
  627. Xprecedence over
  628. X.SQ !
  629. Xsince this is implied by
  630. X.UC RFC 822.
  631. XThis means that addresses like:
  632. X.QQ
  633. Xnode\*<2\*>!node\*<1\*>!user@domain
  634. X.LP
  635. Xwill be interpreted as:
  636. X.QQ
  637. Xdomain \(-> node\*<2\*> \(-> node\*<1\*> \(-> user
  638. X.LP
  639. XNow, since
  640. X.SQ %
  641. Xis often the 
  642. X.I "de facto"
  643. Xstandard routing operator on top of
  644. X.SQ @ ,
  645. Xan address like:
  646. X.QQ
  647. Xhost!user@domain
  648. X.LP
  649. Xthat is autorouted through 
  650. X.I relay
  651. Xwill probably end up looking as:
  652. X.QQ
  653. Xhost!user%domain@relay
  654. X.LP
  655. Xmeaning:
  656. X.QQ
  657. Xrelay \(-> domain \(-> host \(-> user
  658. X.LP
  659. XThis forces us to give
  660. X.SQ %
  661. Xpriority over
  662. X.SQ ! .
  663. XHowever, a
  664. X.SQ ! -path
  665. Xaddress ending with a 
  666. X.DQ user%node,
  667. Xcannot be a domain address (no
  668. X.SQ @ )
  669. Xand should therefore be interpreted using
  670. X.UC UUCP
  671. Xsemantics by prioritizing
  672. X.SQ !
  673. Xover
  674. X.SQ % .
  675. XThus,
  676. X.QQ
  677. Xnode\*<1\*>!node\*<2\*>!user%domain
  678. X.LP
  679. Xshould be read as:
  680. X.QQ
  681. Xnode\*<1\*> \(-> node\*<2\*> \(-> domain \(-> user
  682. X.LP
  683. XMixtures with
  684. X.UC RFC 822
  685. Xroutes may look hard to read, but are actually easy to parse.  A fairly compli
  686. cated address like:
  687. X.QQ
  688. Xnode\*<1\*>!node\*<2\*>!@domain\*<1\*>,@domain\*<2\*>:host!user%relay@domain\*
  689. <3\*>
  690. X.LP
  691. Xhas to be interpreted as:
  692. X.QQ
  693. Xnode\*<1\*> \(-> node\*<2\*> \(-> domain\*<1\*> \(-> domain\*<2\*> \(-> domain
  694. \*<3\*> \(-> relay \(-> host \(-> user
  695. X.LP
  696. Xsince
  697. X.UC RFC 822
  698. Xlike
  699. X.SQ ! -paths
  700. Xassociate left-to-right, and since the last
  701. X.DQ localpart@domain
  702. Xcan be unambiguously found after the colon.
  703. X.PP
  704. XNow, not all of us are Domainists.  Many nodes can and will only be able
  705. Xto interpret
  706. X.UC UUCP
  707. X.SQ !  -paths,
  708. Xwhich leads to complications with mixed
  709. X.SQ ! -
  710. Xand
  711. X.SQ @  -style
  712. Xaddresses.  The only workable solution to this is to try and avoid such
  713. Xmixtures altogether.  The easiest way of doing this is to write them as
  714. X.SQ ! -
  715. Xand
  716. X.SQ % -style
  717. Xcombinations, but even better would be to wrap them wholly around to the
  718. X.SQ ! -path
  719. Xformat.  They should then turned back into
  720. X.SQ %
  721. Xand
  722. X.SQ @
  723. Xcombinations when breaking the Domain Land boundary.
  724. X.NH
  725. XA SHORT ANATOMY OF THE ELECTRONIC MESSAGE
  726. X.LP
  727. XIn analogy to the written letter, there are two major parts of a
  728. Xmessage: The envelope and the contents.  The envelope is there
  729. Xspecifically for the MTAs to handle and contains the sender address
  730. Xtogether with the message's actual recipients.  The contents are usually
  731. Xfurther subdivided into the header lines and the actual body, where only
  732. Xthe latter is under the sender's full control.  The headers are used by
  733. Xthe MTAs and MUAs\**
  734. X.FS
  735. XMail User Agent, the program that the user directly interacts with when 
  736. Xreading or composing messages.
  737. X.FE
  738. Xto store various information of interest to the recipient, such as
  739. Xsender, all official recipients, posting date, etc.  Although the body
  740. Xusually is left uninterpreted, some mail systems put constraints by
  741. Xlimiting the length of each line or the whole message, or by only
  742. Xallowing printable
  743. X.UC ASCII
  744. Xcharacters.
  745. X.NH 2
  746. XThe Envelope
  747. X.LP
  748. XThe envelope contains the physical message's actual recipients, which
  749. Xvery well may be different from those in the headers.  Typically, a
  750. Xmessage sent to more than one recipient will be split into
  751. X.I n
  752. Xcopies, one for each network.  These messages will have the original's
  753. Xall recipients listed in their header lines, but each copy's envelope
  754. Xshould only have those being delivered over the network in question.
  755. XThere is usually also the option of
  756. X.I "Blank Carbon Copy"
  757. Xrecipients, which per definition never shall show up in the headers.
  758. X.PP
  759. XThe envelope will also contain the explicit path back to the sender for
  760. Xerror messages and tracing purposes.  This path should formed by having
  761. Xeach node that forwards the message incrementally add its name to the
  762. Xroute, thus avoiding routing problems that otherwise may appear.  The
  763. Xresult of each rewriting should be a full route in a suitable format
  764. Xleading from the current node back to the originator.
  765. X.PP
  766. XIf the envelope recipient(s) are routes, they are handled in an
  767. Xanalogous manner to the senders by removing the local node's name from
  768. Xeach address before propagating it further.  Optionally, the address can
  769. Xbe made fully relative to the immediate receiving node by removing its
  770. Xname from the route as well.  This should be determined on a mailer
  771. Xdependent basis.  The MTA has the full freedom of at any point turning a
  772. Xsimple envelope recipient address into a route if it sees reason to do
  773. Xso.  This could be done on the grounds that the immediate recipient node
  774. Xcannot perform automatic routing.  It should, however, be avoided if
  775. Xpossible since it is hard to keep routing tables fully updated with
  776. Xtopological changes in distant parts of the network.  Turning envelope
  777. Xroutes into simple addresses should also be avoided since there usually
  778. Xexists a good reason for a route to be there.
  779. X.NH 2
  780. XThe Headers
  781. X.LP
  782. XHeader addresses are not normally used by the MTA.  Exceptions may be
  783. Xwhen headers such as
  784. X.DQ "Return-Receipt-To:"
  785. Xexists and the MTA is doing the final delivery or when the delivery of a
  786. Xmessage fails and there exists a
  787. X.DQ Errors-To:
  788. Xheader.\**
  789. X.FS
  790. XThese are
  791. X.I sendmail
  792. Xspecific; other MTAs may have other exceptions.
  793. X.FE
  794. XThe MTA is also allowed to rewrite, or
  795. X.DQ munge,
  796. Xheader addresses when a message is forwarded from one network to
  797. Xanother.  This is done by first removing the addressing idiosyncrasies
  798. Xof the transmitting network to obtain some internal canonical format and
  799. Xthen applying the receiving network's idiosyncrasies to produce a
  800. Xconforming address
  801. X.[ [
  802. X%A Marshall Rose
  803. X%T Proposed Standard for Message Header Munging
  804. X%S \s-1RFC\s+1\&886
  805. X%D 1983
  806. X.]].
  807. XOf course, this should be done to both envelope and header addresses.
  808. X.PP
  809. XEven within one world, like the
  810. X.UC UUCP
  811. Xpseudo-network, it may be necessary to
  812. X.DQ munge
  813. Xaddresses for them to be understandable by the recipient system.  For
  814. Xinstance, many mail systems does not recognize all domains or perhaps
  815. Xcannot even handle anything but pure and fully routed
  816. X.UC UUCP
  817. X.SQ ! -paths.
  818. XIf the transmitting MTA does not take this into consideration, the user
  819. Xsending the message has to submit full source routes with each receiving
  820. Xnetwork's addressing syntax embedded.  Except in the most simple cases,
  821. Xthis task requires great knowledge\**
  822. X.FS
  823. XThat is, a case for a
  824. X.I guru !
  825. X.FE
  826. Xabout how networks are interconnected, much more than can be considered 
  827. Xreasonable by any casual or even experienced user.
  828. X.PP
  829. X.I
  830. XIn our opinion, this is currently the greatest obstacle in making
  831. Xelectronic mail usable.
  832. X.R
  833. XOn from bad to worse, these user supplied source routes that are fully
  834. Xcontained in the headers often get rewritten into further complicated
  835. Xroutes.  When such a message is received by its recipient, its header
  836. Xaddresses may very well be too unintelligible to be understandable by a
  837. Xhuman being, much less by a machine.  In the best case, they will just
  838. Xhave routes with incorrect points of reference, forcing
  839. X.DQ reply
  840. Xmessages to the other recipients to first be (automatically) routed to
  841. Xthe first node of the path before it can start on the actual route.
  842. XThen often in the opposite direction, leading half way back again.
  843. X.NH
  844. XADDRESS REWRITING STRATEGIES
  845. X.LP
  846. XNow, given the freedom and flexibility of
  847. X.I sendmail ,
  848. Xour project's task has been to construct a configuration file that, with
  849. Xthe necessary enhancements to the
  850. X.I sendmail
  851. Xsource, will completely resolve and canonicalize all envelope and header
  852. Xaddresses to an internal format.  All unqualified addresses are then
  853. Xofficialized using the
  854. X.UC TCP/IP
  855. Xname server function and a local
  856. X.I dbm (3)
  857. Xbased domain name table, and a route is found using a direct interface
  858. Xto a
  859. X.I pathalias (1)
  860. Xrouting file.
  861. XFinally, using a static
  862. X.I dbm (3)
  863. Xmailer table together again with the
  864. X.UC TCP/IP
  865. Xname server function, the message is dispatched to the appripriate
  866. Xmailer which fully rewrites the addresses according to its own
  867. Xidiosyncrasies.
  868. X.NH 2
  869. XSneak-In Preview
  870. X.LP
  871. XTo give a taste of how the complete system performs with a realistic
  872. Xcase, consider at the following only partly imaginary example:
  873. X.QQ
  874. X.nf
  875. X.ne 2.1
  876. X.B Envelope:
  877. X    Sender: enea!seismo!relay.cs.net!cate%busch%pany.com
  878. X    Recipient: obelix!p_e
  879. X.ne 2.1
  880. X.B Headers:
  881. X    From: enea!relay.cs.net!cate%busch%pany.com
  882. X    To: mcvax!enea!liuida!obelix!p_e%seismo.css.gov@relay.cs.net
  883. X    cc: ree.pete%fidelio.uu.se%seismo.css.gov@relay.cs.net
  884. X.fi
  885. X.LP
  886. XA user
  887. X.I cate
  888. Xon the Company Inc's local host
  889. X.I busch
  890. Xhas sent a message to two Swedish recipients:
  891. X.I p_e
  892. Xon the 
  893. X.UC UUCP
  894. Xhost
  895. X.I obelix
  896. Xin Linko\*:ping and to
  897. X.I ree.pete
  898. Xon the Uppsala node
  899. X.I fidelio.uu.se.
  900. XIf the headers would be left untouched, a reply from
  901. X.I p_e
  902. Xto both
  903. X.I cate
  904. Xand
  905. X.I ree.pete
  906. Xwould force 
  907. X.I ree.pete 's
  908. Xcopy to go all the way back to
  909. X.I relay.cs.net
  910. Xbefore it could return to Sweden and Uppsala.  Clearly, this is a waste of
  911. Xboth resources and time when there might (and does) exist a much shorter
  912. Xpath within the country.  With The Kit's rewriting heuristics, the same
  913. Xheader lines will look like the following when leaving the local node:
  914. X.QQ
  915. X.nf
  916. X.ne 2.1
  917. X.B Envelope:
  918. X    Sender: @majestix.liu.se,@enea.se,@seismo:cate%busch%pany.com@relay.cs.
  919. net
  920. X    Recipient: p_e%obelix.liu.se@asterix.liu.se
  921. X.ne 2.1
  922. X.B Headers:
  923. X    From: cate%busch@pany.com
  924. X    To: p_e@obelix.\s-1UUCP\s+1
  925. X    cc: ree.pete@fidelio.uu.se
  926. X.fi
  927. X.LP
  928. XHere, our local node's name has been added to the envelope sender path,
  929. Xwhich also has been transformed into a 
  930. X.UC RFC 822
  931. Xroute\**.
  932. X.FS
  933. XSave for the
  934. X.SQ <
  935. Xand
  936. X.SQ >
  937. Xbrackets.
  938. X.FE
  939. XOther options would be to have it as a
  940. X.SQ ! -path
  941. Xor
  942. X.SQ % -path.
  943. XThe envelope recipient has been routed via
  944. X.I asterix.liu.se,
  945. Xand changed into a
  946. X.SQ % -path,
  947. Xon the basis that the message is forwarded over a
  948. X.UC TCP/IP
  949. Xconnection and this is the preferred route format for most such systems.
  950. X.PP
  951. XAlso, the route has been removed from the header
  952. X.DQ From:
  953. Xline, leaving the first universally qualified node there together with a
  954. X.SQ % -path
  955. Xfrom that point to the recipient.  The 
  956. X.DQ To:
  957. Xline has undergone even more drastic changes.  First, the route to
  958. X.I seismo.css.gov
  959. Xwas removed since this is the first universally qualified node.  Then
  960. Xa table of well-known
  961. X.UC UUCP
  962. Xrelays was consulted to further compress the path.
  963. X.I Mcvax ,
  964. X.I enea ,
  965. Xand
  966. X.I liuida
  967. Xwere all members of that list.  This gave
  968. X.DQ obelix!p_e
  969. Xas a result, which then was turned into the domain form
  970. X.DQ p_e@obelix.\s-1UUCP\s+1.
  971. XIn the last line,
  972. X.DQ ree.pete@fidelio.uu.se
  973. Xsimply had its path removed since
  974. X.UC \fISE\fP
  975. Xis a registered top domain.
  976. X.NH 2
  977. XThe Configuration File
  978. X.LP
  979. XThe IDA Sendmail Master Configuration File should be sent through the
  980. X.I m4 (1)
  981. Xmacro processor to produce an actual configuration file.
  982. XSeveral
  983. X.I m4
  984. Xidentifiers are used to customize the file; each of them is described in
  985. X.I "Appendix C: Customization Parameters" .
  986. XUnlike the Berkeley version, it was not designed as a set of
  987. X.I m4
  988. Xfragments that
  989. X.DQ sources
  990. Xeach other to form a full configuration, but rather as a single master
  991. Xconfiguration file which holds a
  992. X.I bank
  993. Xof all possible mailers and corresponding rewriting rulesets.  The
  994. Xinstance's actually available mailers are enabled by giving values to
  995. Xtheir corresponding
  996. X.I m4
  997. Xidentifiers.  The current version include mailer definitions for a
  998. X.UC TCP/IP
  999. Xmailer, three kinds of
  1000. X.UC UUCP
  1001. Xmailers depending on the remote node's address handling capabilities, a
  1002. Xmock
  1003. X.UC DEC net
  1004. Xmailer, as well as the
  1005. X.UC LOCAL
  1006. Xand
  1007. X.UC PROG
  1008. Xmailers.  Their design has been kept as clean as possible to make the
  1009. Xconstruction of e.g.
  1010. X.UC BITNET
  1011. Xor
  1012. X.UC CSNET
  1013. Xmailers using these as templates straight-forward.
  1014. X.PP
  1015. XThe rewriting rules of the Kit's configuration file are
  1016. Xexplicitly oriented towards the domain naming syntax.  They will resolve
  1017. Xall input addresses to an internal domain based format and then rewrite
  1018. Xthem according to the selected mailer's preferences.  Internally,
  1019. Xall addresses have the same
  1020. X.QQ
  1021. Xuser@.domain
  1022. X.LP
  1023. Xformat.  Note the dot after the atsign; it is there to make it easier
  1024. Xto rewrite the address.  Also note
  1025. Xthat this differs substantially from the Berkeley 
  1026. X.DQ "whatever<@host>whatever"
  1027. Xformat.  For historical reasons, both the
  1028. X.UC RFC 822
  1029. Xroute syntax and
  1030. X.I
  1031. XYe Olde
  1032. X.UC ARPANET
  1033. X.SQ % -Kludge
  1034. X.R
  1035. Xare used internally to represent routes when only one of them should be
  1036. Xsufficient.
  1037. X.NH 2
  1038. XCanonicalizing the Address
  1039. X.LP
  1040. XRuleset 3 canonicalizes all addresses, making them conform to our
  1041. Xinternal format.  After the canonicalization, the
  1042. X.DQ user
  1043. Xpart may end up containing a route in either standard
  1044. X.UC RFC 822
  1045. Xformat or using the
  1046. X.SQ % -path
  1047. Xformat.
  1048. X.SQ ! -,
  1049. X.SQ : -,
  1050. Xand
  1051. X.SQ :: -style
  1052. Xpaths are rewritten into
  1053. X.UC RFC 822
  1054. Xroutes.  Reasonable mixtures of route formats are resolved
  1055. Xusing the strategies described in the section about
  1056. X.I "Hybrid Addresses" .
  1057. XAs an option, the (untested)
  1058. X.UC UUCPPRECEDENCE
  1059. Xswitch may be turned on in the configuration master file.  This will
  1060. Xenable some simple heuristics that will decide between domain style and
  1061. X.UC UUCP
  1062. X.SQ ! -path
  1063. Xprioritized unpacking depending on whether the 
  1064. X.I domain
  1065. Xis qualified or not.  In any case, ruleset 3 will make sure that the
  1066. X.I domain
  1067. Xpart of all
  1068. X.DQ user@.domain
  1069. Xaddresses are mapped to their full, official domain names whenever
  1070. Xpossible using both the
  1071. X.UC TCP/IP
  1072. Xname server and a dbm domaintable.  It also goes through some effort to
  1073. Xrepair malformed addresses, but much of this is probably too site
  1074. Xspecific to be generally useful.
  1075. X.PP
  1076. XSince
  1077. X.SQ ! -paths
  1078. Xare internally represented as
  1079. X.UC RFC 822
  1080. Xroutes, you should not be surprised when you see an address like:
  1081. X.QQ
  1082. Xfoo!bar!baz!user
  1083. X.LP
  1084. Xfirst be transformed into:
  1085. X.QQ
  1086. X@foo.\s-1UUCP\s+1,@bar:user@baz
  1087. X.LP
  1088. Xand then to:
  1089. X.QQ
  1090. Xbar:user@baz@.foo.\s-1UUCP\s+1
  1091. X.LP
  1092. XThe
  1093. X.UC UUCP
  1094. Xdomain of
  1095. X.I foo
  1096. Xhas been inferred from the 
  1097. X.SQ ! -style
  1098. Xsyntax.  If
  1099. X.I foo
  1100. Xhad been known by the domaintable to have specific domain name, that had
  1101. Xbeen used instead.  Nothing can be inferred about the nodes
  1102. X.I bar
  1103. Xand
  1104. X.I baz ,
  1105. Xsince we they may be local to
  1106. X.I foo .
  1107. XNow, since the pure
  1108. X.UC RFC 822
  1109. Xroute doesn't conform to our internal format, i.e. it does not have a
  1110. X.DQ user
  1111. Xpart followed by an atsign-dot and a
  1112. X.DQ domain,
  1113. Xwe had to rearrange it a little.  The closest node of the route was thus
  1114. Xextracted and added the right side of the rest of the route together
  1115. Xwith the atsign-dot.  It may not be very pretty to look at, but it is
  1116. Xeasier to handle this way.
  1117. X.PP
  1118. XNote that there is a risk of confusing
  1119. X.UC UUCP
  1120. Xnode names with local hosts using the domaintable lookup.  For example,
  1121. Xif you had a local node
  1122. X.I linus
  1123. Xwith a full domain name of
  1124. X.I linus.liu.se
  1125. Xand received an address like
  1126. X.DQ linus!user,
  1127. Xthis would be interpreted as the local
  1128. X.I linus
  1129. Xand rewritten into
  1130. X.DQ user@linus.liu.se.
  1131. XThis is probably right for envelope recipients, but not so surely in
  1132. Xheader lines.  You can define
  1133. X.UC BANGIMPLIESUUCP
  1134. Xif you want to disable the domaintable qualification.
  1135. X.NH 2
  1136. XFinding Route and Mailer
  1137. X.QQ
  1138. X.I
  1139. X.in +\n(QIu
  1140. X.ti -\n(QIu
  1141. X\*QWould you tell me, please, which way I ought to go from here?\*U
  1142. X.br
  1143. X.ti -\n(QIu
  1144. X\*QThat depends a good deal on where you want to get to,\*U said the Cat.
  1145. X.br
  1146. X.in -\n(QIu
  1147. X.R
  1148. X.ad r
  1149. X\&
  1150. X.[[
  1151. X%A Lewis Carrol
  1152. X%T Alice in Wonderland
  1153. X%D 1896
  1154. X.]]
  1155. X.br
  1156. X.ad b
  1157. X.LP
  1158. XBefore ruleset 0 tries to find an applicable mailer, it digests all
  1159. Xroutes through the local host by stripping off its own name and sending
  1160. Xthe address through ruleset 3 again.  It then has four strategies of
  1161. Xfinding a suitable mailer for the address:
  1162. X.II 1
  1163. XTry to find a mailer that will connect to the immediate host in the
  1164. Xaddress.
  1165. X.II
  1166. XTry to find a route to the address' domain using a
  1167. X.I dbm (3)
  1168. Xrouting table and a mailer that will connect to the route's closest
  1169. Xnode.
  1170. X.II
  1171. XUse the firm-wired
  1172. X.UC RELAY_MAILER
  1173. Xand
  1174. X.UC RELAY_HOST
  1175. Xpairs to automatically forward the message.
  1176. X.II
  1177. XGive up; send the address to the
  1178. X.UC ERROR
  1179. Xmailer.
  1180. X.LP
  1181. XThe code that determines if a mailer directly can deliver to a certain
  1182. Xdomain is found in ruleset 26.\**
  1183. X.FS
  1184. XYes, I too wish that named rulesets would be available in
  1185. X.I sendmail .
  1186. XPerhaps somebody should convert this configuration file into
  1187. X.I ease .
  1188. X.FE
  1189. XIt does this on a per mailer bases with the following order of priority:
  1190. X.IP \s-1LOCAL\s+1 10
  1191. XIf the supplied domain is any of local host's names (member of the
  1192. X.B $w
  1193. Xclass), or if the complete address is found in the
  1194. X.I aliases (5)
  1195. Xfile, the message is delivered locally.  The latter type of local
  1196. Xdelivery will cause the address to be expanded to the RHS of the alias
  1197. Xentry and the complete process to recurse.
  1198. X.IP \\\\k:\\fISpecial\\fP\\\\h'|\\\\n:u'\\\\v'+1'\\fIMailers\\fP\\\\v'-1'
  1199. XIn order to override the standard mailer selection, a
  1200. Xspecial dbm
  1201. X.I mailertable
  1202. Xmay be used to force addresses to be delivered using specific mailers.
  1203. XIf the address' domain is found in the
  1204. X.I mailertable ,
  1205. Xthe associated mailer will be used.  The mailer table should map
  1206. Xofficial domain names to
  1207. X.DQ mailer:host
  1208. Xpairs, with a colon between the mailer and the host.
  1209. X.IP \s-1TCP/IP\s+1
  1210. XWith the new
  1211. X.I default
  1212. Xargument of the
  1213. X.UC TCP/IP
  1214. Xnameserver lookup function, it is possible to determine if an address
  1215. Xcan be delivered using this protocol family without relying on static
  1216. Xhost tables.  If the address' domain is known to the
  1217. X.UC TCP/IP
  1218. Xnameserver, it is returned together with its canonicalized host name.
  1219. X.IP \s-1DEC\s+1net
  1220. XThe
  1221. X.UC DEC net
  1222. Xmailer does not share the network based nameserver facilities of the
  1223. X.UC TCP/IP
  1224. Xmailer, and thus has to rely on a host table.  This is done with a
  1225. Xtwo-phase operation\*-first the domain is mapped to a
  1226. X.UC DEC net
  1227. Xname, if known, then
  1228. Xthe the
  1229. X.UC DEC net
  1230. Xhost name is checked in the list of connectable
  1231. X.UC DEC net
  1232. Xhosts before it is returned.  This is because some
  1233. X.UC DEC net
  1234. Xnodes cannot talk across area boundaries, forcing recipient addresses to
  1235. Xbe explicitly routed over an intermediary host.
  1236. X.I Note:
  1237. XThe supplied
  1238. X.UC DEC net
  1239. Xmailer uses a
  1240. X.UC TCP/IP
  1241. Xconnection to a
  1242. X.UC DEC system-20
  1243. Xacting as gateway.  A real implementation should remove the immediate
  1244. Xnode from routes before returning them, but we cannot do this.
  1245. X.IP \s-1UUCP\s+1
  1246. XThe
  1247. X.UC UUCP
  1248. Xmailer is also determined with a two-phase operation\*-first the domains
  1249. Xis mapped through the
  1250. X.UC UUCP
  1251. Xtranslation table, returning the
  1252. X.UC UUCP
  1253. Xnode name, if known.  The
  1254. X.UC UUCP
  1255. Xmailer will then be selected only if the
  1256. X.UC UUCP
  1257. Xname is known to be directly connectable by us (normally determined
  1258. Xusing the /usr/lib/uucp/L.sys file).  All nodes found this way will be
  1259. Xsent to through the
  1260. X.DQ dumb
  1261. X.UC UUCP
  1262. Xmailer.  Delivery using either the
  1263. X.UC UUCP-A
  1264. Xor the
  1265. X.UC UUCP-B
  1266. Xmailer has to be determined using the special mailertable previously
  1267. Xmentioned.
  1268. X.LP
  1269. XIf an address needs to be routed, i.e. if the first pass through ruleset
  1270. X26 fails, it is given to ruleset 22 where its domain is looked up in a
  1271. X.I pathalias (1)
  1272. Xtype routing table.  Routes to explicit domain/host names are preferred
  1273. Xover general (parent) domain routes.  Before the new address is
  1274. Xreturned, it is sent through the canonicalization routines of ruleset 3.
  1275. XThis makes specific
  1276. X.I pathalias
  1277. Xroute syntax effectively ineffective.  The normal way would be not to
  1278. Xspecify any special routing syntax at all to
  1279. X.I pathalias ,
  1280. Xbut to invariably let it produce
  1281. X.SQ ! -paths.
  1282. X.NH 2
  1283. XExternalizing the Address
  1284. X.LP
  1285. XAfter a mailer has been chosen, addresses are rewritten using rulesets 1
  1286. Xand 2 for envelope senders/recipients and rulesets 5 and 6 for header
  1287. Xsenders/recipients.  Envelope senders are left untouched by this
  1288. Xprocess, but envelope recipients will have
  1289. X.UC RFC 822
  1290. Xroutes turned into
  1291. X.SQ % -paths.
  1292. XHeader
  1293. X.UC RFC 822
  1294. Xroutes will also be turned into
  1295. X.SQ % -paths
  1296. Xand then gently compressed by having paths to fully qualified domains
  1297. Xand
  1298. X.UC UUCP
  1299. Xrelay-to-relay paths removed.
  1300. XHeader senders will furthermore have their host names hidden by
  1301. X.UC HIDDENNAME,
  1302. Xif defined, and their addresses filtered through the
  1303. X.UC GENERICFROM
  1304. Xtable, if available.
  1305. X.PP
  1306. XWhen this is done, the mailer specific rewriting phase starts.  The
  1307. X.UC LOCAL
  1308. Xand
  1309. X.UC PROG
  1310. Xmailers does not do any further rewriting as supplied, but could be
  1311. Xconvinced to produce
  1312. X.SQ ! -paths
  1313. Xfor
  1314. X.UC UUCP
  1315. Xroutes if preferred [using ruleset 15 or a variant thereof].
  1316. X.PP
  1317. XThe
  1318. X.UC TCP/IP
  1319. Xand
  1320. X.UC DEC net
  1321. Xmailers will add a call to ruleset 24 for all envelope recipients.  This
  1322. Xwill turn domains corresponding to
  1323. X.UC DEC net
  1324. Xnodes into flatspaced
  1325. X.UC DEC net
  1326. Xhost names, since domains are not supported there.  This should really
  1327. Xnot be done in the
  1328. X.UC TCP/IP
  1329. Xmailer, but all our
  1330. X.UC DEC net
  1331. Xtraffic is presently routed over a
  1332. X.UC TCP/IP
  1333. Xlink.  Since no special rewriting is done for envelope senders, this
  1334. Xmeans that they normally will appear in
  1335. X.UC RFC 822
  1336. Xroute format using these as well as any of the previous mailers.
  1337. X.PP
  1338. XThere are three variants of the
  1339. X.UC UUCP
  1340. Xmailer depending on the remote node's address handling capabilities.
  1341. XThe
  1342. X.DQ dumb
  1343. Xversion, simply called
  1344. X.UC UUCP ,
  1345. Xcorresponds closely to the class 1 mailer of
  1346. X.UC RFC 976
  1347. X\&
  1348. X.[[
  1349. X%A Mark Horton
  1350. X%T \s-1UUCP\s+1 Mail Interchange Format Standard
  1351. X%S \s-1RFC\s+1\&976
  1352. X%D 1986
  1353. X.]].
  1354. XIt will rewrite all addresses into
  1355. X.SQ ! -format,
  1356. Xand makes all header addresses
  1357. X.SQ ! -relative
  1358. Xthe recipient node, routed through the transmitting node if
  1359. Xnecessary.\**
  1360. X.FS
  1361. XSee the new
  1362. X.UC M_RELATIVIZE
  1363. Xmailer flag in the following section.
  1364. X.FE
  1365. XThe
  1366. X.UC UUCP-A
  1367. Xis closer to the
  1368. X.UC RFC 976
  1369. Xclasses 2 and 3 mailers in that it will let all header addresses stay in
  1370. X.SQ @ -format,
  1371. Xbut change envelope addresses to
  1372. X.SQ ! -paths
  1373. Xwhenever applicable.  The
  1374. X.UC UUCP-B
  1375. Xmailer, finally, functions as the
  1376. X.UC UUCP-A
  1377. Xmailer but will in addition supply envelope senders in
  1378. X.UC RFC 822
  1379. Xroute format and transmit the message to a
  1380. X.I bsmtp
  1381. Xprogram on the remote node.
  1382. X.PP
  1383. XRuleset 4 will as usual make the address truly external.  In our case,
  1384. Xthis means by removing the dot after the atsign and by moving the
  1385. Ximmediate domain to the head of
  1386. X.UC RFC 822
  1387. Xroutes.
  1388. END_OF_ida/doc/part1.ms
  1389. if test 40946 -ne `wc -c <ida/doc/part1.ms`; then
  1390.     echo shar: \"ida/doc/part1.ms\" unpacked with wrong size!
  1391. fi
  1392. # end of overwriting check
  1393. fi
  1394. echo shar: End of archive 6 \(of 7\).
  1395. cp /dev/null ark6isdone
  1396. MISSING=""
  1397. for I in 1 2 3 4 5 6 7 ; do
  1398.     if test ! -f ark${I}isdone ; then
  1399.     MISSING="${MISSING} ${I}"
  1400.     fi
  1401. done
  1402. if test "${MISSING}" = "" ; then
  1403.     echo You have unpacked all 7 archives.
  1404.     echo "See ida/README and ida/INSTALL for further instructions."
  1405.     rm -f ark[1-9]isdone
  1406. else
  1407.     echo You still need to unpack the following archives:
  1408.     echo "        " ${MISSING}
  1409. fi
  1410. ##  End of shell archive.
  1411. exit 0
  1412.