From: rhoward@matd.gatech.edu (Robert L. Howard)
Newsgroups: comp.mail.sendmail
Subject: IDA: hostnames vs. MX records
Summary: Why aren't MX record names fully expanded?
Date: 11 Sep 92 14:30:16 GMT
Organization: Georgia Tech Research Institute


All right, I really like this IDA sendmail stuff.  The reason I like
it is that I don't know that much about sendmail and cf files.  I 
have a small problem with my configuration (and therefore I can't
figure this out myself).

Our campus uses MX records a bunch.  Doing address testing reveals
that sendmail treats MX records somewhat differently than A records.
'casbah' is a host on campus (the MX record 'gtri' points to casbah).

Sending mail to either 'foobar@casbah.gatech.edu' or 'foobar@casbah'
works just fine.  It looks like ruleset 8 figures out to tack .gatech.edu
to the end of a single hostname.

Sending to 'foobar@gtri.gatech.edu' works too.  It's 'foobar@gtri' that
fails.  In this case no ruleset (including 8) tries to attach a
'.gatech.edu' to the end.  Thus, sendmail just punts to the campus
central mail server (which happens to be gatech.edu).  The typescript
of the 4 example addresses are attached followed by my M4 file.

Is this a problem with my M4 file, the master cf file or has some-
one set up the campus name server incorrectly?  Any help is appreciated.
(I *know* many people will just type addresses of the form foo@gtri
when sending mail and I just can't see making all that mail get
punted unnecessarily).

Thanks,
Robert

PS  Also, 'foobar@anything.gatech' punts to the central server.  Is
    there a way to make this work too (get sendmail to figure out
    how to add the .edu)?

