1PUSHDIVERT(-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#
9
10ifdef(`UUCP_MAILER_PATH',, `define(`UUCP_MAILER_PATH', /usr/bin/uux)')
11ifdef(`UUCP_MAILER_ARGS',, `define(`UUCP_MAILER_ARGS', `uux - -r -a$g -gC $h!rmail ($u)')')
12ifdef(`UUCP_MAILER_FLAGS',, `define(`UUCP_MAILER_FLAGS', `')')
13ifdef(`UUCP_MAX_SIZE',, `define(`UUCP_MAX_SIZE', 100000)')
14POPDIVERT
15#####################################
16###   UUCP Mailer specification   ###
17#####################################
18
19VERSIONID(`@(#)uucp.m4	8.20 (Berkeley) 04/10/95')
20
21#
22#  There are innumerable variations on the UUCP mailer.  It really
23#  is rather absurd.
24#
25
26# old UUCP mailer (two names)
27Muucp,		P=UUCP_MAILER_PATH, F=CONCAT(DFMhuUd, UUCP_MAILER_FLAGS), S=12, R=22/42, M=UUCP_MAX_SIZE, T=X-UUCP,
28		A=UUCP_MAILER_ARGS
29Muucp-old,	P=UUCP_MAILER_PATH, F=CONCAT(DFMhuUd, UUCP_MAILER_FLAGS), S=12, R=22/42, M=UUCP_MAX_SIZE, T=X-UUCP,
30		A=UUCP_MAILER_ARGS
31
32# smart UUCP mailer (handles multiple addresses) (two names)
33Msuucp,		P=UUCP_MAILER_PATH, F=CONCAT(mDFMhuUd, UUCP_MAILER_FLAGS), S=12, R=22/42, M=UUCP_MAX_SIZE, T=X-UUCP,
34		A=UUCP_MAILER_ARGS
35Muucp-new,	P=UUCP_MAILER_PATH, F=CONCAT(mDFMhuUd, UUCP_MAILER_FLAGS), S=12, R=22/42, M=UUCP_MAX_SIZE, T=X-UUCP,
36		A=UUCP_MAILER_ARGS
37
38ifdef(`_MAILER_smtp_',
39`# domain-ized UUCP mailer
40Muucp-dom,	P=UUCP_MAILER_PATH, F=CONCAT(mDFMhud, UUCP_MAILER_FLAGS), S=52/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), M=UUCP_MAX_SIZE, T=X-UUCP,
41		A=UUCP_MAILER_ARGS
42
43# domain-ized UUCP mailer with UUCP-style sender envelope
44Muucp-uudom,	P=UUCP_MAILER_PATH, F=CONCAT(mDFMhud, UUCP_MAILER_FLAGS), S=72/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), M=UUCP_MAX_SIZE, T=X-UUCP,
45		A=UUCP_MAILER_ARGS')
46
47
48#
49#  envelope and header sender rewriting
50#
51S12
52
53# handle error address as a special case
54R<@>				$n			errors to mailer-daemon
55
56# list:; syntax should disappear
57R:; <@>				$@
58
59R$* < @ $* . >			$1 < @ $2 >		strip trailing dots
60R$* < @ $=w >			$1			strip local name
61R<@ $- . UUCP > : $+		$1 ! $2			convert to UUCP format
62R<@ $+ > : $+			$1 ! $2			convert to UUCP format
63R$* < @ $- . UUCP >		$2 ! $1			convert to UUCP format
64R$* < @ $+ >			$2 ! $1			convert to UUCP format
65R$&h ! $+ ! $+			$@ $1 ! $2		$h!...!user => ...!user
66R$&h ! $+			$@ $&h ! $1		$h!user => $h!user
67R$+				$: $U ! $1		prepend our name
68R! $+				$: $k ! $1		in case $U undefined
69
70#
71#  envelope recipient rewriting
72#
73S22
74
75# list:; should disappear
76R:; <@>				$@
77
78R$* < @ $* . >			$1 < @ $2 >		strip trailing dots
79R$* < @ $j >			$1			strip local name
80R<@ $- . UUCP > : $+		$1 ! $2			convert to UUCP format
81R<@ $+ > : $+			$1 ! $2			convert to UUCP format
82R$* < @ $- . UUCP >		$2 ! $1			convert to UUCP format
83R$* < @ $+ >			$2 ! $1			convert to UUCP format
84
85#
86#  header recipient rewriting
87#
88S42
89
90# list:; syntax should disappear
91R:; <@>				$@
92
93R$* < @ $* . >			$1 < @ $2 >		strip trailing dots
94R$* < @ $j >			$1			strip local name
95R<@ $- . UUCP > : $+		$1 ! $2			convert to UUCP format
96R<@ $+ > : $+			$1 ! $2			convert to UUCP format
97R$* < @ $- . UUCP >		$2 ! $1			convert to UUCP format
98R$* < @ $+ >			$2 ! $1			convert to UUCP format
99R$&h ! $+ ! $+			$@ $1 ! $2		$h!...!user => ...!user
100R$&h ! $+			$@ $&h ! $1		$h!user => $h!user
101R$+				$: $U ! $1		prepend our name
102R! $+				$: $k ! $1		in case $U undefined
103
104
105ifdef(`_MAILER_smtp_',
106`#
107#  envelope sender rewriting for uucp-dom mailer
108#
109S52
110
111# handle error address as a special case
112R<@>				$n			errors to mailer-daemon
113
114# pass everything to standard SMTP mailer rewriting
115R$*				$@ $>11 $1
116
117#
118#  envelope sender rewriting for uucp-uudom mailer
119#
120S72
121
122# handle error address as a special case
123R<@>				$n			errors to mailer-daemon
124
125# list:; syntax should disappear
126R:; <@>				$@
127
128R$* < @ $* . >			$1 < @ $2 >		strip trailing dots
129R$* < @ $=w >			$1			strip local name
130R<@ $- . UUCP > : $+		$1 ! $2			convert to UUCP format
131R<@ $+ > : $+			$1 ! $2			convert to UUCP format
132R$* < @ $- . UUCP >		$2 ! $1			convert to UUCP format
133R$* < @ $+ >			$@ $2 ! $1		convert to UUCP format
134
135R$&h ! $+ ! $+			$@ $1 ! $2		$h!...!user => ...!user
136R$&h ! $+			$@ $&h ! $1		$h!user => $h!user
137R$+				$: $M ! $1		prepend masquerade name
138R! $+				$: $j ! $1		in case $M undefined')
139
140
141PUSHDIVERT(4)
142# resolve locally connected UUCP links
143R$* < @ $=Z . UUCP. > $*	$#uucp-uudom $@ $2 $: $1 < @ $2 .UUCP. > $3
144R$* < @ $=Y . UUCP. > $*	$#uucp-new $@ $2 $: $1 < @ $2 .UUCP. > $3
145R$* < @ $=U . UUCP. > $*	$#uucp-old $@ $2 $: $1 < @ $2 .UUCP. > $3
146POPDIVERT
147