home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / sendmail / sendmail-5.65c+IDA-1.4.4.1 / ida / README < prev    next >
Encoding:
Text File  |  1990-10-15  |  11.9 KB  |  254 lines

  1. #
  2. #  README -- The IDA Sendmail Enhancement Kit.
  3. #  Copyright (c) 1987, 1988 Lennart Lovstrand
  4. #  CIS Dept, Univ of Linkoping, Sweden
  5. #
  6. #  Use it, abuse it, but don't sell it.
  7. #
  8. #  Revision 1 of Wed May 27 04:29:05 MET DST 1987 [sendmail 5.51]
  9. #  Revision 1.1 of Sun Jun 19 00:36:52 BST 1988 [sendmail 5.58]
  10. #  Revision 1.2 of Thu Aug 25 13:36:47 BST 1988 [sendmail 5.59]
  11. #  Revision 1.2.8 of Fri Nov 11 12:20:45 1988 [sendmail 5.59]
  12. [ N.B., this file is quickly becoming of historical interest only.
  13.   In particular the evolving versions of IDA sendmail are located
  14.   elsewhere than arisia.xerox.com.  Active IDA sendmail development
  15.   (and FTP versions of current releases) is taking place at DECWRL
  16.   (gatekeeper.dec.com) and UIUC (uxc.cso.uiuc.edu).  Please see the
  17.   ANNOUNCE file and the doc files in ida/cf for current capabilities. ]
  18.  
  19.  
  20.         Welcome to The IDA Sendmail Enhancement Kit.
  21.  
  22.  
  23. This Kit includes a set of source code modifications to the BSD 4.3
  24. sendmail program (version 5.59), which will enable it to have direct
  25. access to dbm(3) files, separate envelope/header rewritings, multi-token
  26. class matches, and many other things.  Also included is the IDA Sendmail
  27. Master Configuration file and a sample setup used at the CIS Dept, U of
  28. Linkoping.  The configuration file together with the supplied data files
  29. and utility programs, implement such nice features as pathalias based
  30. systems routing within sendmail, fully !-/@-translating rulesets, and
  31. generic local user addresses.
  32.  
  33. The new sendmail functions are breifly listed below and further
  34. described in the accompanying paper, which also discusses electronic
  35. mail addressing in general and hybrid addresses in particular.  (The
  36. numbers to the right indicate in what section of the paper they are
  37. described.)
  38.  
  39.    Nameserver Default Argument............................... 7.1
  40.    Direct Access to Dbm(3) Files............................. 7.2
  41.    Batched SMTP Support...................................... 7.3
  42.    Separate Envelope/Header Rewriting Rulesets............... 7.4
  43.    Separate Local UUCP Host Name............................. 7.5
  44.    Return Path for UUCP Mailers.............................. 7.6
  45.    UUCP Header Address Relativization........................ 7.7
  46.    Support for Multi-Token Matches........................... 7.8
  47.    Support for Embedded Subruleset Calls..................... 7.9
  48.    Elaborate Matching Algorithm for Unknown Local Recipients 7.10
  49.    Support for Maryland's Mdbm Package...................... 7.11
  50.    Improved Test Mode Output................................ 7.12
  51.    Better To: and Cc: Headers of Returned Messages.......... 7.13
  52.    Queue Bug Fixed.......................................... 7.14
  53.    Shared Input SMTP Bug Tentatively Fixed.................. 7.15
  54.    Optional BSD 2.9 and 4.2 Compatibility Code.............. 7.16
  55.    Miscellaneous Changes.................................... 7.17
  56.  
  57. If you are reading this without actually having a copy of the kit, look
  58. for it in your nearest comp.sources.unix archive or use anonymous ftp to
  59. fetch a compressed tape archive from arisia.xerox.com in ftp1/ida.tar.Z.
  60.  
  61. Read more in INSTALL about how to get it all together.  Send bug reports
  62. and dito fixes to the author, but please note he (and his employer) may
  63. believe that there is more in life than maintaining everybody else's
  64. mail systems.  Also note that this is an unsupported package as far as
  65. the University of Linkoping and Rank Xerox Ltd are concerend -- so do
  66. not go to your local Xerox Copy Center and complain about the rewriting
  67. rules.  Remember: you got it for free => you can't get your money back.
  68.  
  69. Enjoy!
  70.  
  71. --Lennart Lovstrand
  72.   Rank Xerox EuroPARC
  73.   61 Regent Street
  74.   Cambridge
  75.   CB2 1AB
  76.   England
  77.  
  78.   DARPA Internet: Lovstrand.EuroPARC@Xerox.COM
  79.   Xerox Internet: Lovstrand:EuroPARC:RX
  80.  
  81.  
  82. ======================================================================
  83. Addendum for the 2nd release (1.1) of the IDA Sendmail Enhancement Kit
  84. ----------------------------------------------------------------------
  85.  
  86. Release 1.1 of the Kit has been upgraded to work with Sun's ported
  87. version of sendmail (5.58).  Only minor changes has been made to
  88. sendmail.h.diff and srvrsmtp.c.diff in order to patch the new source
  89. correctly, but queue.c.diff was removed entirely since that bug now
  90. should be fixed in the BSD release -- subsequently, you should ignore
  91. section 7.14 of the IDA Kit documentation.  Expect some of the patches
  92. to install with a minor offset reported by patch -- they have not been
  93. changed since 1.0 but should still be correct.
  94.  
  95.  
  96. ======================================================================
  97. Addendum for the 3rd release (1.2) of the IDA Sendmail Enhancement Kit
  98. ----------------------------------------------------------------------
  99.  
  100. A complete new set of patches has been made for this release, which
  101. applies to sendmail 5.59 with MX.  For this, the BSD4.2 and BSD2.9
  102. compatibility code has been removed but it will still compile on Suns
  103. with SunOS 3.x or greater.  A new addition is the support for Sun's
  104. Yellow Pages in the dbm routines--if the name of a database you specify
  105. begins with a percent sign, eg:
  106.  
  107.     OKP%pathtable
  108.  
  109. then lookups to that database will be handled by YP instead of a local
  110. dbm file.  See example in lib/Makefile on how to set up a shared
  111. pathalias database for a local area network.
  112.  
  113. Furthermore, the code that searches dbm files has been changed to
  114. automatically notice if a database has been changed and to reinitialize
  115. itself accordingly.  Also, both sendmail and dbm(1) has been modified to
  116. use file locking when updating local dbm files.  This won't help for
  117. shared nfs file systems, though--use YP instead.
  118.  
  119. The syntax for set (class) declarations has been extended to allow
  120. programs as well as files to define a set.  If a file name in an F
  121. statement begins with a vertical bar, as in:
  122.  
  123.     FU|uuname
  124.  
  125. it is assumed to be followed by the name of a program, which will
  126. produce the set's members on its standard output.  Scanf formats are
  127. allowed as usual.
  128.  
  129. A set of patches received from gamiddleton@waterloo has been included in
  130. this release:
  131.  
  132. $&x -- Delayed macro evaluation [from gatech?]
  133.  
  134.     This macro is used in the config file to delay interpretation
  135.     until run-time.  A typical application would be to delay
  136.     evaluation of the 'r' macro, which is usually passed to sendmail
  137.     by other programs to define the sending protocol; e.g. rmail
  138.     does:
  139.         sendmail -oMrUUCP ...
  140.     If you don't use $&r and then freeze the configuration file,
  141.     you'll get the value of $r at "freezing" time instead of
  142.     "thawing" time.  Note that this only applies to RHS expressions
  143.     in rules; use $r elsewhere.
  144.  
  145. $!x -- RFC822 quoted macro expansion
  146.  
  147.     Used to keep address legal wrt RFC822 when constructing the
  148.     From: line for a local user.  The macro is expanded as usual,
  149.     but if any character in it is illegal, the whole string gets
  150.     quoted.  Eg, with:
  151.         Dq$?x$!x $.<$g>
  152.     an address like 'Joe User @ Waterloo <juser@waterloo.edu>'
  153.     would be rewritten as '"Joe User @ Waterloo" <juser@waterloo.edu>'
  154.     to make it legal.
  155.  
  156. Address rewriting loop detection
  157.  
  158.     We found address rewriting was looping if the sendmail.cf file
  159.     was slightly wrong; this code keeps sendmail from looping forever.
  160.  
  161. An extra compile-time frozen file check
  162.  
  163.     The date of the frozen configuration file is compared to the
  164.     time sendmail itself was compiled.  If the .fc file is older, it
  165.     is ignored and the .cf file is used instead.
  166.  
  167.  
  168. Be aware that you will need the latest version (4.8) of BIND in order to
  169. compile sendmail 5.59 with MX support.  If you don't want to install its
  170. include and library files in the system directories, add an additional
  171. -I{bind}/include to CFLAGS in sendmail/src/Makefile and -L{bind}/res in
  172. front of the LIBS variable ({bind} = location of bind directory).
  173.  
  174. Sun users: Make sure that your syslog.o {in /lib/libc.a} has been
  175. compiled with the BSD4.3 netdb.h if you want to use the LOG option.
  176. Also note that sendmail compiled with bind's resolver won't use the
  177. Yellow Pages host table at all.  For your convenience, a compressed
  178. binary copy of IDA sendmail for Sun-3 is available in
  179. ~ftp/pub1/ida-sendmail-sun3.Z on Arisia.Xerox.COM via anonymous ftp.
  180.  
  181.  
  182. Note for BIND experts
  183. ---------------------
  184. One of the changes I made to the code was to use the gethostbyname()
  185. that BIND's resolver supplies instead of the internal getcanonname()
  186. that does repeated res_searches for CNAME records.  This was because I
  187. needed both an acknowledgement of the domain's existance as well as its
  188. fully qualified name (eg. foo.bar => foo.bar.edu), of which the old code
  189. supported neither.  But this now means that there has to be an IN A
  190. (Internet address) record for the domain name we wish to canonicalize.
  191. Another possible option could have been to modify getcanonname() to do
  192. wildcard lookups, but I'm not convinced that's the right way to go.  On
  193. the other hand, I'm no name server wizard, so if you think I'm wrong,
  194. please let me know why (and how) and I'll change it.
  195.  
  196.  
  197. Bugs
  198. ----
  199.  o  There is currently no equivalent of $[...$] for MX records, so the
  200.     IDA Sendmail.mc file will always use any available pathalias routing
  201.     before defaulting to MX/TCP.
  202.  o  When a name server responds with an athoritive "host not found",
  203.     there is currently no way of finding out who is responsible for this
  204.     information -- we'll need to do our own NS lookups to do so.
  205.  o  It has been reported that a syserr of "net timeout" {in util.c} may
  206.     cause sendmail to exit ungracefully without removing the lock file
  207.     and without making a note of which recipients the message already
  208.     has been delivered to.
  209.  o  The Berkeley implementation of MX lookups in deliver() breaks the
  210.     UUCP-B mailer by trying to open a network connection for a mailer
  211.     which is a local program.  This is clearly wrong since the SMTP
  212.     delivery code has *nothing* to do with the transport protocol to be
  213.     used and should keep its greedy pawns off! [No fix yet]
  214.  
  215.  
  216. Minor Revisions
  217. ---------------
  218. 1.2.1 - Various changes to Sendmail.mc regarding its interpretation of
  219.     hybrid addresses; made to parse according to receiving protocol.
  220.     (Reimplemented BANGIMPLIESUUCP;    obsoleted UUCPPRECEDENCE; added
  221.     STRICTLY822, UUCPMAILER.)
  222. 1.2.2 -    Made database lookups NOT send result through sprintf if there
  223.     was no sprintf arg in call, ie. $(X foo $) or $(X foo $: bar $).
  224.     This will make it less error-prone for usage with non-pathalias
  225.     databases.  Note, however, that from this version of IDA, double
  226.     percent signs will NOT be reduced to single percents (ie, you may
  227.     need to update your databases if you had adjusted for this before).
  228. 1.2.3 - Split the TCP mailer into TCP and TCP-D (DECnet gateway); added
  229.     a TCP-U mailer and ruleset 13 for UUCP gateways that require
  230.     hybrid addresses, ie. UUCP !-paths on top of @-domains (brr).
  231.     Made sure the h macro (remote host) is defined in buildaddr()
  232.     before the mailer rulesets are called.  Added TCPMAILER option.
  233. 1.2.4 - Sendmail.mc: A list of well-known pseudo-domains (PSEUDODDOMAINS) 
  234.     has been added to reduce load on the root name server by
  235.     avoiding name server lookups on domains ending in these.
  236. 1.2.5 - Sendmail.mc: Experimental support for XNS Mail (XNSMAIL, XNSDOMAIN).
  237.     Improved the error reporting code in usersmtp.c to mention what
  238.     host it was talking to when the error occurred.  Also made
  239.     deliver.c tell a little more about "host unknown" errors.
  240. 1.2.6 - Sendmail.mc: Removed the 'h' flag from the UUCP mailers because
  241.     some uux'es refuse to recognize uppercase host names.  Made
  242.     address relativization optional by adding the conditional
  243.     RELATIVIZE (qv).  Added the TCP-A mailer for hosts that require
  244.     that all addresses contain registered domains (ie no .UUCP,
  245.     .BITNET, etc).  usersmtp.c, daemon.c: Various error reporting
  246.     improvements on the code.
  247. 1.2.7 - Made the SMTP DEBUG command optional by surrounding it with a
  248.     #ifdef NETDEBUG conditional in usersmtp.c because of the recent
  249.     virus alerts. NETDEBUG is undefined by default, but turn it on
  250.     in conf.h if you want to live dangerously.
  251. 1.2.8 - Fixed bug in reply() which caused sendmail to dump core when
  252.     it tried to read the response from a connection that already
  253.     had been closed.
  254.