Collected responses to my sendmail.cf query (PI email problem)

Willie Lim wlim at gdstech
Fri May 25 22:36:44 AEST 1990


>From scotth%harlie.corp at sgi.com Fri May 25 08:33:59 1990
Return-Path: <@eddie.mit.edu:scotth%harlie.corp at sgi.com>
To: wlim at ai.mit.edu (William Y-P. Lim)
Subject: Re: sendmail.cf 
In-Reply-To: Your message of Wed, 02 May 90 12:17:16 -0400.
             <9005021617.AA05568 at rice-chex> 
Date: Thu, 03 May 90 08:58:32 PDT
>From: scotth%harlie.corp at sgi.com


> Hi, do you know who I should contact regarding the following problem?

> I have been trying to get our Personal Iris (no NFS) to send and
> receive mail from other ethernet hosts.  I played around with
> sendmail.cf and could only get it send mail out.  It couldn't receive
> mail.  Also if I don't change DDFOO.COM to DDLOCAL (and enabling a
> rule for parsing hostnames with no "."), sendmail seems to go into an
> infinite loop (looping between rules 29, 3, and 0) when I try to get
> it to parse an address of the form user at hostname.

> Any suggestions?

> Willie

I talked to watson at sgi.com (who knows a lot more about this than I do, I'm
just starting to learn it), and he said:


% There's no easy answer to this query.  Editing sendmail.cf requires quite
% a crash course in the way sendmail works.  There is sparse documentation
% with sendmail; it's barely sufficient but a good place to start.

% How this person should change his .cf file depends upon a zillion
% features of his environment, and will take quite a while to figure out
% even for someone knowledgeable about sendmail.

% Sorry I can't do better, but .cf hacking, although not difficult in
% principle, is heavily site-dependent and requires some study in advance.

% 			-D.

Sorry, I don't know anything better to tell you.

-- scott







>From loki at physics.mcgill.ca Fri May 25 08:34:06 1990
Return-Path: <loki at frodo.physics.mcgill.ca>
Date: Tue, 15 May 90 09:53:18 EDT
>From: Loki Jorgenson Rm421 <loki at physics.mcgill.ca>
To: wlim at ai.mit.edu
Subject: Re:  Messing around with sendmail.cf

	This sounds familiar.  Could it be that when you watch the mail to 
the IRIS from another machine using -v option on mail (BSD mail), you see it
being rejected because the IRIS doesn't recognize its own address?

	If this sounds similar, write back.  We had a SUN cluster with one
3/180 acting as central mailhost and all of the client 3/50's set up to
send mail they don't recognize to it.  When we included our IRIS in this
setup, it kept sending mail for itself back to the mailhost because it
didn't recognize its own name in the address.  We hacked the sendmail.cf
to force recognition.  This worked although it wasn't very professional.
I'll give you details if this sounds like your situation.

Regards,

Loki Jorgenson			node:  loki at physics.mcgill.ca
Physics, McGill University	fax:   (514) 398-3733
Montreal Quebec CANADA		phone: (514) 398-6531

  <....  Free the mind and the police will surely follow  ....>



>From rose at baby.swmed.utexas.edu Fri May 25 08:34:10 1990
Return-Path: <rose at baby.swmed.utexas.edu>
Date: Tue, 15 May 90 09:25:43 CDT
>From: rose at baby.swmed.utexas.edu (Rose Oguz)
To: wlim at ai.mit.edu
Subject: Re:  Messing around with sendmail.cf

I spent about 2 months trying to get e-mail working on my Personal Iris.
Let me see if I understand the problem correctly.  You can send mail out, 
but you can't receive it.  I had the same problem.  The last stage of my
problem was that I could only receive mail from on campus.  The real world
couldn't reach me.  I tried a number of things and what worked follows:

	In /etc/init.d/network, add the following line after "routed" is
	started

		/usr/etc/route add default <smart-gateway> 1

	where <smart-gateway> is a smart gateway that will provide routing.

I got the information out of the TCP/IP User's Guide, version 2.1 (document
#007-0830-021) on p. 4-10.  I originally implemented this to make sure that
I'd get access out of my machine, but it cleared up my e-mail problem, too.
I called the SGI hotline and didn't get an explanation.  It seems that my
PI didn't know who it was, in a sense.  In any case, give it a try.  If it
doesn't work, let me know.  I had to do a few other things before even
getting to this point; so, I may be able to give you other useful
information.  Good luck!

						Rose Oguz
						rose at baby.swmed.utexas.edu




>From loki at physics.mcgill.ca Fri May 25 08:34:13 1990
Return-Path: <loki at frodo.physics.mcgill.ca>
Date: Tue, 15 May 90 11:39:12 EDT
>From: Loki Jorgenson Rm421 <loki at physics.mcgill.ca>
To: wlim at ai.mit.edu
Subject: Re:  Messing around with sendmail.cf

	Hey ho again.

	OK... I have included the slightly hacked version of sendmail.cf
which I use on smaug (the IRIS).  Needless to say, this version of sendmail.cf
is *highly* dependent on having a clearinghouse mailhost for non-local
mail to be passed to.

	The only important features are commented in the following.  One is the
definition of a $S, a variable containing the name the IRIS has in /etc/sys_id,
and the line in RuleSet 0 where $S is stripped out of the address.  I am not
at all sure whether this will be relevant to your situation or not.

Good luck,

Loki Jorgenson			node:  loki at physics.mcgill.ca
Physics, McGill University	fax:   (514) 398-3733
Montreal Quebec CANADA		phone: (514) 398-6531


#	McGill Generic Sendmail Configuration (Client)
#
# This is to be installed on each client in a domain,
# and is as machine independent as possible.  Configuration
# information is mostly definedly automatically by sendmail.
# Each client passes mail that is not recognized as local
# to the clearinghost (called mailhost.this.domain).
#
# It is based on a more-or-less generic IDA sendmail binary,
# with the exception of the $m macro being set to the name of
# the domain (as is done in SunOS 4.0 sendmail).
#
# An important point about this mailer: it only talks to the
# local clearing house, and has no idea whatsoever about
# external mail formats.  Therefore, the clients never rewrite
# addresses; that is best left to the clearinghouse.

