home *** CD-ROM | disk | FTP | other *** search
- Subject: v16i079: IDA Sendmail kit, Part07/08
- Newsgroups: comp.sources.unix
- Sender: sources
- Approved: rsalz@uunet.UU.NET
-
- Submitted-by: Lennart Lovstrand <lovstran@arisia.xerox.com>
- Posting-number: Volume 16, Issue 79
- Archive-name: ida2/part07
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 7 (of 8)."
- # Contents: ida/doc/part2.ms
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f ida/doc/part2.ms -a "${1}" != "-c" ; then
- echo shar: Will not over-write existing file \"ida/doc/part2.ms\"
- else
- echo shar: Extracting \"ida/doc/part2.ms\" \(43054 characters\)
- sed "s/^X//" >ida/doc/part2.ms <<'END_OF_ida/doc/part2.ms'
- X.NH
- XMANAGING GENERIC MAIL ADDRESSES
- X.LP
- XWhile sending mail to people by specifying a mailbox on a named computer
- Xmay fulfill the technical requirements of an electronic mail system, it
- Xmay not always be very convenient. With people having accounts on many
- Xdifferent hosts and often moving between them, it is hard to keep track
- Xof where a person presently will read his or her mail. For external
- Xsenders, remembering strange host names for lots of people is even
- Xworse. Just knowing that Person A, working in the same group as Person
- XB, has a mailbox on Computer C does not mean that B also can be reached
- Xon that machine. It may very well be that Computer C is A's personal
- Xworkstation with no other accounts than A's.
- X.PP
- XSimply setting up as many forwarding addresses as possible on all sorts
- Xof machines does not solve the problem. First of all, there might be
- Xreasons for a user to want to actually receive mail on any of these
- Xmachines\*-e.g. because this may be the easiest way of copying files
- Xbetween remote machines. Also, there is still no visible connection
- Xbetween the person and his group, which makes it hard to remember his
- Xaddress.
- X.PP
- XAnother solution would be to have a special machine for mail forwarding,
- Xpreferably with a name corresponding to the local organization. Since
- Xall mail has to go through this node in order to reach its recipients,
- Xit may prove to be an expensive solution if this means that the extra
- Xload will restrain users from doing other useful work on the machine.
- XAlso, if this node goes down, no mail will be delivered until it comes
- Xup again.
- X.PP
- XOur proposed solution to the problem is to extend
- X.I sendmail 's
- Xnotion of aliases to include forwarding of non-local addresses as well
- Xas those specific to the local host. This way, several hosts may share
- Xthe non-local part of a aliases table and any of them can do the
- Xforwarding. Users may change their preferred mailbox and computers may
- Xbe renamed at any time with no change in the way their inbound addresses
- Xlook like. As an option, users'
- X.DQ From:
- Xline addresses may be rewritten to correspond to the organizational
- Xaddress by using the same database. For example, this author's mail
- Xaddress:
- X.QQ
- Xlel@ida.liu.se (\fIaka\fP lel@liuida.\s-1UUCP\s+1)
- X.LP
- Xis implemented by an entry in the aliases files on set of Sun systems
- Xand a Gould. All of them will forward messages for that address to my
- Xpreferred mailbox on a
- X.UC DEC system-20.
- XAny message sent from either the Suns, the Gould, or the
- X.UC DEC system-20
- Xwill have
- X.DQ lel@ida.liu.se
- Xas the
- X.DQ From:
- Xline return address. The envelope sender, however, will at all times
- Xpoint to the actual user and host that originated the message.
- X.PP
- XThis is implemented using an
- X.I aliases
- Xfile with extended syntax, called
- X.I xaliases .
- XEntries in this file are marked for either inbound or outbound aliasing.
- XInbound is the normal function, and may be used for non-local addresses
- Xas well as local ones. Outbound aliasing is done on header sender lines
- Xby rewriting them to the LHS value in the
- X.I xaliases
- Xentry. The syntax for entries in this file is:
- X.QQ
- Xalias, alias, \|.\|.\|.\|: prefix address, prefix address, \|.\|.\|.\|
- X.LP
- Xwhere the first
- X.I alias
- Xis the generic address that should be substituted for those in the
- Xheader sender lines matching the RHS outbound
- X.I addresses .
- XAll LHS
- X.I aliases
- Xare mailboxes that should be forwarded to the RHS
- X.I addresses
- Xmarked inbound. The
- X.I prefix
- Xbefore each RHS
- X.I address
- Xmarks it as either inbound, outbound or both according to the following
- Xtable:
- X.QQ
- X.TS
- Xl l .
- X(\fIno mark\fP) Inbound
- X< Outbound
- X> Inbound
- X<> Both Inbound and Outbound
- X.TE
- X.LP
- XThe
- X.I xaliases
- Xfile is then parsed by the
- X.I xalparse (8)
- Xprogram, producing a normal
- X.I aliases (5)
- Xfile as output together with a
- X.I dbm (1)
- Xinput file, consisting of the outbound aliases. An example would
- Xbe:
- X.QQ
- XFooey.Barbaz@dept, bar@dept, foo: <> fooey@besthost, < fobar@otherhost
- X.LP
- Xwhich means that mails to either
- X.DQ Fooey.Barbaz@dept,
- X.DQ bar@dept,
- Xor
- X.DQ foo@localhost
- Xwill be forwarded to
- X.DQ fooey@besthost
- Xand that mail from either
- X.DQ fooey@besthost
- Xor
- X.DQ fobar@otherhost
- Xwill have their header sender lines substituted for
- X.DQ Fooey.Barbaz@dept.
- XSee the supplied
- X.I xaliases
- Xfile for more examples.
- X.PP
- XAn
- X.I aliases
- Xfile with non-local aliases should be processed by running
- X.I sendmail
- Xwith a configuration file having the
- X.UC NEWALIASES
- Xidentifier defined. This makes it parse all addresses as local and
- Xreturn them to the
- X.UC LOCAL
- Xmailer when building the dbm alias tables. A delivering
- X.I sendmail
- Xwill then lookup all addresses in the
- X.I aliases
- Xfile and return any found to the
- X.UC LOCAL
- Xmailer [ruleset 26]. The normal aliasing mechanisms of
- X.I sendmail
- Xare then used to distribute the messages further.
- X.PP
- XThe substitution of
- X.DQ physical
- Xsenders with
- X.DQ generic
- Xaddresses, is as previously mentinioned done in the header/sender
- Xspecific ruleset 5 by lookup in the
- X.UC GENERICFROM
- Xdatabase.
- X.NH
- XSENDMAIL SOURCE MODIFICATIONS
- X.LP
- X.I Sendmail
- Xgives a lot of flexibility to the maintainer and developer of electronic
- Xmail. Still, it lacks certain functionality for which it was determined
- Xthat our project's goals could not be fulfilled without. Just [sic]
- Xdeveloping a new configuration file was not adequate, but changes to the
- Xsource code itself had to be done. Still, we did this with the
- Xphilosophy that it is best to avoid source code modifications whenever
- Xit is possible to obtain the same results by merely changing parameters
- Xin the configuration file.
- X.LP
- XThe following features have been implemented in our current version of
- X.I sendmail (5.51++):
- X.NH 2
- XNameserver Default Argument
- X.LP
- XPreviously, there was no way of knowing whether a nameserver lookup
- Xwas successful or not, thus making that feature of limited value.
- XThis version will allow you to add a
- X.I default
- Xargument to the nameserver lookup function, which will be returned if
- Xthe match fails. A typical usage for this is to determine if a host is
- Xaccessible using the
- X.UC TCP/IP
- Xprotocol family.
- XThe extended syntax is as follows:
- X.QQ
- X.B $[
- Xhostname
- X.B $:
- Xdefault
- X.B $]
- X.LP
- Xwhere the
- X.B $: \fIdefault\fP
- Xpart is optional.
- X.NH 2
- XDirect Access to Dbm(3) Files
- X.LP
- XThe configuration file syntax has been expanded to include the
- Xdeclaration and usage of general
- X.I ndbm (3)
- Xdatabases. The option
- X.SQ K
- X(for
- X.I "Keyed database" )
- Xhas been added. It takes two arguments, a one character internal name
- Xfor the database and the corresponding
- X.I dbm (3)
- Xfile(s), as in:
- X.QQ
- XOKP/usr/lib/mail/pathtable
- X.LP
- Xwhich defines the internal database
- X.SQ P
- Xto be associated with the dbm files /usr/lib/mail/pathtable.dir and
- Xpathtable.pag (or pathtable.map and pathtable.dat if you are using
- XMaryland's
- X.I mdbm (3)
- Xpackage).
- X.PP
- XThe
- X.SQ P
- Xdatabase may now be used to lookup arbitrary strings in the RHS of
- Xrewriting rules. The syntax is as follows:
- X.QQ
- X\fB$(\fPx key \fB$@\fP arg \fB$:\fP default \fB$)\fP
- X.LP
- Xwhere
- X.I x
- Xis corresponds to a previously declared database,
- X.I key
- Xis the string that should be searched for in the database.
- XThe
- X.I arg
- Xand
- X.I default
- Xarguments are optional. The
- X.I default
- Xstring is returned is if the
- X.I key
- Xcould not be found in the database. If neither
- X.I default
- Xstring, nor a matching
- X.I key
- Xis to be found, the whole expression expands to the value of
- X.I key .
- XHowever, if a result is found, it is used as the format string of a
- X.I sprintf (3)
- Xexpression, with the
- X.I arg
- Xas extra argument. Thus, database values with
- X.DQ %s
- Xstrings embedded in them can be useful when rewriting expressions. This
- Xcould typically be used in cooperation with the
- X.I pathalias (1)
- Xprogram to expand routes without leaving
- X.I sendmail .
- X.PP
- XThe
- X.I aliases (5)
- Xfile is automatically available using the
- X.SQ @
- Xdatabase and should
- X.B not
- Xbe declared with a option
- X.SQ K
- Xstatement.
- X.NH 2
- XBatched
- X.UC SMTP
- XSupport
- X.LP
- X.I Sendmail
- Xalready speaks
- X.UC SMTP
- Xover interactive channels, but because it both will drop errors occurring
- Xwhen acting as server as well as hang indefinitely when talking to a
- Xnon-responding channel as client, this is not sufficient to process or
- Xproduce
- X.UC SMTP
- Xbatches.
- XStill, since the
- X.UC SMTP
- Xcode already is there,
- Xit was considered easier to add batching support internally in
- X.I sendmail
- Xthan to write new front-end programs.
- X.PP
- XThe new code defines a new
- X.UC MD_BSMTP
- Xmode, which is activated by the
- X.B \-bb
- Xoption or by making a link to
- X.I sendmail
- Xnamed
- X.I bsmtp .
- XThe normal way of digesting
- X.UC SMTP
- Xbatches is to execute
- X.I bsmtp
- Xwith no arguments.
- X.PP
- XTo produce
- X.UC SMTP
- Xscripts, the
- X.UC M_BSMTP
- X(\fBB\fP) mailer flag
- Xhas been added. It is used as in the following example:
- X.QQ -1
- XMUUCP-B, P=/usr/bin/uux, F=BDFMSXhmpu, S=0, R=15/0, A=uux \- \-z \-r
- X$h!bsmtp
- X.LP
- XThis defines the
- X.UC UUCP-B
- Xmailer to send
- X.UC SMTP
- Xscripts on the standard input to the
- X.I uux (1)
- Xprogram.
- X.NH 2
- XSeparate Envelope/Header Rewriting Rulesets
- X.LP
- XEnvelope and header addresses does not always look the same. For
- Xexample, it
- Xis often desirable to have envelope return addresses formed using
- X.UC RFC 822
- Xroute syntax, while this format more rarely is understood by users'
- Xfront-end mail programs. Another case is when the envelope recipient
- Xaddress is expanded to a system route, while the header recipient
- Xshould be kept simple.
- X.PP
- XWith this package, the mail system administrator has the option of
- Xseparating rewriting control for envelope/recipient addresses.
- XNormally, all sender/recipient addresses are passed through rulesets 1
- Xand 2, but if the \fISplitRewriting\fP option
- X.SQ /
- Xis set, only envelope addresses are handled that way; header addresses
- Xare given to rulesets 5 and 6, which should be properly defined.
- X.PP
- XMailer dependant rewriting may also be controlled in an envelope/header
- Xspecific way. This is accomplished by extending the syntax for the
- X.SQ R
- Xand
- X.SQ S
- Xattributes of the mailer definition statement:
- X.QQ
- XR=re/rh, S=se/sh
- X.LP
- Xwith the envelope and header rulesets divided by a slash. If no slash
- Xis found, it functions as before by using the same ruleset for both
- Xtypes of rewriting. A zero or missing ruleset indicates that no
- Xrewriting should be done. In the previous example of the
- X.I "Batched \s-1SMTP\s+1 Support" ,
- Xno mailer dependant sender rewriting is done, recipient envelope
- Xaddresses are rewritten using ruleset 15, but recipient header addresses
- Xare left untouched.
- X.NH 2
- XSeparate Local
- X.UC UUCP
- XHost Name
- X.LP
- XWith the extensive, structured world of domains on one side and the
- Xflatspaced, shortnamed
- X.UC UUCP
- Xworld on the other, it may be desirable for a node to have a
- X.UC UUCP
- Xnode name separate from its normal host name. For this purpose, the
- X.B $k
- Xmacro has been introduced to hold the local node's specific
- X.UC UUCP
- Xhost name. It defaults to the node's
- X.DQ normal
- Xhost name (as returned by
- X.I gethostname (3)),
- Xif not explicitly defined in the
- Xconfiguration file. It is used when rewriting headers in the
- X.I "\s-1UUCP\s+1 Relativization Routines"
- Xas well as when producing
- X.UC UUCP
- X.DQ From_
- Xlines with the
- X.UC M_FROMPATH
- X(\fBp\fP) turned on.
- X.NH 2
- XReturn Path for
- X.UC UUCP
- XMailers
- X.LP
- XThe
- X.UC M_FROMPATH
- X(\fBp\fP) mailer flag is used by the
- X.UC SMTP
- Xroutines to add the local
- Xhost to the envelope sender in the
- X.UC "MAIL FROM:"
- Xcommand. This is a useful option for producing trustworthy routes
- Xback to the sender for receipts and error messages. This capability
- Xhas now been added the the code that produces
- X.UC UUCP
- X.DQ From_
- Xlines. The sender's address is simply prefixed using the local host's
- X.UC UUCP
- Xname and an exclamation mark\*-the canonical way of constructing
- Xpaths in the
- X.UC UUCP
- Xworld. (For mailers with the
- X.UC M_UGLYUUCP
- Xflag (\fBU\fP) set, the local host's name is added after the
- X.DQ "remote from"
- Xstring.)
- X.NH 2
- X.UC UUCP
- XHeader Address Relativization
- X.LP
- XA new
- X.UC M_RELATIVIZE
- X(\fBV\fP) mailer flag has been added, which relativizes header lines
- Xwith respect to the immediate recipient host. This means that
- X.I paths
- Xthrough the remote host will have the remote node's name removed (local
- Xrecipients at the remote host are untouched) and that other addresses
- Xare rewritten to have paths through the local host.
- X.PP
- XSpecifically,
- X.DQ \fB$h\fP!\|.\|.\|.\|!user
- Xaddresses are stripped down to the
- X.DQ \|.\|.\|.\|!user
- Xpart,
- X.DQ \fB$h\fP!user
- Xare left untouched, and
- X.DQ "others"
- Xrewritten into
- X.DQ \fB$k\fP!others
- X(the initial value of \fB$w\fP is used if \fB$k\fP is undefined).
- X.NH 2
- XSupport for Multi-Token Class Matches
- X.LP
- XWhen
- X.I sendmail
- Xtried to match a LHS \fB$=\fPX class expression, it used to be the case
- Xthat it only looked for matches with one token. If the period is a
- Xdelimiter and if
- X.DQ foo.\s-1EDU\s+1
- Xis a member of the
- X.SQ X
- Xclass, it would not find the string
- X.DQ foo.\s-1EDU\s+1
- Xin the class since it contained three tokens
- X.DQ foo "" (
- X.DQ .
- Xand
- X.UQ EDU ).
- XThis was considered such a great inconvenience that the expression
- Xmatching code was rewritten to allow multi-token class matches on the
- Xexpense of being somewhat slower. With the above example, the current
- Xversion will first try to find a match for
- X.DQ foo
- Xthen
- X.DQ foo.
- Xthen
- X.DQ foo.\s-1EDU\s+1
- Xand so on, each time incorporating the next successive token of the
- Xexpression in the class match.
- X.NH 2
- XSupport for Embedded Subruleset Calls
- X.LP
- XBeing a
- X.UC LISP
- Xhacker of heart, the author couldn't refrain from making
- X.I sendmail
- Xhandle embedded ruleset calls. The previous version had the very
- Xannoying restriction of only allowing one ruleset call per rule and only
- Xallowing the
- X.B $@
- Xand
- X.B $:
- Xmacros to appear on its left side. The current version handles both
- Xembedded ruleset calls of the form
- X.DQ "$>4$>10$>6 $1@.$2"
- Xas well as arbitrarily positioned calls within the RHS expression
- X(although the latter has not been fully tested).
- X.NH 2
- XElaborate Matching Algorithm for Unknown Local Recipients
- X.LP
- XBased on the idea that it always is a bad idea to throw mail back
- Xwith a
- X.DQ "User Unknown"
- Xerror message if a human operator might be able to guess the actual
- Xrecipients identity, we have added a more elaborate search algorithm
- Xthat matches unknown recipients with the personal name field of the
- X/etc/passwd file. The previous version of
- X.I sendmail
- Xoffered a similar functionality, but would only find strings that were
- Xexact copies of that field. This version uses an algorithm that will
- Xreturn a number corresponding to the degree of similarity between the
- Xtwo strings. Strings are considered match best if as many mutual
- Xsubstrings as possible are found in sequence. Substrings are delimited
- Xby any non-alphabetic character and completely equal substrings are
- Xbetter matches than just prefixes.
- X.PP
- XThe best match of such a search through the /etc/passwd file is returned
- Xas the local recipient, provided that only one such match exists. If no
- Xbest match is found (i.e., if more than one
- X.I passwd
- Xentry have the same highest matching degree), the search fails and the
- Xmail is returned with an error message.
- X.NH 2
- XSupport for Maryland's Mdbm Package
- X.LP
- XSites that do not yet have the new
- X.I ndbm (3)
- Xfunctions of
- X.UC BSD
- X4.3 may still use the
- X.I "Database Access Functions"
- Xdescribed above using the University of Maryland's public domain
- Xmulti-dbm routines, which are available from your nearest
- Xcomp.sources.unix archive. Note that these use different extensions of
- Xtheir database files (.map and \&.dat instead of \&.dir and \&.pag) as
- Xwell as a different internal format than
- X.I dbm (3),
- Xso it is still recommended to use
- X.I ndbm (3)
- Xwhenever possible.
- X.NH 2
- XImproved Test Mode Output
- X.LP
- XIt is hard to remember what all these
- X.DQ ^X s
- Xand
- X.DQ ^V s
- Xstand for when debugging sendmail rewriting rules, using its address
- Xrewriting test mode. The changes in this version will make macros print
- Xin their symbolic form, i.e.
- X.DQ "\fB$:\fP"
- Xfor
- X.DQ "^X,"
- Xetc.
- X.PP
- XIn addition, at least this
- X.I sendmail.cf
- Xdeveloper often wanted to send addresses directly into a specific
- Xruleset without having them automatically rewritten by ruleset 3.
- XThus, the initial call to ruleset 3 has been
- X.B deleted
- Xin this version. You will have to send your addresses manually through
- Xruleset 3 henceforth if you adopt this change.
- X.PP
- XFinally, the ruleset rewriting output often became too wide to be easily
- Xread due to the excess of quotation marks around the tokens. These have
- Xnow been removed from the test output, leaving just a space between each
- Xtoken. The author thinks this is much more convenient and hopes that
- Xyou agree.
- X.NH 2
- XBetter To: and Cc: Headers of Returned Messages
- X.LP
- XThe original code would produce multiple To: header lines in returned
- Xmessages if the message was sent to more than one recipient. A typical
- Xreason for this to happen was if you used the PostMasterCopy option in
- Xyour
- X.I sendmail.cf
- Xfile. This version will put the PostMasterCopy on a separate Cc: line
- Xand all others together in a comma-separated list on the To: line.
- X.NH 2
- XQueue Bug Fixed
- X.LP
- XA nasty little queue bug bit us hard several times last year. It
- Xoccurred when, for whatever reason, the queue daemon ended up processing
- Xa locked queue entry as its last. It immediately discovered that it was
- Xlocked and left it alone, but then exited and while doing general
- Xcleanup in
- X.I finis ,
- Xremoved the locked queue file as well. That way, we frequently started
- Xending up with broken queue files and lost messages as a consequence.
- XThe fix is to explicitly set the current envelope's id to
- X.UC NULL
- Xbefore leaving the current queue pass, since it should not exist
- Xanyway.
- X.NH 2
- XShared Input
- X.UC SMTP
- XBug Tentatively Fixed
- X.LP
- XThe
- X.UC SMTP
- Xserver routines read delivery requests from stdin. Each message is
- Xhandled by a different process by forking after the
- X.UC "MAIL FROM:"
- Xcommand is read. The parent then sleeps while the child delivers the
- Xmessage and continues to process more
- X.UC SMTP
- Xcommands thereafter. Now, both parent and child read from stdin and
- Xshare the same file descriptor. However, they do not share the same
- X.I _iobuf
- Xthat represents the stream, so when the parent starts reading
- Xafter the child has died, it reads the very same input that the child
- Xhas processed.\**
- X.FS
- XUnless stdin is connected to a terminal.
- X.FE
- X.PP
- XThere are only two ways out of this. Either, the parent process don't
- Xfork and delivers all messages itself, or they all read unbuffered. The
- Xformer solution (or a variant thereof) is probably better, but the
- Xlatter was easier to implement, so that is what presently have been
- Xdone. Since this causes unnecessary overhead as each character has to
- Xbe read with a system call, someone ought to make a better fix for this
- Xeventually.
- X.NH 2
- XOptional
- X.UC BSD
- X2.9 and 4.2 Compatibility Code
- X.LP
- XThe Kit includes a set of changes that optionally may be added to make
- Xthe 5.51 version of
- X.I sendmail
- Xrun under the Berkeley 4.2 or 2.9 release of
- X.UX .
- XThe changes neccesary to make it run under 4.2 are very minor and mostly
- Xdeal with adding undefined symbols. The 2.9 changes are fewer than you
- Xwould expect, although it still is necessary to drastically trim down
- Xthe size of
- X.I sendmail 's
- Xbuffers if you intend to run it on a
- X.UC PDP -11.
- XThe 2.9 changes are all enclosed under the
- X.UC BSD 29
- Xdefine.
- X.PP
- X.NH 2
- XMiscellaneous Changes
- X.LP
- XIn addition to what already has been mentioned, a set of changes has
- Xbeen included that only add minor functionality or deal with less
- Ximportant bugs in the original source. They are further described in
- X.I "Appendix A: List of Affected Files" .
- X.NH
- XCONCLUSION
- X.LP
- XThe development of the IDA Sendmail Enhancment Kit has been going on
- Xmore or less continuously for over two years. Many were the interim
- Xversions and many were the nights spent testing the newly configured
- Xsystem. Still, it is our feeling that the current version is complete
- Xenough to be considered generally useful, and it is our sincere hope
- Xthat you have found your time spent reading this document worthwhile.
- X.PP
- XThe problems with complex hybrid addresses are parts of the growing
- Xpains of a rapidly expanding world of interconnecting computer networks.
- XIt is this author's opinion that it ultimately will be necessary to
- Xagree on some common way of identifying message originators and
- Xrecipients. In the mean time, we will have to face the world as it is
- Xand try to relieve users' pains as much as possible by letting the MTAs
- Xworry about routing and foreign addressing format issues.
- X.PP
- XAn excellent source for further reading is John Quarterman's and Hosiah
- XHoskins' article
- X.I "Notable Computer Networks"
- X\&
- X.[[
- X%A John Quarterman
- X%A Hosiah Hoskins
- X%T Notable Computer Networks
- X%J Communications of the ACM
- X%V 29
- X%N 10
- X%D 1986
- X.]],
- Xwhich gives a thorough overview of existing major computer networks and
- Xsupplied services around the world, with an emphasis on electronic mail.
- XTheir survey has been an invaluable source of information for this
- Xauthor among others.
- X.PP
- XElectronic mail is truly an interesting medium. It combines the speed
- Xof the telephone with the asychronacity of the written letter. In
- Xaddition, it gives possibilities for developing all sorts of interesting
- Xcomputerized communication services, such as electronic conferencing
- Xsystems and database or expert systems consultation services. But above
- Xall, it communicates across all boundaries with no respect to operating
- Xsystems or computer brands. It may not always be painless, but that can
- Xbe improved. As long as we communicate, everything can be improved.
- X.QQ
- X.ad r
- X.I
- XThe Mail Connectivity Conspiracy Continues\|.\|.\|.\|\c
- X.R
- X\&
- X.[[
- X%A Mark Crispin
- X%T (Private Communication)
- X%D 1986
- X.]]
- X.br
- X.ad b
- X.AP A
- XLIST OF AFFECTED FILES
- X.LP
- XThis is description of all changes made to the
- X.I sendmail
- Xsource files.
- X.SH
- X.UL "Nameserver Default Argument"
- X.JB daemon.c
- XChanged to return
- X.UC TRUE
- Xif
- X.I gethostbyname (3)
- Xsucceeds and
- X.UC FALSE
- Xif not.
- X.JB parseaddr.c
- XChanged to interpret the
- X.B $:
- X.I default
- Xargument and to take care of the returned value of
- X.I maphostname .
- X.SH
- X.UL "Direct Access to Dbm(3) Files"
- X.JB alias.c
- XChanged to allow access using the
- X.SQ @
- Xdatabase.
- X.JB conf.c
- XChanged to initialize all databases to
- X.UC DB_NOTYETOPEN .
- X.JB daemon.c
- XThe lookup function
- X.I mapkey
- Xgoes here. It takes four arguments:
- X.I db ,
- Xthe character denoting the database,
- X.I key ,
- Xthe lookup string and buffer in which a result is returned,
- X.I keysiz ,
- Xthe maximum size of the key buffer, and
- X.I arg ,
- Xwhich either should be a character string or
- X.UC NULL .
- XThe function returns
- X.UC TRUE
- Xif a match could be found and
- X.UC FALSE
- Xotherwise. The debugging flag 60 may be used to trace database lookups.
- X.JB main.c
- XAdded mappings of
- X.B $(
- Xand
- X.B $)
- Xto
- X.UC KEYBEGIN
- Xand
- X.UC KEYEND .
- X.JB parseaddr.c
- XAdded code to interpret \fB$(\fP\|.\|.\|.\|\fB$)\fP
- Xconstructs.
- X.JB readcf.c
- XAdded understanding of the
- X.SQ K
- Xoption.
- X.JB sendmail.h
- XAdded definitions for the macro characters
- X.UC KEYBEGIN
- Xand
- X.UC KEYEND .
- XAdded the declaration of the global database file table DbmTab.
- X.SH
- X.UL "Batched \s-1SMTP\s+1 Support"
- X.JB main.c
- XAdded the
- X.UC MD_BSMTP
- Xoption and the usage of
- X.I bsmtp
- Xas an alternate name of
- X.I sendmail
- Xthat automatically will turn on the
- X.UC MD_BSMTP
- Xmode.
- X.JB sendmail.h
- XAdded the
- X.UC MD_BSMTP
- Xdefine.
- X.JB srvrsmtp.c
- XAdded the
- X.I batched
- Xargument (boolean) to the
- X.I smtp
- Xfunction and changes that will make it mail
- Xback errors is
- X.I batched
- Xis set.
- X.JB usersmtp.c
- XChanged the code to automatically generate internal
- X.UC SMTPGOODREPLY
- X(\fB250\fP)
- Xreply codes to all
- X.UC SMTP
- Xcommands if the
- X.UC M_BSMTP
- Xmailer flag is set.
- X.SH
- X.UL "Separate Envelope/Header Rewriting Rulesets"
- X.JB headers.c
- XChanged to propagate a flag telling if this is an envelope or header
- Xaddress for
- X.I remotename
- Xto rewrite.
- X.JB main.c
- XTrace statement changed to display mailers' envelope and header specific
- Xrulesets.
- X.JB parseaddr.c
- XAdded a boolean
- X.I headeraddress
- Xargument to
- X.I remotename
- Xand code to distinguish between envelope and header rewriting.
- X.JB queue.c
- XSet both envelope and header rewriting rulesets to -1 in
- X.I nullmailer .
- X.JB readcf.c
- XMade it parse the
- X.SQ /
- Xoption and the extended mailer ruleset specification syntax.
- X.JB sendmail.h
- XExtended the mailer declaration to include both envelope and header
- Xspecific rulesets.
- X.SH
- X.UL "Separate Local \s-1UUCP\s+1 Host Name"
- X.JB deliver.c
- XUsed when producing
- X.DQ From_
- Xlines.
- X.JB main.c
- XAdded the definition of
- X.B $k
- Xto the initial value of
- X.B $w .
- X.JB parseaddr.c
- XUsed when making addresses
- X.UC UUCP
- Xrelative.
- X.SH
- X.UL "Return Path for \s-1UUCP\s+1 Mailers"
- X.JB deliver.c
- XChanged to look for the mailer flag
- X.UC M_FROMPATH
- Xwhen producing the
- X.UC UUCP
- X.DQ From_
- Xlines.
- X.SH
- X.UL "\s-1UUCP\s+1 Header Address Relativization"
- X.JB parseaddr.c
- XChanged to
- X.I uurelativize
- Xaddresses after ruleset 4 has been applied if the
- X.U M_RELATIVIZE
- Xmailer flag is set. The actual
- X.I uurelativize
- Xis here too.
- X.JB sendmail.h
- XDefined the
- X.UC M_RELATIVIZE
- Xflag to be 'V'.
- X.SH
- X.UL "Support for Multi-Token Class Matches"
- X.JB parseaddr.c
- XCrude code added to enable multi-token class matches.
- X.SH
- X.UL "Support for Embedded Subruleset Calls"
- X.JB parseaddr.c
- XWrote a separate
- X.I callsubr
- Xfunction to take care of subruleset calls.
- X.SH
- X.UL "Elaborate Matching Algorithm for Unknown Local Recipients"
- X.JB recipient.c
- XAdded the
- X.I partialstring
- Xmatching routine and code that calls it for unknown local recipients.
- X.SH
- X.UL "Support for Maryland's mdbm Package"
- X.JB alias.c
- XChanged to be independent on which package is being used.
- X.JB conf.h
- XAdded the
- X.UC MDBM
- Xdefine, to be used if the mdbm routines should be used instead of the
- Xndbm.
- XNote that
- X.UC NDBM
- Xstill should be defined.
- X.JB mdbm_compat.h
- XA mdbm compatibility file, used to define macros which map ndbm
- Xfunctions to their mdbm equivalents.
- X.JB sendmail.h
- XAdded mdbm compatibility macros and generalized the dbm code in general.
- X.SH
- X.UL "Improved Test Mode Output"
- X.JB main.c
- XChanged it to export the macros' symbolic names.
- X.JB parseaddr.c
- XChanged it to call
- X.I printcav
- Xinstead of
- X.I printav
- Xwhen tracing the rewriting rules.
- X.JB sendmail.h
- XIncluded main.c's macro table among the global variables.
- X.JB util.h
- XChanged it to print macros using their symbolic names. Added the
- X.I printcav
- Xfunction, which prints argument vectors without enclosing quotation
- Xmarks.
- X.SH
- X.UL "Better To: and Cc: Headers of Returned Messages"
- X.JB savemail.c
- XChanged the code to produce the above result.
- X.SH
- X.UL "Queue Bug Fixed"
- X.JB queue.c
- XSet the current envelope's id to
- X.UC NULL
- Xbefore exiting.
- X.SH
- X.UL "Shared Input \s-1SMTP\s+1 Bug Tentatively Fixed"
- X.JB main.c
- XTurned off buffering from standard input before the call to
- X.I smtp .
- X.SH
- X.UL "Optional \s-1BSD\s+1\&4.2 Compatibility Code"
- X.JB conf.h
- XAdded the definition of
- X.I sigmask
- Xif left undefined by <signal.h>.
- XAdded mock definitions for
- X.UC LOG_MAIL ,
- X.UC TRY_AGAIN ,
- Xand
- X.I h_errno .
- X.SH
- X.UL "Optional \s-1BSD\s+1\&2.9 Compatibility Code"
- X.JB conf.h
- XAdded the definition of
- X.UC EPROCLIM
- X(not really applicable under
- X.UC BSD
- X2.9) and the inclusion of ../lib/libndir/dir.h.
- X.JB conf.c
- XChanged to include <a.out.h> instead of <nlist.h>, and to search /unix
- Xinstead of /vmunix for kernel symbols.
- X.JB daemon.c
- XChanged to use
- X.I gethostname (3)
- Xinstead of <whoami.h> to find out its local host name.
- X.JB deliver.h
- XChanged not to include <netdb.h>
- X.JB err.c
- XChanged not to include <netdb.h>
- X.SH
- X.UL "Miscellaneous Changes"
- X.JB deliver.c
- XAn array of verbose mailer error messages has been added together with
- Xcode that prints out the error in text instead of just giving the code
- Xin numeric form. [Incorporated from
- X.UC USENET ]
- X.JB main.c
- XA new
- X.B \-Z
- Xcommand line option has been added, which defines the name of the frozen
- Xconfiguration file in analogy with
- X.B \-C .
- X.JB parseaddr.c
- XHas been changed to compare aliased users with
- X.I sameword
- Xinstead of
- X.I strcmp
- Xto make up for differencing case.
- X.JB sendmail.h
- XThe reference to <sys/syslog.h> has been replaced by <syslog.h> unless
- Xsendmail is compiling on a
- X.UC VAX .
- XI'm not sure that this is correct, but neither our Suns, nor the Gould
- Xhad syslog.h in that directory. Also,
- X.I s_host ,
- Xhas been forced undefined if compiling on a Sun. This is because it is
- Xdefined in one of the Sun's include files as well.
- X.JB srvrsmtp.c
- XThe
- X.B $s
- Xmacro was set to be the name of the remote host, but then cleared before
- Xit could be used. It is now being set
- X.I after
- Xthe relevant cleanup routines have been run. An unnecessary additional
- Xrewriting of envelope recipient addresses in the
- X.UC SMTP
- Xroutines has been removed. It could even be harmful if it was to be
- Xleft alone.
- X.JB ../doc/op.me
- XAdded text to describe our new, wonderful features.
- X.AP C
- XCUSTOMIZATION PARAMETERS
- X.LP
- XThe following is a list of all
- X.I m4
- Xidentifiers used in the configuration file.
- XAll of them are optional.
- X.JS ALIASES
- XName of the aliases file, defaults to sendmail's default.
- X.JS BSD29
- X.br
- XActivates various hacks for usage on
- X.UC BSD
- X2.9 systems.
- X.JS BANGIMPLIESUUCP
- X.br
- XIf defined, will inhibit domaintable lookups for unqualified nodes first
- Xin
- X.SQ ! -paths
- Xand always interpreting them to reside in the
- X.UC UUCP
- Xpseudo-domain.
- X.JS DECNETNODES
- XA file containing
- X.UC DEC net
- Xhost names. Used in combination with
- X.UC DECNETXTABLE
- Xto determine delivery through the
- X.UC DEC net
- Xmailer and when to expand flatspaced
- X.UC DEC net
- Xhost names into domains.
- X.JS DECNETXTABLE
- XThe
- X.UC DEC net
- Xtranslation table. Returns a node's
- X.UC DEC net
- Xhost name if given its domain name.
- X.I Dbm "" (
- Xfile, see ruleset 24 for more info).
- X.JS DEFAULT_HOST
- XExplicit host name, replaces automatic definition of
- X.B $w .
- X[Not normally used]
- X.JS DEFAULT_DOMAIN
- XThe string that (+
- X.SQ "." )
- Xwill be attached to
- X.B $w
- Xto form
- X.B $j ,
- Xthis node's official domain name. Should only be left undefined when
- Xyour hostname (\fB$w\fP) already contains its domain.
- X.JS DOMAINTABLE
- X.I Dbm
- Xdatabase used for hostname canonicalization, i.e. to find the official
- Xdomain name for local or otherwise unqualified hosts.
- X.JS GENERICFROM
- XA database mapping actual user names to generic user names. Used
- Xinstead of
- X.UC HIDDENNET
- Xin a heterogeneous environment.
- X.JS HIDDENNET
- XPoints to a file containing a list of host names, one per line. Mail
- Xfrom users on any of these hosts will have their host names substituted
- Xfor our host,
- X.B $w .
- X.JS LIBDIR
- X.br
- XThe directory that will hold most data files, including
- Xsendmail.{hf,st}; defaults to /usr/lib/mail.
- X.JS PATHTABLE
- XThe heart & soul of this sendmail configuration\*-the pathalias routing
- Xtable in
- X.I dbm (3)
- Xformat, as produced by the
- X.I pathalias (1)
- Xprogram. If you want some kind of routing capabilities, you either
- Xdefine this or rely on
- X.UC RELAYHOST/RELAYMAILER .
- X.JS MAILERTABLE
- XA
- X.I dbm
- Xtable mapping node names to
- X.DQ "mailer:host"
- Xpairs. It is used for special cases when the resolving heuristics of
- Xruleset 26 aren't enough.
- X.JS NEWALIASES
- XIf defined, will make ruleset 26 return all addresses as local. This
- Xshould be used by the newaliases program only when parsing the aliases
- Xfile if you want to handle non-local aliases as well as local.
- X.JS PSEUDONYMS
- XAdditional names that we are known under (in addition to the nicknames
- Xreturned by
- X.I gethostbyname (3)).
- X.JS "RELAY_HOST & RELAY_MAILER"
- XName of the host and mailer to ship unknown recipient addresses to. Not
- Xnecessary to define if you have a complete
- X.UC PATHTABLE .
- X.JS RSH_SERVER
- XIf defined, do local deliveries by
- X.I rsh (1)'ing
- X/bin/mail on the
- X.UC RSH_SERVER
- Xhost.
- X.JS SPOOLDIR
- XDirectory for sendmail queue files; defaults to /usr/spool/mqueue.
- X.JS UUCPNAME
- XThis node's
- X.UC UUCP
- Xhost name, if different from
- X.B $w .
- X.JS UUCPNODES
- XA file containing names of directly connectable
- X.UC UUCP
- Xnodes, normally /usr/lib/uucp/L.sys.
- X.JS UUCPPRECEDENCE
- XIf defined, will change the interpretation of mixed
- X.SQ ! -
- X/
- X.SQ @ -addresses
- Xto use heuristics instead of always preferring
- X.UC RFC 822
- Xstyle.\**
- X.FS
- XNot fully tested.
- X.FE
- X.JS UUCPRELAYS
- XName of file containing names of known
- X.UC UUCP ) (
- Xrelays. Header addresses containing paths through any of these will be
- Xshortened by having the path to the relay removed. (It is assumed that
- Xpaths to each of these are known to everybody)
- X.JS UUCPXTABLE
- XA table mapping domain node names to
- X.UC UUCP
- Xnode names. Used in envelope addresses sent using
- X.UC UUCP /rmail.
- X.AP D
- XLIST OF DOMAINS
- X.LP
- XThe following is a list of all top-level domains officially registered
- Xwith the SRI Network Information Center as of May 13, 1987:
- X.QQ
- X.SH
- XOrganizational Domains
- X.LP
- X.TS
- Xbox;
- XlI lI
- Xlp-1 l .
- XDomain Organizations
- X_
- XCOM Commercial
- XEDU Educational
- XGOV Government
- XMIL Military
- XNET Network Administrations
- XORG Other Organizations
- X.TE
- X.SH
- XNational Domains
- X.LP
- X.TS
- Xbox;
- XlI lI
- Xlp-1 l .
- XDomain Country
- X_
- XAU Australia
- XDE Germany
- XFI Finland
- XFR France
- XIL Israel
- XJP Japan
- XKR Korea
- XNO Norway
- XNL The Netherlands
- XNZ New Zealand
- XSE Sweden
- XUK The United Kingdom
- XUS The United States of America
- X.TE
- X.SH
- XNetwork Domains
- X.LP
- X.TS
- Xbox;
- XlI lI
- Xlp-1 l .
- XDomain Network
- X_
- XARPA The Advanced Research Projects Agency Network
- X.TE
- Xwhich is the only officially registered network domain, but others more
- Xor less widely recognized are:
- X.TS
- Xbox;
- Xlp-1 l .
- XBITNET IBM Network, includes \s-1NETNORTH\s+1 and \s-1EARN\s+1
- XCSNET The Computer Science Network
- XJUNET The Japanese University Network
- XMAILNET A now deceased(?) networking project centered around \s-1MIT-MULTICS\s+1
- XOZ The Australian Computer Science Network (ACSnet)
- XSUNET The Swedish University Network
- XUNINETT The Norwegian University Network
- XUUCP The \s-1UNIX\s+1-to-\s-1UNIX\s+1-Copy Network
- X.TE
- X.AP F
- XLIST OF DATA FILES
- X.LP
- XThe following is a list of all data files used by the
- X.I sendmail
- Xprogram in conjunction with the supplied configuration file. Not all of
- Xthem are used in the sample setup. Not all of them will probably be
- Xneeded by your setup either.
- X.JB aliases
- X\&.\|.\|.is better described in
- X.I aliases (5).
- X.JB domaintable
- X\&.\|.\|.is domain name table used when finding a node's canonical name.
- XIt is written in
- X.I dbm (1)
- X.B parse
- Xformat.
- X.JB generics
- X\&.\|.\|.is automatically produced by the
- X.I xalparse (8)
- Xprogram from the xaliases file. It contains entries mapping sending
- Xuser's real addresses to generic ones.
- X.JB hiddennet
- X\&.\|.\|.may contain a list of node (domain) names that should be hidden
- Xby the local host's name on header sender addresses.
- X.JB mailertable
- X\&.\|.\|.defines the mapping from node (domain) names to
- X.I "Special Mailers" .
- XIt is written in
- X.I dbm (1)
- X.B parse
- Xformat, with each value being a
- X.DQ mailer:host
- Xtuple.
- X.JB newaliases.cf
- X\&.\|.\|.is a configuration file produced by having defined the
- X.UC NEWALIASES
- Xidentifier in the master file. This should only be used when producing
- Xa new
- X.I aliases (5)
- Xdbm table, because it returns all addresses to the
- X.UC LOCAL
- Xmailer in order to accept non-local aliases.
- X.JB pathtable
- X\&.\|.\|.is the basis for all explicit routing decisions. It is written
- Xin
- X.I pathalias (1)
- Xformat and describes how systems connect to each other and where to
- Xforward according to (parent) domains.
- X.JB xaliases
- X\&.\|.\|.is the extended aliases file that is used to produce the
- X.I aliases (5)
- Xfile together with the
- X.I generics
- Xfile. It is further described in the section about
- X.I "Managing Generic Mail Addresses" .
- X.JB \\\\\\\\k:\fInetwork\fB/nodes\\\\\\\\h'|\\\\\\\\n:u'\\\\\\\\v'+1'\fInetwork\fB/xtable\fR\\\\\\\\v'-1'
- X.\".JB \fInetwork\fB/nodes\fR
- X.\"\&.\|.\|.and.\|.\|.
- X.\".br
- X.\".ti -\n(I\n(IRu
- X.\".B \fInetwork\fB/xtable\fR\t\c
- X\&.\|.\|.are used when translating node names from one network to
- Xanother. The
- X.B nodes
- Xfile contain all internally known node names for the network and
- X.B xtable
- Xis a translation table that maps official domain names to the network's
- Xinternal node names.
- X.JB uucp/relays
- X\&.\|.\|.contains node names of well-known
- X.UC UUCP
- Xrelays. It is used when compressing header paths in the header
- Xrewriting rulesets.
- X.AP I
- XINSTALLATION INSTRUCTIONS
- X.LP
- XThese instructions will tell you step-by-step how to install and bring
- Xthe Kit's
- X.I sendmail
- Xsystem up. The source code modifications are given as context
- X.I diff (1)'s,
- Xbased on the
- X.UC BSD
- X4.3 release of
- X.I sendmail
- X(version 5.11), ready to be installed using Larry Wall's eminent
- X.I patch
- Xprogram. You will also need Maryland's
- X.I mdbm
- Xlibrary if you intend to use this instead of
- X.I ndbm .
- XFinally, in order to automatically produce routing tables, you will need
- XPeter Honeyman's
- X.I pathalias
- Xprogram. All of these are available from your nearest
- X.UC USENET
- X.B comp.sources.unix
- Xarchive.
- X.PP
- XNow, assuming that you have read this far and made up your mind to try
- Xit all for yourself, do the following:
- X.II 1
- XUnpack the Kit in the
- X.B sendmail
- Xdirectory (preferably). This should give you a new
- X.B ida
- Xsubdirectory with all the Kit's files.
- X.II
- XGoto
- X.B sendmail/ida
- Xand check that you agree with the Makefile's definitions. If you change
- Xanything, do a
- X.DQ "make configure"
- Xto propagate those changes to the subdirectories' Makefiles.
- X.II
- XGoto
- X.B sendmail/ida/doc .
- XDoing
- X.DQ "make doc"
- Xwill print out this paper but since you already are reading it, this
- Xmight be unneccesary. Anyway, do
- X.DQ "make man"
- Xto print the manual pages. Do
- X.DQ "make install"
- Xto install them in your manuals directory.
- X.II
- XGoto
- X.B sendmail/ida/patches
- Xand do
- X.DQ "make backup."
- XThis will create a backup copy of
- X.B sendmail/src/*.[hc]
- Xand
- X.B sendmail/doc/op.me
- Xin
- X.B Backup.tar .
- XYou can restore them if necessary by performing
- X.DQ "make restore,"
- Xstill in the patches directory.
- X.II
- XDo one of
- X.DQ "make bsd43,"
- X.DQ "make bsd42,"
- Xor
- X.DQ "make bsd29"
- Xto patch the
- X.I sendmail
- Xsource to the required compatibility level. You will need
- X.I patch (1),
- Xfor this or else edit the files by hand. Look out for rejected patches.
- X.II
- XGoto
- X.B sendmail/src
- Xand recompile
- X.I sendmail .
- XSee that it still works. Your old configuration file
- X.I should
- Xstill work unless you depend on some obscure side effects. Note that a
- X.UC BSD
- X4.2 configuration file might not work with
- X.I sendmail
- X5.11.
- X.II
- XGoto
- X.B sendmail/ida/aux
- Xand do
- X.DQ "make"
- Xto compile the auxiliary programs. Try them out, guided with the newly
- Xprinted manual pages.
- X.II
- XDo
- X.DQ "make install"
- Xto install the programs in
- X.UC BINDIR
- X(\fB/usr/local/bin\fP by default; but another choice would be
- X.B /usr/lib/mail
- Xif you only intend to use them with this kit). It's also about time to
- X(manually) do a (symbolic) link from
- X.B /usr/ucb/bsmtp
- Xto
- X.B /usr/lib/sendmail
- Xif you intend to receive batched
- X.UC SMTP
- Xmail.
- X.II
- XGoto
- X.B sendmail/ida/cf
- Xand inspect the supplied
- X.I m4 (1)
- Xconfiguration definitions. Send
- X.B Sendmail.mc
- Xto your line printer and study it. Do
- X.DQ "make"
- Xto see how the sample configurations look expanded.
- X.II
- XGoto
- X.B sendmail/ida/lib
- Xand inspect the supplied sample data files. Try applying the
- X.I xalparse
- Xprogram on the
- X.I xaliases
- Xfile if you feel like it.
- X.II
- XDetermine your site's routing capabilities and create your corresponding
- Xdata files in
- X.UC LIBDIR .
- XGo back to
- X.B sendmail/ida/cf
- Xand create your own
- X.I m4 (1)
- Xconfiguration file using the samples as templates. Produce an actual,
- Xpersonal
- X.B sendmail.cf
- Xfile.
- X.II
- XTry out your new
- X.I sendmail
- Xsystem.
- X.br
- XGood Luck!
- X.FS [\\n+(II]
- XMail problems or comments to lel@ida.liu.se.
- X.FE
- X.AP P
- XLIST OF AUXILIARY PROGRAMS
- X.LP
- XAll programs but
- X.I scanf
- Xare further described by their manual pages. What you find here is only
- Xa short overview of their functionality.
- X.JB dbm
- XA general
- X.I dbm (3)
- Xdatabase management tool. Clears, loads, and dumps complete databases.
- XStores, fetches, and deletes individual keys. Also includes a special
- Xparser that produces key/value pairs from a compressed but easily
- Xreadable format.
- X.JB mkdomext
- XMake the extended set of domain names. This program acts as a filter
- Xthat, when supplied with fully qualified domain names on stdin, will
- Xgenerate all legal abbreviations of these on stdout with respect to the
- Xparent domains given on the command line. It is used to be able to
- Xrecognize unqualified local subdomains and sibling domains from one or
- Xmore positions in the domain hierarchy. See
- X.UC RFC 822,
- Xsection 6.2.2 for a rationale.
- X.JB rmail
- XYet another implementation of the remote mail receiving program. This
- Xtime with raw header line logging together with
- X.I dbm
- Xlookup of remote node names and a more liberal parsing of
- X.DQ "From_"
- Xlines. Needs to run
- X.DQ "seteuid root"
- Xto be able to use the macro setting options of
- X.I sendmail .
- XNo new manual supplied, your old one will have to do. Actually, your
- Xold rmail itself will probably do too.
- X.JB scanf
- XQuick hack to scan and extract substrings from input lines using the
- X.I scanf (3)
- Xfunction. No manual page, the source code is self documenting.
- X.JB xalparse
- XA program that parses an extended aliases file and produceces an ordinary
- Xaliases file together with a file with generic address translations.
- XIt's all described in the manual page and in the section about
- X.I "Managing Generic Mail Addresses" .
- XQuod vide.
- X.AP R
- XREFERENCES
- X.LP
- X.[
- X$LIST$
- X.]
- X.AP T
- XTABLE OF CONTENTS
- X.SH
- XSections
- X.LP
- X.X1 "\(sc 1" "INTRODUCTION"
- X.X1 "\(sc 2" "NAMES, ADDRESSES, AND ROUTES"
- X.X1 "\(sc 3" "MAIL ADDRESS FORMATS"
- X.X2 "\(sc 3.1" "Relative Addresses"
- X.X2 "\(sc 3.2" "Absolute Addresses"
- X.X2 "\(sc 3.3" "Attribute Addresses"
- X.X2 "\(sc 3.4" "Hybrid Addresses"
- X.X1 "\(sc 4" "A SHORT ANATOMY OF THE ELECTRONIC MESSAGE"
- X.X2 "\(sc 4.1" "The Envelope"
- X.X2 "\(sc 4.2" "The Headers"
- X.X1 "\(sc 5" "ADDRESS REWRITING STRATEGIES"
- X.X2 "\(sc 5.1" "Sneak-In Preview"
- X.X2 "\(sc 5.2" "The Configuration File"
- X.X2 "\(sc 5.3" "Canonicalizing the Address"
- X.X2 "\(sc 5.4" "Finding Route and Mailer"
- X.X2 "\(sc 5.5" "Externalizing the Address"
- X.X1 "\(sc 6" "MANAGING GENERIC MAIL ADDRESSES"
- X.X1 "\(sc 7" "SENDMAIL SOURCE MODIFICATIONS"
- X.X2 "\(sc 7.1" "Nameserver Default Argument"
- X.X2 "\(sc 7.2" "Direct Access to Dbm(3) Files"
- X.X2 "\(sc 7.3" "Batched \s-1SMTP\s+1 Support"
- X.X2 "\(sc 7.4" "Separate Envelope/Header Rewriting Rulesets"
- X.X2 "\(sc 7.5" "Separate Local \s-1UUCP\s+1 Host Name"
- X.X2 "\(sc 7.6" "Return Path for \s-1UUCP\s+1 Mailers"
- X.X2 "\(sc 7.7" "\s-1UUCP\s+1 Header Address Relativization"
- X.X2 "\(sc 7.8" "Support for Multi-Token Matches"
- X.X2 "\(sc 7.9" "Support for Embedded Subruleset Calls"
- X.X2 "\(sc 7.10" "Elaborate Matching Algorithm for Unknown Local Recipients"
- X.X2 "\(sc 7.11" "Support for Maryland's Mdbm Package"
- X.X2 "\(sc 7.12" "Improved Test Mode Output"
- X.X2 "\(sc 7.13" "Better To: and Cc: Headers of Returned Messages"
- X.X2 "\(sc 7.14" "Queue Bug Fixed"
- X.X2 "\(sc 7.15" "Shared Input \s-1SMTP\s+1 Bug Tentatively Fixed"
- X.X2 "\(sc 7.16" "Optional \s-1BSD\s+1 2.9 and 4.2 Compatibility Code"
- X.X2 "\(sc 7.17" "Miscellaneous Changes"
- X.X1 "\(sc 8" "CONCLUSION"
- X.SH
- XAppendices
- X.LP
- X.X1 "Appendix A" "LIST OF AFFECTED FILES" "Appendix M"
- X.X1 "Appendix C" "CUSTOMIZATION PARAMETERS" "Appendix M"
- X.X1 "Appendix D" "LIST OF DOMAIN NAMES" "Appendix M"
- X.X1 "Appendix F" "LIST OF DATA FILES" "Appendix M"
- X.X1 "Appendix I" "INSTALLATION INSTRUCTIONS" "Appendix M"
- X.X1 "Appendix P" "LIST OF AUXILIARY PROGRAMS" "Appendix M"
- X.X1 "Appendix R" "REFERENCES" "Appendix M"
- X.X1 "Appendix T" "TABLE OF CONTENTS" "Appendix M"
- END_OF_ida/doc/part2.ms
- if test 43054 -ne `wc -c <ida/doc/part2.ms`; then
- echo shar: \"ida/doc/part2.ms\" unpacked with wrong size!
- fi
- # end of overwriting check
- fi
- echo shar: End of archive 7 \(of 8\).
- cp /dev/null ark7isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 8 archives.
- echo "See ida/README and ida/INSTALL for further directions."
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-
-