164315Sericdivert(-1)
264315Seric#
364315Seric# Copyright (c) 1983 Eric P. Allman
464315Seric# Copyright (c) 1988, 1993
564315Seric#	The Regents of the University of California.  All rights reserved.
664315Seric#
764315Seric# %sccs.include.redist.sh%
864315Seric#
964315Sericdivert(0)
1064315Seric
11*64322SericVERSIONID(`@(#)nullrelay.m4	8.2 (Berkeley) 08/21/93')
1264315Seric
1364315Seric#
1464315Seric#  This configuration applies only to relay-only hosts.  They send
1564315Seric#  all mail to a hub without consideration of the address syntax
1664315Seric#  or semantics, except for adding the hub qualification to the
1764315Seric#  addresses.
1864315Seric#
19*64322Seric#	This is based on a prototype done by Bryan Costales of ICSI.
20*64322Seric#
2164315Seric
2264315Seric# hub host (to which all mail is sent)
2364315SericDH`'ifdef(`MAIL_HUB', MAIL_HUB,
2464315Seric	ifdef(`LOCAL_RELAY', LOCAL_RELAY,
2564315Seric	ifdef(`SMART_HOST', SMART_HOST)))
2664315Seric
2764315Seric# route-addr separators
2864315SericC: : ,
2964315Seric
3064315Sericundivert(6)dnl
3164315Seric
3264315Seric######################
3364315Seric#   Special macros   #
3464315Seric######################
3564315Seric
3664315Seric# SMTP initial login message
3764315SericDe`'confSMTP_LOGIN_MSG
3864315Seric
3964315Seric# UNIX initial From header format
4064315SericDl`'confFROM_LINE
4164315Seric
4264315Seric# my name for error messages
4364315SericDn`'confMAILER_NAME
4464315Seric
4564315Seric# delimiter (operator) characters
4664315SericDo`'confOPERATORS
4764315Seric
4864315Seric# format of a total name
4964315SericDq<$g>
5064315Sericinclude(`../m4/version.m4')
5164315Seric
5264315Seric###############
5364315Seric#   Options   #
5464315Seric###############
5564315Seric
5664315Seric# strip message body to 7 bits on input?
5764315SericO7`'confSEVEN_BIT_INPUT
5864315Seric
5964315Seric# no aliases here
6064315Seric
6164315Seric# substitution for space (blank) characters
6264315SericOB`'confBLANK_SUB
6364315Seric
6464315Seric# default delivery mode
6564315SericOd`'confDELIVERY_MODE
6664315Seric
6764315Seric# error message header/file
6864315Sericifdef(`confERROR_MESSAGE',
6964315Seric	OE`'confERROR_MESSAGE,
7064315Seric	#OE/etc/sendmail.oE)
7164315Seric
7264315Seric# error mode
7364315Sericifdef(`confERROR_MODE',
7464315Seric	Oe`'confERROR_MODE,
7564315Seric	#Oep)
7664315Seric
7764315Seric# save Unix-style "From_" lines at top of header?
7864315SericOf`'confSAVE_FROM_LINES
7964315Seric
8064315Seric# temporary file mode
8164315SericOF`'confTEMP_FILE_MODE
8264315Seric
8364315Seric# default GID
8464315SericOg`'confDEF_GROUP_ID
8564315Seric
8664315Seric# maximum hop count
8764315SericOh`'confMAX_HOP
8864315Seric
8964315Seric# location of help file
9064315SericOH`'ifdef(`HELP_FILE', HELP_FILE, /usr/lib/sendmail.hf)
9164315Seric
9264315Seric# ignore dots as terminators in incoming messages?
9364315SericOi`'confIGNORE_DOTS
9464315Seric
9564315Seric# Insist that the BIND name server be running to resolve names
9664315Sericifdef(`confBIND_OPTS',
9764315Seric	OI`'confBIND_OPTS,
9864315Seric	#OI)
9964315Seric
10064315Seric# deliver MIME-encapsulated error messages?
10164315SericOj`'confMIME_FORMAT_ERRORS
10264315Seric
10364315Seric# open connection cache size
10464315SericOk`'confMCI_CACHE_SIZE
10564315Seric
10664315Seric# open connection cache timeout
10764315SericOK`'confMCI_CACHE_TIMEOUT
10864315Seric
10964315Seric# use Errors-To: header?
11064315SericOl`'confUSE_ERRORS_TO
11164315Seric
11264315Seric# log level
11364315SericOL`'confLOG_LEVEL
11464315Seric
11564315Seric# send to me too, even in an alias expansion?
11664315SericOm`'confME_TOO
11764315Seric
11864315Seric# default messages to old style headers if no special punctuation?
11964315SericOo`'confOLD_STYLE_HEADERS
12064315Seric
12164315Seric# SMTP daemon options
12264315Sericifdef(`confDAEMON_OPTIONS',
12364315Seric	OO`'confDAEMON_OPTIONS,
12464315Seric	#OOPort=esmtp)
12564315Seric
12664315Seric# privacy flags
12764315SericOp`'confPRIVACY_FLAGS
12864315Seric
12964315Seric# who (if anyone) should get extra copies of error messages
13064315Sericifdef(`confCOPY_ERRORS_TO',
13164315Seric	OP`'confCOPY_ERRORS_TO,
13264315Seric	#OPPostmaster)
13364315Seric
13464315Seric# slope of queue-only function
13564315Sericifdef(`confQUEUE_FACTOR',
13664315Seric	Oq`'confQUEUE_FACTOR,
13764315Seric	#Oq600000)
13864315Seric
13964315Seric# queue directory
14064315SericOQ`'ifdef(`QUEUE_DIR', QUEUE_DIR, /var/spool/mqueue)
14164315Seric
14264315Seric# read timeout -- now OK per RFC 1123 section 5.3.2
14364315Sericifdef(`confREAD_TIMEOUT',
14464315Seric	Or`'confREAD_TIMEOUT,
14564315Seric	#Ordatablock=10m)
14664315Seric
14764315Seric# queue up everything before forking?
14864315SericOs`'confSAFE_QUEUE
14964315Seric
15064315Seric# status file
15164315SericOS`'ifdef(`STATUS_FILE', STATUS_FILE, /etc/sendmail.st)
15264315Seric
15364315Seric# default message timeout interval
15464315SericOT`'confMESSAGE_TIMEOUT
15564315Seric
15664315Seric# time zone handling:
15764315Seric#  if undefined, use system default
15864315Seric#  if defined but null, use TZ envariable passed in
15964315Seric#  if defined and non-null, use that info
16064315Sericifelse(confTIME_ZONE, `USE_SYSTEM', `#Ot',
16164315Seric	confTIME_ZONE, `USE_TZ', `',
16264315Seric	`Ot`'confTIME_ZONE')
16364315Seric
16464315Seric# default UID
16564315SericOu`'confDEF_USER_ID
16664315Seric
16764315Seric# deliver each queued job in a separate process?
16864315SericOY`'confSEPARATE_PROC
16964315Seric
17064315Seric# work class factor
17164315Sericifdef(`confWORK_CLASS_FACTOR',
17264315Seric	Oz`'confWORK_CLASS_FACTOR,
17364315Seric	#Oz1800)
17464315Seric
17564315Seric# work time factor
17664315Sericifdef(`confWORK_TIME_FACTOR',
17764315Seric	OZ`'confWORK_TIME_FACTOR,
17864315Seric	#OZ90000)
17964315Seric
18064315Seric###########################
18164315Seric#   Message precedences   #
18264315Seric###########################
18364315Seric
18464315SericPfirst-class=0
18564315SericPspecial-delivery=100
18664315SericPlist=-30
18764315SericPbulk=-60
18864315SericPjunk=-100
18964315Seric
19064315Seric#####################
19164315Seric#   Trusted users   #
19264315Seric#####################
19364315Seric
19464315SericTroot
19564315SericTdaemon
19664315SericTuucp
19764315Seric
19864315Seric#########################
19964315Seric#   Format of headers   #
20064315Seric#########################
20164315Seric
20264315SericH?P?Return-Path: $g
20364315SericHReceived: $?sfrom $s $.$?_($_) $.by $j ($v/$Z)$?r with $r$. id $i$?u for $u$.; $b
20464315SericH?D?Resent-Date: $a
20564315SericH?D?Date: $a
20664315SericH?F?Resent-From: $q
20764315SericH?F?From: $q
20864315SericH?x?Full-Name: $x
20964315SericHSubject:
21064315Seric# HPosted-Date: $a
21164315Seric# H?l?Received-Date: $b
21264315SericH?M?Resent-Message-Id: <$t.$i@$j>
21364315SericH?M?Message-Id: <$t.$i@$j>
21464315Seric#
21564315Seric######################################################################
21664315Seric######################################################################
21764315Seric#####
21864315Seric#####			REWRITING RULES
21964315Seric#####
22064315Seric######################################################################
22164315Seric######################################################################
22264315Seric
22364315Seric###########################################
22464315Seric###  Rulset 3 -- Name Canonicalization  ###
22564315Seric###########################################
22664315SericS3
22764315Seric
22864315Seric# handle null input and list syntax (translate to <@> special case)
22964315SericR$@			$@ <@>
23064315SericR$*:;$*			$@ $1 :; <@>
23164315Seric
23264315Seric# basic textual canonicalization -- note RFC733 heuristic here
23364315SericR$*<$*>$*<$*>$*		$2$3<$4>$5			strip multiple <> <>
23464315SericR$*<$*<$+>$*>$*		<$3>$5				2-level <> nesting
23564315SericR$*<>$*			$@ <@>				MAIL FROM:<> case
23664315SericR$*<$+>$*		$2				basic RFC821/822 parsing
23764315Seric
23864315Seric# eliminate local host if present
23964315SericR@ $=w $=: $+		$@ @ $H $2 $3			@thishost ...
24064315SericR@ $+			$@ $1				@somewhere ...
24164315Seric
24264315SericR$+ @ $=w		$@ $1 @ $H			...@thishost
24364315SericR$+ @ $+		$@ $1 @ $2			...@somewhere
24464315Seric
24564315SericR$=w ! $+		$@ $2 @ $H			thishost!...
24664315SericR$+ ! $+		$@ $1 ! $2 @ $H			somewhere ! ...
24764315Seric
24864315SericR$+ % $=w		$@ $1 @ $H			...%thishost
24964315SericR$+ % $+		$@ $1 @ $2			...%somewhere
25064315Seric
25164315SericR$+			$@ $1 @ $H			unadorned user
25264315Seric
25364315Seric
25464315Seric######################################
25564315Seric###   Ruleset 0 -- Parse Address   ###
25664315Seric######################################
25764315Seric
25864315SericS0
25964315Seric
26064315SericR$*:;<@>		$#error $@ USAGE $: "list:; syntax illegal for recipient addresses"
26164315Seric
26264315Seric# pass everything else to a relay host
26364315SericR$*			$#_RELAY_ $@ $H $: $1
26464315Seric
26564315Seric#
26664315Seric######################################################################
26764315Seric######################################################################
26864315Seric#####
26964315Seric`#####			MAILER DEFINITIONS'
27064315Seric#####
27164315Seric######################################################################
27264315Seric######################################################################
27364315Sericundivert(7)dnl
274