# version (client)
DVIDA-1.1C

# my official hostname
Dj$w
# hack local name problem (L.Jorgenson 12/4/90)
DSsmaug

# add the hostname to the list
Cw$k

# major relay host
DGmailhost

##########################
###   Special macros   ###
##########################

# my name
DnMAILER-DAEMON
.
.
etc
.
.
#####################################################
#                                                   #
#         Ruleset 0, where things get done!         #
#                                                   #
#  (Not nearly as hairy as your average ruleset 0,  #
#   since we only handle identifyable local         #
#   addresses--anything remotely suspicious goes    #
#   to the guru for resolution)                     #
#####################################################
S0

R@			$#local $:$n			handle <> form

R$*<@$=w>		$@$>29$1			strip our aliases
R<@$=w>:$+		$@$>29$2			retry after route strip
R$*<@$k>		$@$>29$1			strip our hostname
# Here we strip out our "local" name after the official strips fail
R$*<@$S>		$@$>29$1			strip smaug
R<@$k>:$+		$@$>29$1			string

R$*<@$+>$*		$#ether $@$G$:$1@$2$3		pass to guru
.
.
etc.



>From treed%tom.dallas at sgi.com Fri May 25 08:34:17 1990
Return-Path: <@eddie.mit.edu:treed%tom.dallas at sgi.com>
Date: Tue, 15 May 90 11:13:55 CDT
>From: treed%tom.dallas at sgi.com (Thomas E Reed)
To: wlim at ai.mit.edu
Subject: Re:  Messing around with sendmail.cf

>Message-Id: <9005151205.AA16842 at rice-chex>
>To: info-iris at BRL.MIL
>Subject: Messing around with sendmail.cf
>
>At my place of work, we have a Personal Iris connected to an internal
>network.  There are Unix machines (BSD, Sparc stations, Ultrix) and
>Symbolics machines on that network.  However we are having problems
>trying to get email to work on the Personal Iris (ftp and telnet seem
>to work though).  We could send mail out from the Personal Iris to the
>other hosts.   The problem is that we can't send mail to the Personal
>Iris.
>
>Any ideas on how sendmail.cf should be fixed to get mail to work
>properly?
>
>Thanks in advance.
>
>
>Willie


In general you will need to change the sendmail.cf file to make it work.

The entries you need to change are:

                   # full domain name
                   DDFOO.COM

                   # Forwarding host.
                   DFbar.foo.com
                   CFbar

                   # default network name
                   ONFOO.COM

If you are using canonial naming then these entries should agree with your local
network configuration.

For example if your systems hostname is "myhost" and your network domain is
"somenet1.myschool.edu" and the hostname of the mail forwarder for your system
is "mailfwd.somenet2.myschool.edu" then these entries would look like:

# full domain name
DDsomenet1.myschool.edu

# Forwarding host.
DFmailfwd.somenet2.myschool.edu
CFmailfwd

# default network name
ONsomenet1.myschool.edu


IF you are not using canonical named hosts in your "/etc/hosts" file 
ie. the entries look like "192.1.1.1 foo" instead of "192.1.1.1 foo.bar.com"
then the entries should look like:



# full domain name
DDLOCAL

# Forwarding host.
DFmailfwd
CFmailfwd

# default network name
ONLOCAL


and you will need to uncomment the rewrite rule shown below in your sendmail.cf
file. 


# ??? unusual rule
# Assume that all unqualified, canonical names are local.  This is
#       not necessary unless /etc/hosts contains entries whose first
#       name does not contain periods.
#R$*<@$=S>$*            $1<@$2.$D>$3
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^	
   This is the rewrite rule 





Every time you change the sendmail.cf file you need to stop and start sendmail.
You can do this by typing (as root) the following.

           /etc/init.d/mail stop  <CR>
          
          then type

           /etc/init.d/mail start <CR>


Hope this helps...




PS. your question about using QIC-24 tapes with a PI?

     Unless you asked differently you PI was shipped with a QIC-150 "high 
     density" tape drive. QIC-24 tapes are not compatible with this higher
     density drive. The drive will read QIC-24 tapes you just can't write to 
     them.
--

					Tom Reed
					SGI - Dallas

				     email: treed at sgidal.dallas.sgi.com
				     vmail: 8705
				     phone: 214-788-4122






>From wlim at ai.mit.edu Fri May 25 08:34:25 1990
Return-Path: <wlim at ai.mit.edu>
>From: wlim at ai.mit.edu (Michael Rowan)
Date: Tue, 15 May 90 12:45:10 EDT
To: rose at baby.swmed.utexas.edu
Subject: [treed%tom.dallas at sgi.com: Re:  Messing around with sendmail.cf]

Return-Path: <@eddie.mit.edu:treed%tom.dallas at sgi.com>
Date: Tue, 15 May 90 11:13:55 CDT
>From: treed%tom.dallas at sgi.com (Thomas E Reed)
To: wlim at ai.mit.edu
Subject: Re:  Messing around with sendmail.cf

>Message-Id: <9005151205.AA16842 at rice-chex>
>To: info-iris at BRL.MIL
>Subject: Messing around with sendmail.cf
>
>At my place of work, we have a Personal Iris connected to an internal
>network.  There are Unix machines (BSD, Sparc stations, Ultrix) and
>Symbolics machines on that network.  However we are having problems
>trying to get email to work on the Personal Iris (ftp and telnet seem
>to work though).  We could send mail out from the Personal Iris to the
>other hosts.   The problem is that we can't send mail to the Personal
>Iris.
>
>Any ideas on how sendmail.cf should be fixed to get mail to work
>properly?
>
>Thanks in advance.
>
>
>Willie


In general you will need to change the sendmail.cf file to make it work.

