Ultrix-3.1/usr/lib/sendmail.cfKIT

############################################################
############################################################
#####
#####		SENDMAIL CONFIGURATION FILE
#####
#####		Generic Arpa Configuration	
#####
#####		@(#)exampleether.mc	2.1	(ULTRIX-11)	12/19/85
#####
############################################################
############################################################



############################################################
###	local info
############################################################

# internet hostname -- don't change
DA$w

# domain -- don't change
# our domain, domains we talk to LOCAL being internet
DDUUCP
CDUUCP LOCAL ENET


# official hostname -- don't change
Dj$w.$D


# UUCP name -- don't change
DU$w


# local network hosts
# This reads in the hostnames out of /etc/hosts.
# If you DO have networking, leave as is.
#
# If you DON'T have networking, insert # at beginning of next line.
FS/etc/hosts %*[0123456789.]%s


# Exception clause for machines that are in /etc/hosts,
# but do not speak SMTP (e.g., not running sendmail)
# Typically, these machines get their mail through UUCP.
# The CF line specifies these machines.
# The DF line specifies a forwarding host to deal with the
# machines specified in CF.  If you have direct UUCP connections
# for these machines, then the DF line should be yourself ("DF$w").
# 
# If you DON'T have any bizzare machines like this, then just
# leave the CF line commented out (as is).
#
DF$w
#CFhost1 host2 host3


# Forwarding host for enet
# If you DON'T have a DECnet forwarding node, leave commented out (as is).
#
# If you DO have a DEcnet forwarding node, then "decnetgateway" is
# the name of the host to send DECnet mail to.  Change "decnetgateway"
# to the name of your gateway machine (for example DEpeachy), then
# remove the comment (#) from in from of the DE line.
#DEdecnetgateway


# Directly connected uucp hosts and forwarder for the rest.
# If you DON'T have a UUCP forwarder, leave as is.
#
# If you DO have a UUCP forwarder, then remove the comment (#) from in
# front of the FZ line.  Then, replace the "$w" argument on the DZ line
# with the name of the site to forward UUCP traffic to (i.e., DZpeachy).
DZ$w
#FZ/usr/lib/uucp/L.sys %[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-]

# local users and forwarder for rest
# If you DON'T have a general forwarding node, leave as is; the DN line
# is DN$w and the FN and CN lines remain commented out (as is).
#
# If you DO have a forwarding host, first, replace the "$w" argument on
# the DN line with the forwarding hostname.  Next, add any aliases that you
# wish translated locally (not sent to the forwarding host) to those aliases
# already on the CN line (MAILER-DAEMON postmaster admin).
# This list of names applys only to aliases, i.e., each name is not in
# the /etc/passwd file but is in the /usr/lib/aliases database on the 
# local machine.
DN$w
#FN/etc/passwd %[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRRSTUVWXYZ_-]
#CN MAILER-DAEMON postmaster admin

# THE REST OF THIS FILE IS BOILER-PLATE, AND SHOULD NOT BE MODIFIED
# UNLESS YOU KNOW WHAT YOU ARE DOING.  THIS IS NOT A TASK TO BE TAKEN
# LIGHTLY.  TRUST US, YOU DON'T WANT TO DEAL WITH THIS UNLESS YOU ARE
# FORCED TO.

############################################################
#
#	General configuration information
#
#	This information is basically just "boiler-plate"; it must be
#	there, but is essentially constant.
#
#	Information in this file should be independent of location --
#	i.e., although there are some policy decisions made, they are
#	not specific to Berkeley per se.
#
#		@(#)base.m4	1.2	(ULTRIX)	2/8/85
#
############################################################

#	@(#)version.m4	1.2	(ULTRIX)	2/8/85

DV4.7


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

# my name
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   ###
###################

# 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
# default messages to old style
Oo
# queue directory
OQ/usr/spool/mqueue
# read timeout -- violates protocols
Or2h
# status file
OS/usr/lib/sendmail.st
# queue up everything before starting transmission
Os
# default timeout interval
OT3d
# time zone names (V6 only)
OtEST,EDT
# default UID
Ou1
# wizard's password
OWXXXnot.wanted

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

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

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

Troot
Tdaemon
Tuucp
Tnetwork

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

H?P?Return-Path: <$g>
H?R?Received: $?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:
# HPosted-Date: $a
# H?l?Received-Date: $b
H?M?Resent-Message-Id: <$t.$i@$j>
H?M?Message-Id: <$t.$i@$j>

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


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

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

#################################
#  Final Output Post-rewriting  #
#################################
S4

R@			$@				handle <> error addr

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

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

