151225SericPUSHDIVERT(-1)
251225Seric#
351225Seric# Copyright (c) 1983 Eric P. Allman
462501Sbostic# Copyright (c) 1988, 1993
562501Sbostic#	The Regents of the University of California.  All rights reserved.
651225Seric#
751225Seric# %sccs.include.redist.sh%
851225Seric#
967469Sericifdef(`SMTP_MAILER_FLAGS',, `define(`SMTP_MAILER_FLAGS', `')')
10*67912Sericifdef(`SMTP_MAILER_ARGS',, `define(`SMTP_MAILER_ARGS', `IPC $h')')
11*67912Sericifdef(`ESMTP_MAILER_ARGS',, `define(`ESMTP_MAILER_ARGS', `IPC $h')')
12*67912Sericifdef(`SMTP8_MAILER_ARGS',, `define(`SMTP8_MAILER_ARGS', `IPC $h')')
13*67912Sericifdef(`RELAY_MAILER_ARGS',, `define(`RELAY_MAILER_ARGS', `IPC $h')')
1451225SericPOPDIVERT
1551225Seric#####################################
1651225Seric###   SMTP Mailer specification   ###
1751225Seric#####################################
1851225Seric
19*67912SericVERSIONID(`@(#)smtp.m4	8.18 (Berkeley) 11/13/94')
2051225Seric
2164748SericMsmtp,		P=[IPC], F=CONCAT(mDFMuX, SMTP_MAILER_FLAGS), S=11/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), E=\r\n,
22*67912Seric		L=990, ifdef(`SMTP_MAILER_MAX', `M=SMTP_MAILER_MAX, ')A=SMTP_MAILER_ARGS
2364748SericMesmtp,		P=[IPC], F=CONCAT(mDFMuXa, SMTP_MAILER_FLAGS), S=11/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), E=\r\n,
24*67912Seric		L=990, ifdef(`SMTP_MAILER_MAX', `M=SMTP_MAILER_MAX, ')A=ESMTP_MAILER_ARGS
25*67912SericMsmtp8,		P=[IPC], F=CONCAT(mDFMuX8, SMTP_MAILER_FLAGS), S=11/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), E=\r\n,
26*67912Seric		L=990, ifdef(`SMTP_MAILER_MAX', `M=SMTP_MAILER_MAX, ')A=SMTP8_MAILER_ARGS
27*67912SericMrelay,		P=[IPC], F=CONCAT(mDFMuXa8, SMTP_MAILER_FLAGS), S=11/31, R=61, E=\r\n,
28*67912Seric		L=2040, A=RELAY_MAILER_ARGS
2951225Seric
3064748Seric#
3164748Seric#  envelope sender and masquerading recipient rewriting
3264748Seric#
3351225SericS11
3464803SericR$+			$: $>51 $1			sender/recipient common
3564748SericR$* :; <@>		$@ $1 :;			list:; special case
3665196SericR$*			$@ $>61 $1			qualify unqual'ed names
3751225Seric
3864748Seric
3964748Seric#
4064748Seric#  header recipient rewriting if not masquerading recipients
4164748Seric#
4264748SericS21
4364748Seric
4451686Seric# do sender/recipient common rewriting
4564803SericR$+			$: $>51 $1
4651686Seric
4764748Seric# unqualified names (e.g., "eric") are qualified by local host
4858117SericR$* < @ $* > $*		$@ $1 < @ $2 > $3		already qualified
4964748SericR$+			$: $1 < @ $j >			add local domain
5051686Seric
5154018Seric
5264748Seric#
5364748Seric#  header sender and masquerading recipient rewriting
5464748Seric#
5564748SericS31
5664803SericR$+			$: $>51 $1			sender/recipient common
5764748SericR$* :; <@>		$@ $1 :;			list:; special case
5851686Seric
5964748Seric# do special header rewriting
6064748SericR$* <@> $*		$@ $1 <@> $2			pass null host through
6164748SericR< @ $* > $*		$@ < @ $1 > $2			pass route-addr through
6264748SericR$=E < @ $=w . >	$@ $1 < @ $2 >			exposed user as is
6366084SericR$* < @ $=w . >		$: $1 < @ $2 @ $M >		masquerade as domain
6466084SericR$* < @ $+ @ >		$@ $1 < @ $2 >			in case $M undefined
6566084SericR$* < @ $+ @ $+ >	$@ $1 < @ $3 >			$M is defined -- use it
6665196SericR$*			$@ $>61 $1			qualify unqual'ed names
6751686Seric
6851686Seric
6964748Seric#
7065217Seric#  convert pseudo-domain addresses to real domain addresses
7164748Seric#
7264803SericS51
7351686Seric
7451225Seric# pass <route-addr>s through
7551245SericR< @ $+ > $*		$@ < @ $1 > $2			resolve <route-addr>
7651225Seric
7751225Seric# output fake domains as user%fake@relay
7851225Sericifdef(`BITNET_RELAY',
7965175Seric`R$+ <@ $+ .BITNET. >	$: $1 % $2 .BITNET < @ $B >	user@host.BITNET
8065183SericR$+.BITNET <@ $+:$+ >	$: $1 .BITNET < @ $3 >		strip mailer: part',
8151225Seric	`dnl')
8265217Sericifdef(`_NO_UUCP_', `dnl', `
8365217Seric# do UUCP heuristics; note that these are shared with UUCP mailers
8465217SericR$+ < @ $+ .UUCP. >	$: < $2 ! > $1			convert to UUCP form
8565217SericR$+ < @ $* > $*		$@ $1 < @ $2 > $3		not UUCP form
8664748Seric
8765217Seric# leave these in .UUCP form to avoid further tampering
8865217SericR< $&h ! > $- ! $+	$@ $2 < @ $1 .UUCP. >
8965217SericR< $&h ! > $-.$+ ! $+	$@ $3 < @ $1.$2 >
9065217SericR< $&h ! > $+		$@ $1 < @ $&h .UUCP. >
9167606SericR< $+ ! > $+		$: $1 ! $2 < @ $j >
9265217SericR$+ < @ $+ : $+ >	$: $1 < @ $3 >			strip mailer: part')
9364748Seric
9465217Seric
9564748Seric#
9664748Seric#  common sender and masquerading recipient rewriting
9764748Seric#
9864803SericS61
9964803Seric
10065196SericR$* < @ $* > $*		$@ $1 < @ $2 > $3		already qualified
10164748SericR$=E			$@ $1 < @ $j>			show exposed names
10264748SericR$+			$: $1 < @ $M >			user w/o host
10364748SericR$+ <@>			$: $1 < @ $j >			in case $M undefined
104