The entries you need to change are:

                   # full domain name
                   DDFOO.COM

                   # Forwarding host.
                   DFbar.foo.com
                   CFbar

                   # default network name
                   ONFOO.COM

If you are using canonial naming then these entries should agree with your local
network configuration.

For example if your systems hostname is "myhost" and your network domain is
"somenet1.myschool.edu" and the hostname of the mail forwarder for your system
is "mailfwd.somenet2.myschool.edu" then these entries would look like:

# full domain name
DDsomenet1.myschool.edu

# Forwarding host.
DFmailfwd.somenet2.myschool.edu
CFmailfwd

# default network name
ONsomenet1.myschool.edu


IF you are not using canonical named hosts in your "/etc/hosts" file 
ie. the entries look like "192.1.1.1 foo" instead of "192.1.1.1 foo.bar.com"
then the entries should look like:



# full domain name
DDLOCAL

# Forwarding host.
DFmailfwd
CFmailfwd

# default network name
ONLOCAL


and you will need to uncomment the rewrite rule shown below in your sendmail.cf
file. 


# ??? unusual rule
# Assume that all unqualified, canonical names are local.  This is
#       not necessary unless /etc/hosts contains entries whose first
#       name does not contain periods.
#R$*<@$=S>$*            $1<@$2.$D>$3
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^	
   This is the rewrite rule 





Every time you change the sendmail.cf file you need to stop and start sendmail.
You can do this by typing (as root) the following.

           /etc/init.d/mail stop  <CR>
          
          then type

           /etc/init.d/mail start <CR>


Hope this helps...




PS. your question about using QIC-24 tapes with a PI?

     Unless you asked differently you PI was shipped with a QIC-150 "high 
     density" tape drive. QIC-24 tapes are not compatible with this higher
     density drive. The drive will read QIC-24 tapes you just can't write to 
     them.
--

					Tom Reed
					SGI - Dallas

				     email: treed at sgidal.dallas.sgi.com
				     vmail: 8705
				     phone: 214-788-4122







>From gln at pc-i1.me.umn.edu Fri May 25 08:34:32 1990
Return-Path: <gln at pc-i1.me.umn.edu>
Date: Tue, 15 May 90 12:24:57 CDT
>From: Glen Niebur <gln at pc-i1.me.umn.edu>
To: wlim at ai.mit.edu
Subject: sendmail.cf


I spent a considerable amount of time trying to figure out sendmail.cf
My conclusion was that the sendmail.cf which SGI sends with their
machines is useless.  I got the following sendmail file off of
anonymous ftp from our local NIC.  You can probably fix it up to work
for your machines by changing the hostnames and domains.  Note that
it assumes that any machine on your local network (e.g. mit.edu) can
be reached directly.  If this is not the case, remove the line which ends
with "on uofm network"

###############################################################################
###                                                                         ###
###            sendmail configuration for generic complex host              ###
###                with both UUCP and Internet connections                  ###
###                                                                         ###
###            Erik E. Fair <fair at ucbarpa.berkeley.edu>                     ###
###                                                                         ###
###############################################################################

# Our local domain ($D is added to $w [hostname] for official name in base.m4)
#	CHANGE THESE TWO LINES
DDme.umn.edu
DHpc-i1

# All the names we are known by (put all the names & nick names on the next
# line, separated by spaces. If you need another line, begin it with "Cw")
#	CHANGE THIS LINE
Cwpc-i1.me.umn.edu pc-i1 pc-iris

# Our UUCP name
DU$w

# the list of UUCP hosts that we speak to (same rules as Cw, use the
# output of the "uuname" command; also, when you add or delete a host
# from the L.sys, don't forget to add or delete it here)
CU


#define forwarding host (usually called mailhost)
DFmailhost

###############################################################################
###   baseline definitions that sendmail needs to operate                   ###
###############################################################################

##########################
###   Special macros   ###
##########################

DV25

# my official hostname
Dj$H.$D
# my name (the name on mailer bounces)
DnMAILER-DAEMON
# UNIX header format
DlFrom $g $d
# delimiter (operator) characters
Do.:%@!^/[]
# format of a total name
Dq$?x$x <$g>$|$g$.
# SMTP login message
De$j Sendmail $v/$V ready at $b

###################
###   Options   ###
###################

# we have full sendmail support here
Oa
# location of alias file
OA/usr/lib/aliases
# default delivery mode (deliver in background)
Odbackground
# (don't) connect to "expensive" mailers
#Oc
# temporary file mode
OF0600
# default GID
Og1
# location of help file
OH/usr/lib/sendmail.hf
# log level
OL9
# Send to me too (even if I'm in an alias expansion)
Om
# default messages to old style
Oo
# queue directory
OQ/usr/spool/mqueue
# read timeout -- violates protocols (timeout an SMTP idle for 2 hours)
Or2h
# status file
OS/usr/lib/sendmail.st
# queue up everything before starting transmission
Os
# default timeout interval (returns undelivered mail after 3 days)
OT3d
# time zone names (V6 only)
OtPST,PDT
# default UID
Ou1
# encrypted wizard's password (for the undocumented "wiz" SMTP command)
OWnot-likely
# rebuild the aliasfile automagically
#OD
# maximum load average before queueing mail
Ox10
# maximum load average before rejecting connections
OX15

###############################
###   Message precedences   ###
###############################

Pfirst-class=0
Pspecial-delivery=100
Pbulk=-60
Pjunk=-100

#########################
###   Trusted users   ###
#########################

Troot
Tdaemon
Tnews
Tuucp

#############################
###   Format of headers   ###
#############################

H?P?Return-Path: <$g>
HReceived: $?sfrom $s$. by $j$?r with $r$. ($v/$V-eef)
	id $i; $b
H?D?Date: $a
H?F?From: $q
H?x?Full-Name: $x
H?M?Message-Id: <$t.$i@$j>
HSubject:
H?D?Resent-Date: $a
H?F?Resent-From: $q
H?M?Resent-Message-Id: <$t.$i@$j>