# ENET must always be presented in its proper form
R$+@$-.ENET		$2::$1				u@h.ENET => h::u
# delete duplicate local names -- mostly for arpaproto.mc
R$+%$=w@$=w		$1@$3				u%ho@ho => u@ho
#R$+%$=w@$=w.ARPA	$1@$3.ARPA			u%ho@ho => u@ho
R$=S!$+@$=w		$1!$2				lho!u@ho => lho!u
R$=S::$+@$=w		$1::$2				lho::u@ho => lho::u

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

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

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

# make sure <@a,@b,@c:user@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$+@$=S$*		$:$1@$2.LOCAL			our own hosts
R$+:$*;@$+		$@$1:$2;@$3			list syntax
R$+@$+			$:$1<@$2>			focus on domain
R$+<$+@$+>		$1$2<@$3>			move gaze right
R$-!$+<@$~S>		$1!$2@$3			defocus - not local host
R$+<@$+.LOCAL>		$@$>6$1<@$2.LOCAL>		already canonical
R$+<@$+.ENET>		$@$>6$1<@$2.ENET>		already canonical
R$+<@$+.UUCP>		$@$>6$1<@$2.UUCP>		already canonical

# convert old-style addresses to a domain-based address
R$-::$+			$@$>6$2<@$1.ENET>		resolve enet names
R$+%$+			$@$>6$1<@$2>			user%host
R$-:$+			$@$>6$2<@$1>			host:user
R$-.$+			$@$>6$2<@$1>			host.user
R$+^$+			$1!$2				convert ^ to !
R$-!$+			$@$>6$2<@$1.UUCP>		resolve uucp names
R$-=$+			$@$>6$2<@$1.BITNET>		resolve bitnet names


############################################################
############################################################
#####
#####		RULESET ZERO PREAMBLE
#####
#####	The beginning of ruleset zero is constant through all
#####	configurations.
#####
#####		@(#)zerobase.m4	1.2	(ULTRIX)	2/8/85
#####
############################################################
############################################################

S0

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

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

# arrange for local names to be fully qualified
R$*<$*$=S>$*		$1<$2$3.LOCAL>$4		user@etherhost
#R$*<$+.ARPA.LOCAL>$*	$1<$2.ARPA>$3			because ARPA is a host

# now delete the local info
R$*<$*$=w.LOCAL>$*	$1<$2>$4			thishost.LOCAL
R$*<$*$=w.UUCP>$*	$1<$2>$4			thishost.UUCP
R$*<$*$=w.ENET>$*	$1<$2>$4			thishost.ENET
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

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


###############################################
###  Machine dependent part of rulset zero  ###
###############################################

# avoid enet or uucp to local hosts
R$*<@$=S.UUCP>$*	$1<@$2.LOCAL>$3			uucp => local
R$*<@$=S.ENET>$*	$1<@$2.LOCAL>$3			enet => local

# if we do not have enet, send to forwarder
R$+<@$+.ENET>$*		$:$?E$2::$1<@$E.LOCAL>$3$|$1<@$2.ENET>$3$.

# forward uucp we don't know to primary forwarder
R$*<@$~Z.UUCP>$*	$2!$1<@$Z.LOCAL>$3

# forward around hosts with communication problems
R$*<@$=F.LOCAL>$*	$2!$1<@$F.LOCAL>$3		reroute message
R$+!$+<@$=w.LOCAL>$*	$2<@$1.UUCP>$4			if we are forwarder

# resolve names we can handle locally

# first handle local network traffic double check that we know the host
R$*<@$~S.LOCAL>$*	$#error$:Host $2 not connected to $w via tcp
R$*<@$->$*		$#error$:Host $2 not connected to $w via tcp
R$*<@$*$-.LOCAL>$*	$#tcp$@$3$:$1<@$2$3.LOCAL>$4	user@tcphost.LOCAL

# handle uucp traffic.  double check that we know the host
R$*<@$~Z.UUCP>$*	$#error$:Host $2 not connected to $w via uucp
R<@$+.UUCP>:$+		$1!$2				to old format
R$+<@$+.UUCP>		$2!$1				to old format
R$-!$+			$#uucp$@$1$:$2			host!user

# handle enet stuff
R$+<@$+.ENET>		$#Dmail$@$2$:$1			enet user

# at this point, we are trying a local name.  if we don't
# recognize it, forward to name forwarder host
R$~N			$1<@$N.LOCAL>			not local, redirect
R$*<@$=w.LOCAL>$*	$1				but wait, there's more!
#							we are forwarder, hope
#							it's an alias!
R$*<@$*$-.LOCAL>$*	$#tcp$@$3$:$1<@$2$3.LOCAL>$4	let name forwarder do it

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

