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#
959766Sericifdef(`SMTP_MAILER_FLAGS',,
1059766Seric	`define(`SMTP_MAILER_FLAGS',
1159766Seric		`ifdef(`_OLD_SENDMAIL_', `L', `')')')
1251225SericPOPDIVERT
1351225Seric#####################################
1451225Seric###   SMTP Mailer specification   ###
1551225Seric#####################################
1651225Seric
17*66084SericVERSIONID(`@(#)smtp.m4	8.15 (Berkeley) 02/14/94')
1851225Seric
1964748SericMsmtp,		P=[IPC], F=CONCAT(mDFMuX, SMTP_MAILER_FLAGS), S=11/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), E=\r\n,
2065875Seric		ifdef(`_OLD_SENDMAIL_',, `L=990, ')ifdef(`SMTP_MAILER_MAX', `M=SMTP_MAILER_MAX, ')A=IPC $h
2164748SericMesmtp,		P=[IPC], F=CONCAT(mDFMuXa, SMTP_MAILER_FLAGS), S=11/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), E=\r\n,
2265875Seric		ifdef(`_OLD_SENDMAIL_',, `L=990, ')ifdef(`SMTP_MAILER_MAX', `M=SMTP_MAILER_MAX, ')A=IPC $h
2365196SericMrelay,		P=[IPC], F=CONCAT(mDFMuXa, SMTP_MAILER_FLAGS), S=11/31, R=61, E=\r\n,
2459766Seric		ifdef(`_OLD_SENDMAIL_',, `L=2040, ')A=IPC $h
2551225Seric
2664748Seric#
2764748Seric#  envelope sender and masquerading recipient rewriting
2864748Seric#
2951225SericS11
3064803SericR$+			$: $>51 $1			sender/recipient common
3164748SericR$* :; <@>		$@ $1 :;			list:; special case
3265196SericR$*			$@ $>61 $1			qualify unqual'ed names
3351225Seric
3464748Seric
3564748Seric#
3664748Seric#  header recipient rewriting if not masquerading recipients
3764748Seric#
3864748SericS21
3964748Seric
4051686Seric# do sender/recipient common rewriting
4164803SericR$+			$: $>51 $1
4251686Seric
4364748Seric# unqualified names (e.g., "eric") are qualified by local host
4458117SericR$* < @ $* > $*		$@ $1 < @ $2 > $3		already qualified
4564748SericR$+			$: $1 < @ $j >			add local domain
4651686Seric
4754018Seric
4864748Seric#
4964748Seric#  header sender and masquerading recipient rewriting
5064748Seric#
5164748SericS31
5264803SericR$+			$: $>51 $1			sender/recipient common
5364748SericR$* :; <@>		$@ $1 :;			list:; special case
5451686Seric
5564748Seric# do special header rewriting
5664748SericR$* <@> $*		$@ $1 <@> $2			pass null host through
5764748SericR< @ $* > $*		$@ < @ $1 > $2			pass route-addr through
5864748SericR$=E < @ $=w . >	$@ $1 < @ $2 >			exposed user as is
59*66084SericR$* < @ $=w . >		$: $1 < @ $2 @ $M >		masquerade as domain
60*66084SericR$* < @ $+ @ >		$@ $1 < @ $2 >			in case $M undefined
61*66084SericR$* < @ $+ @ $+ >	$@ $1 < @ $3 >			$M is defined -- use it
6265196SericR$*			$@ $>61 $1			qualify unqual'ed names
6351686Seric
6451686Seric
6564748Seric#
6665217Seric#  convert pseudo-domain addresses to real domain addresses
6764748Seric#
6864803SericS51
6951686Seric
7051225Seric# pass <route-addr>s through
7151245SericR< @ $+ > $*		$@ < @ $1 > $2			resolve <route-addr>
7251225Seric
7351225Seric# output fake domains as user%fake@relay
7451225Sericifdef(`BITNET_RELAY',
7565175Seric`R$+ <@ $+ .BITNET. >	$: $1 % $2 .BITNET < @ $B >	user@host.BITNET
7665183SericR$+.BITNET <@ $+:$+ >	$: $1 .BITNET < @ $3 >		strip mailer: part',
7751225Seric	`dnl')
7865217Sericifdef(`_NO_UUCP_', `dnl', `
7965217Seric# do UUCP heuristics; note that these are shared with UUCP mailers
8065217SericR$+ < @ $+ .UUCP. >	$: < $2 ! > $1			convert to UUCP form
8165217SericR$+ < @ $* > $*		$@ $1 < @ $2 > $3		not UUCP form
8264748Seric
8365217Seric# leave these in .UUCP form to avoid further tampering
8465217SericR< $&h ! > $- ! $+	$@ $2 < @ $1 .UUCP. >
8565217SericR< $&h ! > $-.$+ ! $+	$@ $3 < @ $1.$2 >
8665217SericR< $&h ! > $+		$@ $1 < @ $&h .UUCP. >
8765217SericR< $+ ! > $+		$: $1 ! $2 < @ $Y >
8865217SericR$+ < @ >		$: $1 < @ $j >			in case $Y undefined
8965217SericR$+ < @ $+ : $+ >	$: $1 < @ $3 >			strip mailer: part')
9064748Seric
9165217Seric
9264748Seric#
9364748Seric#  common sender and masquerading recipient rewriting
9464748Seric#
9564803SericS61
9664803Seric
9765196SericR$* < @ $* > $*		$@ $1 < @ $2 > $3		already qualified
9864748SericR$=E			$@ $1 < @ $j>			show exposed names
9964748SericR$+			$: $1 < @ $M >			user w/o host
10064748SericR$+ <@>			$: $1 < @ $j >			in case $M undefined
101