1divert(-1)
2#
3# Copyright (c) 1983 Eric P. Allman
4# Copyright (c) 1988, 1993
5#	The Regents of the University of California.  All rights reserved.
6#
7# %sccs.include.redist.sh%
8#
9divert(0)
10
11VERSIONID(`@(#)nullrelay.m4	8.6 (Berkeley) 07/23/94')
12
13#
14#  This configuration applies only to relay-only hosts.  They send
15#  all mail to a hub without consideration of the address syntax
16#  or semantics, except for adding the hub qualification to the
17#  addresses.
18#
19#	This is based on a prototype done by Bryan Costales of ICSI.
20#
21
22# hub host (to which all mail is sent)
23DH`'ifdef(`MAIL_HUB', MAIL_HUB,
24	`errprint(`MAIL_HUB not defined for nullclient feature')')
25
26# name from which everyone will appear to come
27DM`'ifdef(`MASQUERADE_NAME', MASQUERADE_NAME, MAIL_HUB)
28
29# route-addr separators
30C: : ,
31
32undivert(6)dnl
33
34######################
35#   Special macros   #
36######################
37
38# SMTP initial login message
39De`'confSMTP_LOGIN_MSG
40
41# UNIX initial From header format
42Dl`'confFROM_LINE
43
44# my name for error messages
45Dn`'confMAILER_NAME
46
47# delimiter (operator) characters
48Do`'confOPERATORS
49
50# format of a total name
51Dq<$g>
52include(`../m4/version.m4')
53
54###############
55#   Options   #
56###############
57
58# strip message body to 7 bits on input?
59O7`'confSEVEN_BIT_INPUT
60
61# eight bit data handling
62O8`'confEIGHT_BIT_HANDLING
63
64# no aliases here
65
66# substitution for space (blank) characters
67OB`'confBLANK_SUB
68
69# default delivery mode
70Od`'confDELIVERY_MODE
71
72# error message header/file
73ifdef(`confERROR_MESSAGE',
74	OE`'confERROR_MESSAGE,
75	#OE/etc/sendmail.oE)
76
77# error mode
78ifdef(`confERROR_MODE',
79	Oe`'confERROR_MODE,
80	#Oep)
81
82# save Unix-style "From_" lines at top of header?
83Of`'confSAVE_FROM_LINES
84
85# temporary file mode
86OF`'confTEMP_FILE_MODE
87
88# default GID
89Og`'confDEF_GROUP_ID
90
91# maximum hop count
92Oh`'confMAX_HOP
93
94# location of help file
95OH`'ifdef(`HELP_FILE', HELP_FILE, /usr/lib/sendmail.hf)
96
97# ignore dots as terminators in incoming messages?
98Oi`'confIGNORE_DOTS
99
100# Insist that the BIND name server be running to resolve names
101ifdef(`confBIND_OPTS',
102	OI`'confBIND_OPTS,
103	#OI)
104
105# deliver MIME-encapsulated error messages?
106Oj`'confMIME_FORMAT_ERRORS
107
108# open connection cache size
109Ok`'confMCI_CACHE_SIZE
110
111# open connection cache timeout
112OK`'confMCI_CACHE_TIMEOUT
113
114# use Errors-To: header?
115Ol`'confUSE_ERRORS_TO
116
117# log level
118OL`'confLOG_LEVEL
119
120# send to me too, even in an alias expansion?
121Om`'confME_TOO
122
123# default messages to old style headers if no special punctuation?
124Oo`'confOLD_STYLE_HEADERS
125
126# SMTP daemon options
127ifdef(`confDAEMON_OPTIONS',
128	OO`'confDAEMON_OPTIONS,
129	#OOPort=esmtp)
130
131# privacy flags
132Op`'confPRIVACY_FLAGS
133
134# who (if anyone) should get extra copies of error messages
135ifdef(`confCOPY_ERRORS_TO',
136	OP`'confCOPY_ERRORS_TO,
137	#OPPostmaster)
138
139# slope of queue-only function
140ifdef(`confQUEUE_FACTOR',
141	Oq`'confQUEUE_FACTOR,
142	#Oq600000)
143
144# queue directory
145OQ`'ifdef(`QUEUE_DIR', QUEUE_DIR, /var/spool/mqueue)
146
147# read timeout -- now OK per RFC 1123 section 5.3.2
148ifdef(`confREAD_TIMEOUT',
149	Or`'confREAD_TIMEOUT,
150	#Ordatablock=10m)
151
152# queue up everything before forking?
153Os`'confSAFE_QUEUE
154
155# status file
156OS`'ifdef(`STATUS_FILE', STATUS_FILE, /etc/sendmail.st)
157
158# default message timeout interval
159OT`'confMESSAGE_TIMEOUT
160
161# time zone handling:
162#  if undefined, use system default
163#  if defined but null, use TZ envariable passed in
164#  if defined and non-null, use that info
165ifelse(confTIME_ZONE, `USE_SYSTEM', `#Ot',
166	confTIME_ZONE, `USE_TZ', `Ot',
167	`Ot`'confTIME_ZONE')
168
169# default UID
170Ou`'confDEF_USER_ID
171
172# deliver each queued job in a separate process?
173OY`'confSEPARATE_PROC
174
175# work class factor
176ifdef(`confWORK_CLASS_FACTOR',
177	Oz`'confWORK_CLASS_FACTOR,
178	#Oz1800)
179
180# work time factor
181ifdef(`confWORK_TIME_FACTOR',
182	OZ`'confWORK_TIME_FACTOR,
183	#OZ90000)
184
185###########################
186#   Message precedences   #
187###########################
188
189Pfirst-class=0
190Pspecial-delivery=100
191Plist=-30
192Pbulk=-60
193Pjunk=-100
194
195#####################
196#   Trusted users   #
197#####################
198
199Troot
200Tdaemon
201Tuucp
202
203#########################
204#   Format of headers   #
205#########################
206
207H?P?Return-Path: $g
208HReceived: $?sfrom $s $.$?_($_) $.by $j ($v/$Z)$?r with $r$. id $i$?u for $u$.; $b
209H?D?Resent-Date: $a
210H?D?Date: $a
211H?F?Resent-From: $q
212H?F?From: $q
213H?x?Full-Name: $x
214HSubject:
215# HPosted-Date: $a
216# H?l?Received-Date: $b
217H?M?Resent-Message-Id: <$t.$i@$j>
218H?M?Message-Id: <$t.$i@$j>
219#
220######################################################################
221######################################################################
222#####
223#####			REWRITING RULES
224#####
225######################################################################
226######################################################################
227
228###########################################
229###  Rulset 3 -- Name Canonicalization  ###
230###########################################
231S3
232
233# handle null input and list syntax (translate to <@> special case)
234R$@			$@ <@>
235R$*:;$*			$@ $1 :; <@>
236
237# basic textual canonicalization -- note RFC733 heuristic here
238R$*<$*>$*<$*>$*		$2$3<$4>$5			strip multiple <> <>
239R$*<$*<$+>$*>$*		<$3>$5				2-level <> nesting
240R$*<>$*			$@ <@>				MAIL FROM:<> case
241R$*<$+>$*		$2				basic RFC821/822 parsing
242
243ifdef(`_NO_CANONIFY_', `dnl',
244`# eliminate local host if present
245R@ $=w $=: $+		$@ @ $M $2 $3			@thishost ...
246R@ $+			$@ @ $1				@somewhere ...
247
248R$+ @ $=w		$@ $1 @ $M			...@thishost
249R$+ @ $+		$@ $1 @ $2			...@somewhere
250
251R$=w ! $+		$@ $2 @ $M			thishost!...
252R$+ ! $+		$@ $1 ! $2 @ $M			somewhere ! ...
253
254R$+ % $=w		$@ $1 @ $M			...%thishost
255R$+ % $+		$@ $1 @ $2			...%somewhere
256
257R$+			$@ $1 @ $M			unadorned user')
258
259
260######################################
261###   Ruleset 0 -- Parse Address   ###
262######################################
263
264S0
265
266R$*:;<@>		$#error $@ USAGE $: "list:; syntax illegal for recipient addresses"
267
268# pass everything else to a relay host
269R$*			$#_RELAY_ $@ $H $: $1
270
271#
272######################################################################
273######################################################################
274#####
275`#####			MAILER DEFINITIONS'
276#####
277######################################################################
278######################################################################
279undivert(7)dnl
280