home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume16 / ida2 / part06 < prev    next >
Text File  |  1988-11-13  |  44KB  |  1,401 lines

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