###############################################################################
#		RULESET ZERO PREAMBLE                                         #
###############################################################################

S0

# first make canonical
R$*<$*>$*		$1$2$3				defocus
R$+			$:$>3$1				make canonical

# handle special cases.....
R@			$#local$:$n			handle <> form
R$*<@[$+]>$*		$#tcp$@[$2]$:$1@[$2]$3		numeric internet spec

# now delete the local info
R$*<$*$=w.UUCP>$*	$1<$2>$4			thishost
R$*<$*$=w.$D>$*		$1<$2>$4			thishost
R$*<$*$=w>$*		$1<$2>$4			thishost
R$*<$*.>$*		$1<$2>$3			drop trailing dot
R<@>:$*			$@$>0$1				retry after route strip
R$*<@>			$@$>0$1				strip null trash & retry

# return uucp mail that looks like decvax!ittvax!marsvax! since it
# will be rejected at the final site with no username on it
R$*!<@$-.UUCP>		$#error$:Destination address truncated



###############################################################################
###   Machine dependent part of ruleset zero (where we decide what to do)   ###
###############################################################################

# resolve UUCP links to hosts known to this machine
R$*<@$=U.UUCP>$*	$#uucp$@$2$:$1			resolve local uucp

# special case violation of RFC822 for hybrid bang/at addresses
# if uucphost!user at arpahost, forward to uucphost if we speak to it.
R$=U!$+<@$+>$*		$#uucp$@$1$:$2@$3$4

# resolve various and sundry other unofficial networks

R$*<@$+.MAILNET>$*	$#tcp$@mit-multics.arpa$:$1@$2.MAILNET$3	MAILNET
R$*<@$+.BITNET>$*	$#tcp$@cunyvm.cuny.edu$:$1@$2.BITNET$3		BITNET
R$*<@$+.MFENET>$*	$#tcp$@nmfecc.arpa$:$1@$2.MFENET$3		MFENET
R$*<@$+.CSNET>$*	$#tcp$@relay.cs.net$:$1@$2.CSNET$3		CSNET


R$*<@$->$*		$#tcp$@$2$:$1@$2$3

#	CHANGE OR DELETE THIS LINE
R$*<@$+.$+.umn.edu>$*		$#tcp$@$2.$3.umn.edu$:$1@$2.umn.edu$3	on uofm network

# route through mailhost with nameserver support

R$*<@$+>$*		$#tcp$@$F$:$1@$2$3			user at domain

# remaining names must be local
R@			$n					fix magic token
R$+			$#local$:$1				everything else

###############################################################################
###   End of ruleset zero                                                   ###
###############################################################################

###########################
#  Name Canonicalization  #
###########################
S3

# handle "from:<>" special case
R<>			$@@				resolve into magic token

# basic textual canonicalization
R$*<$*<$*<$+>$*>$*>$*	$4				3-level <> nesting
R$*<$*<$+>$*>$*		$3				2-level <> nesting
R$*<$+>$*		$2				basic RFC821/822 parsing
R$+ at $+		$1@$2				"at" -> "@" for RFC 822
R$*<$*>$*		$1$2$3				in case recursive

# make sure <@a, at b, at c:user at d> syntax is easy to parse -- undone later
R@$+,$+			@$1:$2				change all "," to ":"

# localize and dispose of domain-based addresses
R@$+:$+			$@$>6<@$1>:$2			handle <route-addr>

# more miscellaneous cleanup
R$+			$:$>8$1				host dependent cleanup
R$+:$*;@$+		$@$1:$2;@$3			list syntax
R$+@$+			$:$1<@$2>			focus on domain
R$+<$+@$+>		$1$2<@$3>			move gaze right
R$+<@$+>		$@$>6$1<@$2>			already canonical

# convert old-style addresses to a domain-based address
R$+^$+			$1!$2				convert ^ to !
R$+!$+			$@$>9$1!$2			uucp name hackery
R$+%$+			$:$>5$1%$2			user%host%host
R$+<@$+>		$@$>6$1<@$2>			canonical

# Given multiple %'s change rightmost % to @.
S5
R$*<$*>$*		$1$2$3				defocus
R$*%$*			$1@$2				First make them all @'s.
R$*@$*@$*		$1%$2@$3			Undo all but the last.
R$*@$*			$@$1<@$2>			Put back the brackets.

###############################################################################
####   Assorted name hackery to make things simple for people              ####
###############################################################################

# here we look for addresses of the form: user%host.domain at gateway
# and strip off the gateway name (for the ones that we know)

S6

# conventional percent format

R$+%$+.MAILNET<@mit-multics.arpa>	$>5$1<%$2.MAILNET>	strip
R$+%$+.MFENET<@nmfecc.arpa>		$>5$1<%$2.MFENET>	strip
R$+%$+.BITNET<@cunyvm.cuny.edu>		$>5$1<%$2.BITNET>	strip
R$+%$+.CSNET<@relay.cs.net>		$>5$1<%$2.CSNET>	strip

# regulation route-addr format

R<@mit-multics.arpa>:$+@$+.MAILNET	$1<@$2.MAILNET>		strip
R<@nmfecc.arpa>:$+@$+.MFENET		$1<@$2.MFENET>		strip
R<@cunyvm.cuny.edu>:$+@$+.BITNET	$1<@$2.BITNET>		strip
R<@relay.cs.net>:$+@$+.CSNET		$1<@$2.CSNET>		strip

# mung up names for the outside world - called from tcp mailer

S7
R$+@$+.MAILNET		$1%$2.MAILNET at mit-multics.arpa	user at host.MAILNET
R$+@$+.MFENET		$1%$2.MFENET at nmfecc.arpa	user at host.MFENET
R$+@$+.BITNET		$1%$2.BITNET at cunyvm.cuny.edu	user at host.BITNET
R$+@$+.CSNET		$1%$2.CSNET at relay.cs.net	user at host.CSNET