############################################################
############################################################
#####
#####		Local and Program Mailer specification
#####
#####		@(#)localm.m4	1.2	(ULTRIX)	2/8/85
#####
############################################################
############################################################

Mlocal,	P=/bin/mail, F=rlsDFmn, S=10, R=20, A=mail -d $u
Mprog,	P=/bin/sh,   F=lsDFRe,   S=10, R=20, A=sh -c $u

S10
R@			MAILER-DAEMON			errors to mailer-daemon

############################################################
############################################################
#####
#####		Mail-11 Mailer
#####
#####		@(#)xm.m4	1.1	(ULTRIX)	2/8/85
#####
############################################################
############################################################

MDmail,	P=/usr/bin/mail11, F=mnsF, S=17, R=18, A=mail11 $f $x $h $u

S17
R$+<@$-.LOCAL>		$2::$1				convert to enet style
R$=S::$+		$2				strip local names
R$+			$:$U::$1			add our name on

S18
R$+<@$-.LOCAL>		$2::$1				convert to enet style
R$=S::$+		$2				strip local names


############################################################
############################################################
#####
#####		Arpanet TCP Mailer specification
#####
#####		@(#)tcpm.m4	4.1		7/25/83
#####
############################################################
############################################################

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

S14

# pass <route-addr>'s through
R<@$+>$*		$@<@$1>$2			resolve <route-addr>

# map colons to dots everywhere.....
#R$*:$*			$1.$2				map colons to dots

# handle the simple case....
R$+<@$-.LOCAL>		$@$1<@$2.LOCAL>			user@host.LOCAL

# fully qualify computer center names so the rest works nicely
#R$+<@$+.CC>		$1<@$2.CC.LOCAL>		user@host.CC

# output local hosts in user%host@host syntax
R$+<@LOCAL>		$@$1<@$A>			local names
R$+<@$+.LOCAL>		$@$1%$2<@$A>			local hosts
R$+<@$*$=S>		$@$1%$2$3<@$A>
R$+<@$*$=Z>		$@$1%$2$3<@$A>

# handle other external cases
R$+<@$->		$@$1<@$2>			simple names
#R$+<@$+.$-.ARPA>	$@$1%$2<@$3.ARPA>		approximate something
R$+<@[$+]>		$@$1<@[$2]>			already ok

# convert remaining addresses to old format and externalize appropriately
R$+			$:$>5$1				=> old format
#R$-:$+			$@$1.$2<@$A>			convert berk hosts
R$+<@$+>		$@$1%$2<@$A>			pessmize
R$+			$:$1%$w<@$A>			tack on our hostname
R$+%$=R<@$=A>		$1<@$3>				strip unneeded relay

############################################################
############################################################
#####
#####		UUCP Mailer specification
#####
#####		@(#)uucpm.m4	1.2	(ULTRIX)	2/8/85
#####
############################################################
############################################################

############################################################
############################################################
#####
#####		Provide Backward Compatibility
#####
#####		@(#)compat.m4	1.2	(ULTRIX)	2/8/85
#####
############################################################
############################################################

#####################################################
#  General code to convert back to old style names  #
#####################################################
S5

R$+<@$-.LOCAL>		$2!$1				u@h.LOCAL => u
#R$+<@$-.CC>		$2:$1				u@h.CC => h:u
R$+<@$=Z>		$@$2!$1				u@bhost => h:u
#R$+<@$=C>		$@$2:$1				u@cchost => h:u
R$+<@$-.UUCP>		$2!$1				u@host.UUCP => host!u
R$+<@$-.ENET>		$2::$1				u@host.ENET => host::u
#R$+@$+.ARPA		$1@$2				u@host.ARPA => u@host


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

S13
R$+			$:$>5$1				convert to old style
R$=S!$+			$2				strip local name
#R$*<@$=S>$*		$1<@$2.Berkeley.ARPA>$3		resolve abbreviations
#R$*<@$=Z>$*		$1<@$2.Berkeley.ARPA>$3		resolve abbreviations
#R$*<@$->$*		$1<@$2.ARPA>$3			resolve abbreviations
R$+			$:$U!$1				stick on our host name
R$=w!$=R!$+		$:$1!$3				node!node:xxx

S23
R$+			$:$>5$1				convert to old style
#R$*<@$=S>$*		$1<@$2.Berkeley.ARPA>$3		resolve abbreviations
#R$*<@$=Z>$*		$1<@$2.Berkeley.ARPA>$3		resolve abbreviations
#R$*<@$->$*		$1<@$2.ARPA>$3			resolve abbreviations