-------------------------------------------------------------------------
Script started on Fri Sep 11 10:08:17 1992
% /usr/lib/sendmail -bt
ADDRESS TEST MODE
Enter <ruleset> <address>
[Note: No initial ruleset 3 call]
> 3,0 foobar@casbah.gatech.edu
rewrite: ruleset  3   input: foobar @ casbah . gatech . edu
rewrite: ruleset  7   input: foobar @ casbah . gatech . edu
rewrite: ruleset  9   input: foobar @ casbah . gatech . edu
rewrite: ruleset  9 returns: < foobar > @ casbah . gatech . edu
rewrite: ruleset  7 returns: < @ casbah . gatech . edu > , foobar
rewrite: ruleset  3 returns: < @ casbah . gatech . edu > , foobar
rewrite: ruleset  0   input: < @ casbah . gatech . edu > , foobar
rewrite: ruleset  8   input: < @ casbah . gatech . edu > , foobar
rewrite: ruleset  8 returns: < @ casbah . gatech . edu > , foobar
rewrite: ruleset 29   input: < @ casbah . gatech . edu > , foobar
rewrite: ruleset 29 returns: < @ casbah . gatech . edu > , foobar
rewrite: ruleset 26   input: < @ casbah . gatech . edu > , foobar
rewrite: ruleset 25   input: < @ casbah . gatech . edu > , foobar
rewrite: ruleset 25 returns: < @ casbah . gatech . edu > , foobar
rewrite: ruleset  4   input: < @ casbah . gatech . edu > , foobar
rewrite: ruleset  4 returns: foobar @ casbah . gatech . edu
rewrite: ruleset 26 returns: $# TCP $@ casbah . gatech . edu $: < @ casbah . gatech . edu > , foobar
rewrite: ruleset  0 returns: $# TCP $@ casbah . gatech . edu $: < @ casbah . gatech . edu > , foobar
> 3,0 foobar@casbah
rewrite: ruleset  3   input: foobar @ casbah
rewrite: ruleset  7   input: foobar @ casbah
rewrite: ruleset  9   input: foobar @ casbah
rewrite: ruleset  9 returns: < foobar > @ casbah
rewrite: ruleset  7 returns: < @ casbah > , foobar
rewrite: ruleset  3 returns: < @ casbah > , foobar
rewrite: ruleset  0   input: < @ casbah > , foobar
rewrite: ruleset  8   input: < @ casbah > , foobar
rewrite: ruleset  8 returns: < @ casbah . gatech . edu > , foobar
rewrite: ruleset 29   input: < @ casbah . gatech . edu > , foobar
rewrite: ruleset 29 returns: < @ casbah . gatech . edu > , foobar
rewrite: ruleset 26   input: < @ casbah . gatech . edu > , foobar
rewrite: ruleset 25   input: < @ casbah . gatech . edu > , foobar
rewrite: ruleset 25 returns: < @ casbah . gatech . edu > , foobar
rewrite: ruleset  4   input: < @ casbah . gatech . edu > , foobar
rewrite: ruleset  4 returns: foobar @ casbah . gatech . edu
rewrite: ruleset 26 returns: $# TCP $@ casbah . gatech . edu $: < @ casbah . gatech . edu > , foobar
rewrite: ruleset  0 returns: $# TCP $@ casbah . gatech . edu $: < @ casbah . gatech . edu > , foobar
> 3,0 foobar@gtri.gatech.edu
rewrite: ruleset  3   input: foobar @ gtri . gatech . edu
rewrite: ruleset  7   input: foobar @ gtri . gatech . edu
rewrite: ruleset  9   input: foobar @ gtri . gatech . edu
rewrite: ruleset  9 returns: < foobar > @ gtri . gatech . edu
rewrite: ruleset  7 returns: < @ gtri . gatech . edu > , foobar
rewrite: ruleset  3 returns: < @ gtri . gatech . edu > , foobar
rewrite: ruleset  0   input: < @ gtri . gatech . edu > , foobar
rewrite: ruleset  8   input: < @ gtri . gatech . edu > , foobar
rewrite: ruleset  8 returns: < @ gtri . gatech . edu > , foobar
rewrite: ruleset 29   input: < @ gtri . gatech . edu > , foobar
rewrite: ruleset 29 returns: < @ gtri . gatech . edu > , foobar
rewrite: ruleset 26   input: < @ gtri . gatech . edu > , foobar
rewrite: ruleset 25   input: < @ gtri . gatech . edu > , foobar
rewrite: ruleset 25 returns: < @ gtri . gatech . edu > , foobar
rewrite: ruleset  4   input: < @ gtri . gatech . edu > , foobar
rewrite: ruleset  4 returns: foobar @ gtri . gatech . edu
rewrite: ruleset 26 returns: $# TCP $@ gtri . gatech . edu $: < @ gtri . gatech . edu > , foobar
rewrite: ruleset  0 returns: $# TCP $@ gtri . gatech . edu $: < @ gtri . gatech . edu > , foobar
> 3,0 foobar@gtri
rewrite: ruleset  3   input: foobar @ gtri
rewrite: ruleset  7   input: foobar @ gtri
rewrite: ruleset  9   input: foobar @ gtri
rewrite: ruleset  9 returns: < foobar > @ gtri
rewrite: ruleset  7 returns: < @ gtri > , foobar
rewrite: ruleset  3 returns: < @ gtri > , foobar
rewrite: ruleset  0   input: < @ gtri > , foobar
rewrite: ruleset  8   input: < @ gtri > , foobar
rewrite: ruleset  8 returns: < @ gtri > , foobar
rewrite: ruleset 29   input: < @ gtri > , foobar
rewrite: ruleset 29 returns: < @ gtri > , foobar
rewrite: ruleset 26   input: < @ gtri > , foobar
rewrite: ruleset 25   input: < @ gtri > , foobar
rewrite: ruleset 25 returns: < @ gtri > , foobar
rewrite: ruleset  4   input: < @ gtri > , foobar
rewrite: ruleset  4 returns: foobar @ gtri
rewrite: ruleset 26 returns: < @ gtri > , foobar
rewrite: ruleset  0 returns: $# TCP $@ gatech . edu $: < @ gtri > , foobar
> 
script done on Fri Sep 11 10:09:58 1992

-----------------------------------------------------------------------------

# Sendmail configuration file for MATD client hosts.
define(ALIASES, LIBDIR/aliases)
define(ALWAYSADDDOMAIN)
define(BANGIMPLIESUUCP)
define(GENERICFROM, LIBDIR/generics)
define(GENERICENVELOPE)
define(MAILNAME, matd.gatech.edu)
define(MAILSERVER, willie.msd.gatech.edu)
define(POSTMASTERBOUNCE)
define(PSEUDONYMS, matd.gatech.edu msd.gatech.edu localhost.msd.gatech.edu localhost.gatech.edu)
define(ISOLATED_DOMAINS, gatech.edu)
define(RELAY_HOST, gatech.edu)
define(RELAY_MAILER, TCP)
define(SPOOLDIR, /var/spool/mqueue)
include(Sendmail.mc)

-----------------------------------------------------------------------------
--
| Robert L. Howard              |   Georgia Tech Research Institute     |
| robert.howard@matd.gatech.edu |   MATD Laboratory                     |
| (404) 528-7165                |   Atlanta, Georgia  30332             |
-------------------------------------------------------------------------
| "See, when the GOVERNMENT spends money, it creates jobs; whereas when |
| the money is left in the hands of TAXPAYERS, God only knows what they |
| do with it.  Bake it into pies, probably.  Anything to avoid creating |
| jobs." -- Dave Barry                                                  |
Newsgroups: comp.mail.sendmail