Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!cornell!parmelee
From: parmelee@wayback.cs.cornell.edu (Larry Parmelee)
Newsgroups: comp.mail.sendmail
Subject: Re: Some basic questions on sendmail
Message-ID: <32438@cornell.UUCP>
Date: 25 Sep 89 12:33:57 GMT
References: <444@excelan.COM>
Sender: nobody@cornell.UUCP
Reply-To: parmelee@wayback.cs.cornell.edu (Larry Parmelee)
Organization: Cornell Univ. CS Dept, Ithaca NY
Lines: 76

In article <444@excelan.COM> tran@excelan.COM (Tony Tran) writes:
>  Q1:  what are the rule sets used to resolve:

Attached below is a cheat sheet I created for myself a while back,
explaining the various tranformations performed by the rulesets.
 
>  Q2:  This host used to be named excelan. It is now "xlnvax.excelan.com"
> 	  (Fully qualified domain) with hostname being "xlnvax".
 
> 	  Question: Is there any way I can make my gateway host to append
> 	  "excelan" instead of "xlnvax" (as returned by gethostname) to

Yes, it's possible.  I would have the per-mailer rulesets associated
with the UUCP mailer do the transformation:  Pull off the internet
form of the name and replace it with your uucp name.

-Larry Parmelee
parmelee@cs.cornell.edu		cornell!parmelee


Sendmail Ruleset Re-Writing overview	16-Mar-89

EF -> 3,0,2,r,4 -> (Save "@domains" for ruleset "D".)
EF -> 3,1,4 -> ($f) -> 3,D,1,S,4 -> ($g) -> New EF

ET -> 3,0,2,R,4 -> A/F -> SMTP delivery ? Yes: -> 3,D,2,R,4 -> New ET
 ^                  v                      No: -> New ET
 +--- <------ <-----+

MF -> 3,D,1,S,4 -> New MF
MT -> 3,D,2,R,4 -> New MT

A/F == Aliasing and .forward file processing for Local addresses
($?) == Definition of $? macro.

EF == Envelope "From:" address
ET == Envelope "To:" address
MF == Message From-type addresses
MT == Message To-type addresses

R == Mailer (determined per ET) "Recipient" ruleset
r == Mailer (determined from EF) "Recipient" ruleset
S == Mailer (determined per ET) "Sender" ruleset
D == Application of "@Domains" saved from the EF, if EF mailer flag 'C'
     is given and the address doesn't already have @domains applied.

Message headers associated with From-type addresses:
	Errors-To:	Resent-From:		Return-Receipt-To:
        From:		Resent-Reply-To:	Sender:
	Reply-To:	Resent-Sender:

Message headers associated with To-type addresses:
	To:		Cc:		Bcc:
	Resent-To:	Resent-Cc:	Resent-Bcc:

Approximate High-level sendmail ruleset processing algorithm:
The actual process is a bit more complicated;  Showing that here
would only confuse things...
 1.) Process EF for "@domains" and upto ($f).
 2.) Process all ETs upto the A/F point (including additional ETs
     resulting from the A/F processing of the local addresses)
     producing a list of ET address 3-tuples; (mailer, host, user).
 3.) Foreach ET address 3-tuple:
      a.) Define $h and $u macros:  host -> ($h), user ->($u)
      b.) Finish EF processing from $f yielding New EF for this ET.
      c.) Finish ET processing for this tuple yielding New ET.
      d.) Connect to mailer.
      e.) Do MF/MT processing as the message is written to the mailer.

Notes:
 1.) After ruleset 0 processing, only the "user" part is passed on
     to the other rulesets for further re-writing.
 2.) It is often useful to think of a "mailer" as the network or transport
     mechanism being chosen for the next hop the message will take.

-LCParmelee  16-Mar-89 sendmail:5.61