###############################################################################
####   UUCP address hackery                                                ####
###############################################################################

S9
R$+!$=w!$+		$3				collapse loops
R$-.$+!$+		$@$>6$3<@$1.$2>			do.main!user
R$-!$+			$@$>6$2<@$1.UUCP>		host!user

################################
#  Sender Field Pre-rewriting  #
################################
S1
R$*<$*>$*		$1$2$3				defocus

###################################
#  Recipient Field Pre-rewriting  #
###################################
S2
R$*<$*>$*		$1$2$3				defocus

###################################
#  Final Output Post-rewriting    #
#  Standard Domain-based version  #
###################################
S4
R@			$n				handle <> error addr

# externalize local domain info
R@$+:$+:$+		$@@$1,$2:$3			<route-addr> canonical

# UUCP must always be presented in old form
R$+@$-.UUCP		$2!$1				u at h.UUCP => h!u

###############################################################################
###   Local, and Program Mailer specifications                              ###
###############################################################################

# Nota Bene: what mailer flags you use depends upon what version of /bin/mail
# you have:
#
# 4th Berkeley Software Distribution (4.1 BSD or later)
Mlocal, P=/bin/mail, F=SlsDFMPpmxf, S=10, R=20, A=mail -d $u
#
# USG UNIX (System III, System V, Xenix 3.0 or later)
# Mlocal, P=/bin/mail, F=SlsDFMPpmnx, S=10, R=20, A=mail $u
#
# Also, if you are using System V, you should get the Berkeley version of
# /bin/mail as soon as you can and junk the one you've got: it doesn't
# believe in sendmail, so the wrong thing will happen when someone types
# mail user at host (i.e. it will attempt local delivery, rather than call
# sendmail)

Mprog, P=/bin/sh, F=lsDFMpxehu, S=10, R=20, A=sh -c $u

S10

S20


###############################################################################
####    IP/TCP/SMTP mailer (going out to internet land)                    ####
###############################################################################

Mtcp,	P=[IPC], F=AmnDFMpueXLC, S=14, R=14, A=IPC $h, E=\r\n

S14
R$*@[$+]$*		$@$1@[$2]$3		already ok (inet addr spec)
R@$+@$+			$@@$1@$2		already ok (route-addr)
R$+@$=X.UUCP		$2!$1@$X		fix remote UUCP
R$+@$=Y.UUCP		$2!$1@$Y		fix remote UUCP
R$+@$=Z.UUCP		$2!$1@$Z		fix remote UUCP
R$+@$-.UUCP		$2!$1@$j		undo local UUCP hack
R$+@$+			$@$>7$1@$2		fix up names for the internet
R$+			$@$1@$j			add our official host name

###############################################################################
####   UUCP mailer (bangland)                                              ####
###############################################################################

# if none of your UUCP neighbors are 4.1 BSD sites, add an "m" after "F="
# this will cause multiple recipients on the same remote host to be done
# in the same uux command (i.e. one letter sent for "n" recipients)
#
# if you want uucico to be invoked immediately after a letter is queued
# (i.e. initiate the phone call immediately) remove the "-r" flag in the
# uux command line.

Muucp,	P=/usr/bin/uux, F=sDFMxhuU, S=13, R=23, M=100000,
	A=uux - -r $h!rmail ($u)

S13
R$+@$-.UUCP		$2!$1				u at host.UUCP => host!u
R$=w!$+			$2				zap dups
R@$+@$+			$@$U!@$1@$2			ugh, route-addrs
# unfortunately, I have to resolve route-addrs before this rule, because
# it is so general that it matches them too, with disastrous results. - EEF
R$+@$-.$+		$2.$3!$1			uucpize address
R$+			$:$U!$1				stick on our host name

S23
# nothing here because bangland mailers are supposed to rewrite these headers
# relative to the sender by themselves anyway.




Also, if you are running a name server, you can skip the part about
forwarders and mailhost.


--

glen Niebur             |   A dragon lives forever, but not so little boys
u of minn. mech. eng.   |
productivity center     |
612 625-3522            |





>From bobf at blumiris.chem.umr.edu Fri May 25 08:34:37 1990
Return-Path: <bobf at blumiris.chem.umr.edu>
Date: Tue, 15 May 90 20:06:18 CDT
>From: bobf at blumiris.chem.umr.edu (Robert B. Funchess)
To: wlim at ai.mit.edu
Subject: sendmail.cf

