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