Path: utzoo!attcan!uunet!philmtl!atha!lyndon From: lyndon@cs.AthabascaU.CA (Lyndon Nerenberg) Newsgroups: comp.mail.uucp Subject: Re: local addresses with smail 2.5 Message-ID: <1254@atha.AthabascaU.CA> Date: 19 Nov 89 23:17:36 GMT References: <83800001@sts> <83800003@sts> Organization: Athabasca University Lines: 117 >Actually, what I want is for smail to hand anything local over to >sendmail (which, in our case, will look in /etc/hosts to deliver the >mail to the correct place over Ethernet). I think we're getting our wires crossed here. Smail2.5 replaces /bin/rmail in most cases, and can run in conjunction with things like sendmail. Its main purpose in life is to deal with UUCP network routing. Smail3 *replaces* sendmail on BSD machines, and provides sendmail functionality on System V machines (regardless of whether or not you have BSD style networking). > As I mentioned before, it >will recognize 'user@sts.COM' as being local, but it will not >recognize 'user@workstation.sts.COM' as being anything (local or >otherwise). Anything addressed this way to smail will be 'returned to >sender, address unknown'. Actually, shouldn't smail recognize >'anything.sts.COM' as being local and hand it over to sendmail? This depends on your definition of "local." We have machines in our domain that are 350 miles from "here." They are local in the sense that they are part of our domain and route through one of the gateways, but they're not local in the sense that delivery is handled by a long distance UUCP call. >Of >course, I'm assuming there aren't any lines of the form >'wish.sts.COM = actual' ... Since smail 2.5 apparently needs the type >of lines above, is smail3 smart enough to know that >'user@something.sts.COM' is a local address? Smail3 seperates the "router" from the transport. You can have it run an address through a series of "routers" and pick the "best" resulting transport for the actual deivery. You can also specify that that a given address always route over a vertain transport, even though there might be a "better" transport returned another router. Explaining the flexibility of smail3 would involve re- writing the smail3 configuration documentation. Rather than do that, I'll e-mail a copy to anyone who is interested in reading it. To give you an idea of how the smail3 routing decisions can be made, I'm appending an annotated copy of the 'routers' file that runs on aurora.AthabascaU.CA (aka atha.uucp). This is our primary network gateway, and "knows" about every machine in (our view of) the known universe :-) # @(#)routers 1.3 7/8/88 00:45:03 # This file defines the configuration of the router subsystem as # compiled into the smail binary. By modifying the source files # conf/EDITME, src/config.h or src/default.c the actual internal # configuration can be changed. Thus, this should be matched up # against thes files before assuming this is completely correct. # inet_paths - This forces explicit routing over the ethernet. # It overrides inet_addrs (needed because augeas has a broken SMTP # and polls auvax via uucp for mail). inet_paths: driver = pathalias, # general-use paths router always, # Override any other routes. transport = smtp; file = /usr/local/smail/inet_paths, proto = lsearch, # use a linear search optional, # Don't complain if file doesn't exist domain = athabascau.ca # Implicit domain # uucp_paths - Same idea as inet_paths, but used to override routes # generated from the maps where we have a preferred internal connection. uucp_paths: driver = pathalias, always, # Override any other routes. transport = uux; file = /usr/local/smail/uucp_paths, proto = lsearch, optional, domain = uucp # inet_addrs - match domain literals containing literal IP addresses # # For example, [128.103.1.1] will match harvard.harvard.edu on the internet. # The library routine gethostbyaddr(3N) will be called to see if a reverse # mapping to the cononical hostname is available. inet_addrs: driver = gethostbyaddr, # router to match IP domain literals transport = smtp; # deliver using SMTP over TCP/IP fail_if_error, # fail malformed domain literal addrs check_for_local # see if this is really the local host # inet_hosts - match hostnames with gethostbyname(3N) inet_hosts: driver = gethostbyname, # match hosts with the library function transport = smtp; domain = athabascau.ca # Implicit domain for simple hostnames # paths - route using a paths file. This file is generated automatically # from the comp.mail.maps postings. paths: driver = pathalias, # general-use paths router method = paths; # for matches, deliver over UUCP file = /private/usr/lib/paths, # file containing path info proto = bsearch, # binary search (data sorted) optional, # ignore if the file does not exist domain = uucp # Implicit domain -- Lyndon Nerenberg VE6BBM / Computing Services / Athabasca University {alberta,decwrl,lsuc}!atha!lyndon || lyndon@cs.AthabascaU.CA The Connector is the Notwork.