It's horrible, isn't it?  I seem to have ours working, finally.  Check your 
/etc/hosts file.  Make sure that 127.1 localhost loopback is at the top,
then at the bottom, put your real IP number and the FULL OFFICIAL NAME, e.g.
131.151.14.48	clciris.chem.umr.edu	clciris
then put aliases AFTER the full name.  Also make sure your forwarding host is
in the file... it probably should be one in your own subdomain (I tried using
our main TCP connection as the forwarding host... it didn't work, because it's
not in the .chem. subdomain).  Now, in /usr/lib/sendmail.cf, replace the DD
line with the full domain name (in our case
DDchem.umr.edu
The official hostname line should look like
Dj$w
The forwarding host line --
DFibm530.chem.umr.edu
CFibm530
Then down a little way there is a line starting with ON... ours reads
ONchem.umr.edu

That's it for the sendmail.cf file.  Now make sure your hostname is right
(/etc/sys_id should be the SHORT name, without domain, of your Iris) and kill
and restart the mailer-demon.  You'll need to rebuild the aliases file also..
run /usr/lib/newalises before starting the daemon back up again.  If you have
a sendmail.fc file, delete it just before you rebuild the aliases.

Hope this helps...
--
Bob Funchess					bobf at blumiris.chem.umr.edu
Chemistry Dept.					University of Missouri - Rolla




>From parkins at tcgould.tn.cornell.edu Fri May 25 08:34:56 1990
Return-Path: <parkins at tcgould.tn.cornell.edu>
Date: Wed, 16 May 90 14:03:12 EDT
>From: parkins at tcgould.tn.cornell.edu (David Parkins)
To: wlim at ai.mit.edu
Subject: Re: Messing around with sendmail.cf
Newsgroups: comp.sys.sgi
In-Reply-To: <9005151205.AA16842 at rice-chex>
Organization: Cornell Theory Center, Cornell University, Ithaca NY
Cc: 

I have a sendmail.cf file and some other stuff that works (I went through
this about four months ago). If you don't get any info from anyone else, or
you don't have luck with what you get send me mail.


parkins at patella.tn.cornell.edu

Dave Parkins





>From roberts%nimrod.wpd at sgi.com Fri May 25 08:35:02 1990
Return-Path: <@eddie.mit.edu:roberts%nimrod.wpd at sgi.com>
Date: Wed, 16 May 90 11:31:47 -0700
>From: roberts%nimrod.wpd at sgi.com (roberts)
To: wlim at ai.mit.edu
Subject: Re: Messing around with sendmail.cf
Return-Receipt-To: roberts%nimrod.wpd at sgi.com

If you could forward me some specifics about the trouble you are
having receiving mail on the PI, I would be glad to try and help.
I assume that the mail going into the PI is bouncing.  It would
be a good start if you could mail me the entire contents of one
or more of the bounced messages.

	- Robert Stephens






>From ajp2o at crocus.medicine.rochester.edu Fri May 25 08:35:05 1990
Return-Path: <ajp2o at crocus.medicine.rochester.edu>
Date: Tue, 15 May 90 14:14:19 EDT
>From: ajp2o at crocus.medicine.rochester.edu (Anthony Persechini)
To: wlim at ai.mit.edu
Subject: Re: Messing around with sendmail.cf
Newsgroups: comp.sys.sgi
In-Reply-To: <9005151205.AA16842 at rice-chex>
Organization: University of Rochester

I had a problem with e'mail at this location
caused by a rewriting rule in the cf file. 
This is the offending part of the file, including
my alterations:

# Find which network this host is on by prepending $w!$w!
# This does not work right; it routes mail back to sender.
# A.P.
# R$+			$:$w!$w!$1
R$-.$D!$-.$D!$+		$:$1!$2!$3

You might also check your netmask and your sys_id
entry. Have you tried to get a diagnosis by
running mail_bsd in the verbose (-v) mode.
By the way, on my machine the search path was such
that mail_att was run instead of mail_bsd.

Hope this is of some help.

Tony-




>From wlim at ai.mit.edu Fri May 25 08:35:09 1990
>From: wlim at ai.mit.edu (William Y-P. Lim)
Date: Mon, 21 May 90 06:32:35 EDT
To: wlim at gdstech.grumman.com
Cc: wlim at crcvs
Subject: [spike at world.std.com: Re: Messing around with sendmail.cf]

Return-Path: <@encore.encore.com:spike at world.std.com>
Date: Fri, 18 May 90 12:50:04 -0400
>From: spike at world.std.com (Joe Ilacqua)
To: wlim at ai.mit.edu
Subject: Re: Messing around with sendmail.cf
Newsgroups: comp.sys.sgi
In-Reply-To: <9005151205.AA16842 at rice-chex>
Organization: Software Tool & Die
Cc: 


This works:

############################################################
#
#	Sendmail configuration file for "MAIN MACHINES"
#
#	You should install this file as /etc/sendmail.cf (SUN 4.0.x sendmail)
#	or /usr/lib/sendmail (IDA) on the mail server for any given cluster
#	of hosts.
#
#	This is based on the SUN 4.0.3 sendmail.cf, with many hacks and 
#	bug fixes by Joe Ilacqua (spike at world.std.com) with alot of prompting
#	from Eric Pearce (eap at bu-pub.bu.edu)
#
#	This is an attempt at a generic cf.  If you are on the DDN or talk via 
#	'ethernet' or UUCP to a machine that is, this cf can work for you.
#
#	Setup everything in the "local info" section, then find everything
#	markked "CONFIGURE ME" and do just that...

###	local info

# my official hostname
# You have two choices here.  If you want the gateway machine to identify
# itself as the DOMAIN, use this line:
#Dj$m
# If you want the gateway machine to appear to be INSIDE the domain, use:
#Dj$w.$m
# Unless you are using sendmail.mx (or have a fully-qualified hostname), use:
Dj$w

# What we want to call ourself.  For example:
#Dwworld.std.com
Dwagni.std.com
# All of the names this machine is know by. For example:
#Cw world.std.com std.com world sug.org
Cw

# The domain name of this machine. For example:
#Dmstd.com
Dm

# major relay mailer - typical choice is
# "ddn"       if you are on the Defense Data Network (e.g. Arpanet or Milnet)
#             or if you are going to pass mail to a better connected machine on
#             your ethernet.
# "smartuucp" if you pass 'domain style' addresses to a better connected
#             site via uucp
#For example 
#DMsmartuucp
DMddn

# major relay host:
# If you are using "smartuucp" this should be the uucp name of the 'better 
# connected site'.  If you are passing to another local machine this should be
# the name of that machine.  If you are on the Defense Data Network set it to
# 'ddn-relay' For example:
#DR xylogics
#CR xylogics
DR
CR

# Dumb UUCP connections of this machine, that is ones that need UUCP style 
# address.  (You may leave this blank.)  For example:
#CU paradigm esegue
CU

# Smart UUCP connections, that is ones that can take 'domain style addresses'.
# (You may leave this blank.)  For example
#CS xylogics uunet bu.edu
CS

#Other domain that can be reached over the local ethernet
#CL expert.com
CL

# Forward all unknown (non-local) UUCP machines to this machine.  This
# is only useful if you talk to a machine that runs path-aliases and
# doesn't  mind you using theirs.  Comment this out if you use
# pathalias bellow or if you don't want to handle unknown UUCP names.
# For example: 
#DP xylogics
DP
# If you define DP then this should be the type of connection you have to the
# forwarding machine.  It should be "uucp" if it is a uucp connection or "ddn"
# if it is over the ethernet.  For example:
#DF uucp
DF ddn

# Or (and I do mean or) if you are running IDA sendmail and you have a
# path database built with pathalias and IDAs dbm program you can set this
# to be the path of that file.  Useless without sendmail 5.61+++ or IDA
#OKP/tmp/pathdb

# Now ajust all the "CONFIGURE ME" sections

#################################################
#
#	General configuration information

# Version number of configuration file
DVSpike-1.0


###   Standard macros

# name used for error messages
DnMailer-Daemon
# UNIX header format
DlFrom $g  $d
# delimiter (operator) characters
Do.:%@!^=/[]
# format of a total name
Dq$g$?x ($x)$.
# SMTP login message
De$j Sendmail $v/$V ready at $b

###   Options CONFIGURE ME
#If you are *not* using the nameserver change the 'T' to a 'F'
OIT
# location of alias file. SUN likes /etc/aliases
OA/usr/lib/aliases

# options that you probably want on a mailhost:
# checkpoint the queue after this many receipients
OC10
# refuse to send tiny messages to more than these recipients
Ob10
# default delivery mode (deliver in background)
Odbackground
# rebuild the alias file automagically
OD
# temporary file mode -- 0600 for secure mail, 0644 for permissive
OF0600
# default GID
Og1
# location of help file
OH/usr/lib/sendmail.hf
# log level
OL9
# default messages to old style
Oo
# Cc my postmaster on error replies I generate
OPPostmaster
# queue directory
OQ/usr/spool/mqueue
# read timeout for SMTP protocols
Or15m
# status file
OS/etc/sendmail.st
# queue up everything before starting transmission, for safety
Os
# return queued mail after this long
OT3d
# default UID
Ou1

###   Message precedences
Pfirst-class=0
Pspecial-delivery=100
Pjunk=-100

###   Trusted users
T root daemon uucp

###   Format of headers 
H?P?Return-Path: <$g>
HReceived: $?sfrom $s $.by $j ($v/$V)
	id $i; $b
H?D?Resent-Date: $a
H?D?Date: $a
H?F?Resent-From: $q
H?F?From: $q
H?x?Full-Name: $x
HSubject:
H?M?Resent-Message-Id: <$t.$i@$j>
H?M?Message-Id: <$t.$i@$j>
HErrors-To:

###########################
###   Rewriting rules   ###
###########################


#  Sender Field Pre-rewriting
S1
# None needed.

#  Recipient Field Pre-rewriting
S2
# None needed.

# Name Canonicalization

# Internal format of names within the rewriting rules is:
# 	anything<@host.domain.domain...>anything
# We try to get every kind of name into this format, except for local
# names, which have no host part.  The reason for the "<>" stuff is
# that the relevant host name could be on the front of the name (for
# source routing), or on the back (normal form).  We enclose the one that
# we want to route on in the <>'s to make it easy to find.
# 
S3

# handle "from:<>" special case
R<>			$@@				turn into magic token

# basic textual canonicalization
R$*<$+>$*		$2				basic RFC822 parsing

# make sure <@a, at b, at c:user at d> syntax is easy to parse -- undone later
R@$+,$+:$+		@$1:$2:$3			change all "," to ":"
R@$+:$+			$@$>6<@$1>:$2			src route canonical

R$+:$*;@$+		$@$1:$2;@$3			list syntax
R$+@$+			$:$1<@$2>			focus on domain
R$+<$+@$+>		$1$2<@$3>			move gaze right
R$+<@$+>		$@$>6$1<@$2>			already canonical

# convert old-style names to domain-based names
# All old-style names parse from left to right, without precedence.
# The next two lines allow us to catch UUCP neighbor with domain UUCP names
# (like bu.edu)
R$=U!$+			$@$>6$2<@$1.uucp>		uucphost!user
R$=S!$+			$@$>6$2<@$1.uucp>		uucphost!user
R$-!$+			$@$>6$2<@$1.uucp>		uucphost!user
R$-.$+!$+		$@$>6$3<@$1.$2>			host.domain!user
R$+%$+			$@$>3$1@$2			user%host

#  Final Output Post-rewriting 
S4
R$+<@$+.uucp>		$2!$1				u at h.uucp => h!u
R$+			$: $>9 $1			Clean up addr
R$*<$+>$*		$1$2$3				defocus


#  Clean up an name for passing to a mailer
#  (but leave it focused)
S9
R@			$@$n				handle <> error addr
R$*<$*LOCAL>$*		$1<$2$m>$3			change local info
R<@$+>$*:$+:$+		<@$1>$2,$3:$4			<route-addr> canonical


#######################
#   Rewriting rules

# special local conversions
S6
# CONFIGURE ME This needs to be changed if you are not using 5.61+++
# (Hint: your not but you could pick it up from bu.edu)
# Change foo.com to be your local domain same as 'Dm' above
R$*<@$+.foo.com>$*	$1<@$2.LOCAL>$3			convert local domain
# Comment out above line and uncomment the next one if you have 5.61+++
#R$*<@$+.$m>$*		$1<@$2.LOCAL>$3			convert local domain

# Local and Program Mailer specification

# For 5.61+++
#Mlocal,	P=/bin/mail, F=lsDFMmP, S=10, R=20, A=mail -s -d $u
# For SGI
Mlocal, P=/bin/mail, F=EDFMlsmhu, S=10, R=20, A=mail -s -d $u
Mprog,	P=/bin/sh,   F=lsDFMeuP,  S=10, R=20, A=sh -c $u

S10
# None needed.

S20
# None needed.

##########################################################
#  General code to convert back to old style UUCP names
S5
R$+<@LOCAL>		$@ $D!$1			name at LOCAL => sun!name
R$+<@$-.LOCAL>		$@ $2!$1			u at h.LOCAL => h!u
R$+<@$+.uucp>		$@ $2!$1			u at h.uucp => h!u
R$+<@$*>		$@ $2!$1			u at h => h!u
# Route-addrs do not work here.  Punt til uucp-mail comes up with something.
R<@$+>$*		$@ @$1$2			just defocus and punt
R$*<$*>$*		$@ $1$2$3			Defocus strange stuff

#	UUCP Mailer specification

Muucp,	P=/usr/bin/uux, F=msDFMhuU, S=13, R=23,
	A=uux - -r $h!rmail ($u)

# Convert uucp sender (From) field
S13
R$+			$:$>5$1				convert to old style
R$=w!$+			$2				strip local name
R$+			$:$w!$1				stick on real host name

# Convert uucp recipient (To, Cc) fields
S23
R$+			$:$>5$1				convert to old style


############################################################
#
#		DDN Mailer specification
#
#	Send mail on the Defense Data Network
#	   (such as Arpanet or Milnet)

# This line for SUN's sendmail
#Mddn,	P=[TCP], F=msDFMuCX, S=22, R=22, A=TCP $h, E=\r\n
# This Line for IDA
Mddn,	P=[IPC], F=msDFMuCX, S=22, R=22, A=IPC $h, E=\r\n

S22
# If we passed UUCP addresses here we mean it
R$*<@$+.uucp>		$@$2!$1
R$*!$+			$@$1!$2
R$*<@LOCAL>$*		$:$1
R$*<@$+.$*>$*		$@$1<@$2.$3>$4			already ok
R$*<@$+>$*		$@$1<@$2.$m>$3			tack on our domain
R$+			$@$1<@$w>			tack on our hostname


# "Smart" UUCP mailer: Uses UUCP transport but domain-style naming
Msmartuucp, P=/usr/bin/uux, F=CmsDFMhu, S=22, R=22, 
	A=uux - -r $h!rmail ($u)
	

# Ruleset 30 just calls rulesets 3 then 0.
S30
R$*			$: $>3 $1			First canonicalize
R$*			$@ $>0 $1			Then rerun ruleset 0

############################################################
#
#		RULESET ZERO
#
#	This is the ruleset that determines which mailer a name goes to.

S0
# On entry, the address has been canonicalized and focused by ruleset 3.
# Handle special cases.....
R@			$#local $:$n			handle <> form
# I hear Eric Allman regretted forgetting this
# If it is exactly one token it has to be local so why grind?
R$-			$#local $:$1			local names

# For numeric spec, you can't pass spec on to receiver, since rcvr's
# are not smart enough to know that [x.y.z.a] is their own name.
R<@[$+]>:$*		$:$>9 <@[$1]>:$2		Clean it up, then...
R<@[$+]>:$*		$#ddn $@[$1] $:$2		numeric internet spec
R<@[$+]>,$*		$#ddn $@[$1] $:$2		numeric internet spec
R$*<@[$+]>		$#ddn $@[$2] $:$1		numeric internet spec

# resolve the local hostname to "LOCAL".
R$*<$*$=w.LOCAL>$*	$1<$2LOCAL>$4			thishost.LOCAL
R$*<$*$=w.uucp>$*	$1<$2LOCAL>$4			thishost.uucp
R$*<$*$=w>$*		$1<$2LOCAL>$4			thishost

# Mail addressed explicitly to the domain gateway (us)
R$*<@LOCAL>		$@$>30$1			strip our name, retry
R<@LOCAL>:$+		$@$>30$1			retry after route strip

# deliver to known ethernet hosts explicitly specified in our domain
R$*<@$*.LOCAL>$*	$#ddn $@$2.$m $:$1<@$2>$3	user at host.sun.com

# Deliver to other domains in our reach..
R$*<@$*$=L>$*		$#ddn $@$2$3 $:$1<@$2$3>$4

# Clean up addresses for external use -- kills LOCAL, route-addr ,=>: 
R$*			$:$>9 $1			Then continue...

# resolve UUCP-style names

R$+<@$=S.uucp>		$#smartuucp  $@$2 $:$2!$1		user at host.uucp
R$+<@$=U.uucp>		$#uucp  $@$2 $:$2!$1		user at host.uucp

# CONFIGURE ME
# If you can punt UUCP traffic to a host running pathaliases use these
# two lines
R<@$-.uucp>:$+		$#$F  $@$P $:<@$1.uucp>:$2	@host.uucp:...
R$+<@$-.uucp>		$#$F  $@$P $:$2!$1		user at host.uucp

# If you want unknown uucp name to return an error uses these two lines
#R<@$-.uucp>:$+		$#error $:$1 is not a uucp neighbor of "$w"
#R$+<@$-.uucp>		$#error $:$2 is not a uucp neighbor of "$w"

#If you are using IDA and have a path database use these 
#R$+<@$-.uucp>		$: $(P  $2 $@$1<UUCP> $:$1<@.$2.uucp> $)
#R$+<@.$-.uucp>		$#error $:Can not find a path to $2
#R$-!$+<UUCP>		$#uucp  $@$1 $:$1!$2

# CONFIGURE ME
# Uncomment the following line if you are you are *not* on DDN
R$*<@$*.$+>$*		$#$M    $@$R $:$1<@$2.$3>$4	user at any.domain

# Or if you *are* on the DDN, then use this line

#R$*<@$*.$+>$*		$#ddn $@ $2.$3 $:$1<@$2.$3>$4	user at any.domain

# All addresses in the rules ABOVE are absolute (fully qualified domains).
# Addresses BELOW can be partially qualified.

# deliver to known ethernet hosts
R$*<@$->$*		$#ddn $@$2.$m $:$1<@$2>$3	user at etherhost

# other non-local names have nowhere to go; return them to sender.
R$*@$*			$#error $:I don't understand $1@$2

# Local names with % are really not local!
R$+%$+			$@$>30$1@$2			turn % => @, retry

# everything else is a local name
R$+			$#local $:$1			local names



More information about the Comp.sys.sgi mailing list