[comp.mail.sendmail] help with sendmail/smail2.5

miorelli@pwa-b.uucp (BoB Miorelli) (07/14/90)

I have a problem with sendmail 5.61 (4.3BSD-tahoe, VAX785) and smail2.5.
Most times everything works well, but I cannot send mail to several
addresses on my local ethernet.  Instead of sending mail via "ether",
sendmail is using "uux".  Of course, this fails with "unknown host".
There seems to be no difference with local machine addresses that
work and those that don't.  A particularly puzzling case is:

191.29.70.9  ws709 suntest     # a line from /etc/hosts

Mail to ws709 fails with mail attempted over uux, mail to suntest works
correctly over the ethernet!!   
I might add that all of our workstation node names are od the form wsXXXX
where XXXX is a 3- or 4-digit number.

running sendmail -bt and ruleset 0 shows the problem, but for the life
of me I can't figure out why.  Any help would be greatly appreciated.

Thanks
-- 

-->BoB Miorelli, Pratt & Whitney Aircraft
           also, H & R Block tax preparer and Instructor
pwa-b!miorelli

bruce@balilly.uucp (Bruce Lilly) (07/22/90)

In article <1990Jul13.195152.23956@pwa-b.uucp> miorelli@pwa-b.uucp (BoB Miorelli) writes:
>
>I have a problem with sendmail 5.61 (4.3BSD-tahoe, VAX785) and smail2.5.
>Most times everything works well, but I cannot send mail to several
>addresses on my local ethernet.  Instead of sending mail via "ether",
>sendmail is using "uux".  Of course, this fails with "unknown host".
>There seems to be no difference with local machine addresses that
>work and those that don't.  A particularly puzzling case is:
>
>191.29.70.9  ws709 suntest     # a line from /etc/hosts
>
Given the relative costs of connections over Ethernet(tm) and uucp, make
sure you are picking out the ether hosts early in ruleset 0 (before the
uux connections).  Since you're able to connect to suntest, it appears
that your sendmail.cf does identify some ether hosts, but there are
several possibilities:
1) suntest might be hard-wired into sendmail.cf as a special case
2) if you're reading /etc/hosts rather than using some kind of nameserver,
   there might be some problem with how /etc/hosts is being read (make
   sure the mode permits reading by all).
3) smail may be rewriting incoming addresses (via a link to rmail) to
   bang paths, which may then be interpreted as uucp connections in your
   sendmail.cf.  If this is the problem, ignore the rest of this posting.
   (I no longer use smail -- I've hacked path lookup into sendmail
   itself)

I've defined a class for ether hosts, which is then picked off early.
I've compressed multiple tabs to a single tab in the following excerpts
from my sendmail.cf.  Note that the F lines assume that sendmail was
compiled with the SCANF (FSCANF?) #define:

# [ ... ]
# Preemptive ether connections.  We prefer these connections 
# over both designated transport mechanisms and the general depository.
# skip comments and accept multiple entries per line;
# last class is space through tilde plus tab
FE/etc/hosts %[^#]%*[ -~	]

# Known (mapped) uucp hosts
# skip comments -- first class excludes '#', space, tab
# second class is space through tilde plus tab
FU/usr/lib/uucp/Systems %[^# 	]%*[ -~	]

# Mock top-level domain names.  These names designate a transport mechanism
# and appear internally only, set in S3, used in S0, and removed in S4 and
# (possibly) the ruleset for the particular mailer.  

CTETHER UUCP

# [ ... ]
S0

# [ ... ]
###############################################
#    Machine dependent part of ruleset zero   #
###############################################

# Preemption: for a host on a known link turn the domain spec into a
# mock domain indicating the link.  One set of these rules for each of 
# the F classes listed in the local configuration options.

R$*<$*$=E.$D>$*	$:$1<$2$3.ETHER>$5	etherhost.mydomain
R$*<$*$=E.$=D>$*	$:$1<$2$3.ETHER>$5	etherhost.anydomain
R$*<$*$=E.$=T>$*	$:$1<$2$3.ETHER>$5	etherhost.mock-domain
R$*<$*$=E>$*	$:$1<$2$3.ETHER>$4	etherhost

R$*<$*$=U.$D>$*	$:$1<$2$3.UUCP>$5	uucphost.mydomain
R$*<$*$=U.$=D>$*	$:$1<$2$3.UUCP>$5	uucphost.anydomain
R$*<$*$=U.$=T>$*	$:$1<$2$3.UUCP>$5	uucphost.mock-domain
R$*<$*$=U>$*	$:$1<$2$3.UUCP>$4	uucphost

# Designated delivery: use the indicated transport mechanism.  One of
# these rules for each of the mock domains defined in $=T.  You can
# remove these if you just want general disposition.  HINTS.

# Designated delivery:
R$*<@$=E.ETHER>$*	$#ether$@$2$:$1$3	known etherhost
R$*<@$=U.UUCP>$*	$#uux$@$2$:$1$3	known uucphost

# [ ... ]


You'll probably need to adjust to fit your local conditions, but I think
that's enough to give you the general idea.
--
	Bruce Lilly		uunet!vmp!sonyd1!blilly!balilly!bruce