1PUSHDIVERT(-1)
2#
3# Copyright (c) 1998-2000, 2004 Proofpoint, Inc. and its suppliers.
4#	All rights reserved.
5# Copyright (c) 1983 Eric P. Allman.  All rights reserved.
6# Copyright (c) 1988, 1993
7#	The Regents of the University of California.  All rights reserved.
8#
9# By using this file, you agree to the terms and conditions set
10# forth in the LICENSE file which can be found at the top level of
11# the sendmail distribution.
12#
13#
14_DEFIFNOT(`_DEF_LOCAL_MAILER_FLAGS', `lsDFMAw5:/|@q')
15_DEFIFNOT(`LOCAL_MAILER_FLAGS', `Prmn9')
16ifdef(`LOCAL_MAILER_PATH',, `define(`LOCAL_MAILER_PATH', /bin/mail)')
17ifdef(`LOCAL_MAILER_ARGS',, `define(`LOCAL_MAILER_ARGS', `mail -d $u')')
18ifdef(`LOCAL_MAILER_DSN_DIAGNOSTIC_CODE',, `define(`LOCAL_MAILER_DSN_DIAGNOSTIC_CODE', `X-Unix')')
19_DEFIFNOT(`_DEF_LOCAL_SHELL_FLAGS', `lsDFMoq')
20_DEFIFNOT(`LOCAL_SHELL_FLAGS', `eu9')
21ifdef(`LOCAL_SHELL_PATH',, `define(`LOCAL_SHELL_PATH', /bin/sh)')
22ifdef(`LOCAL_SHELL_ARGS',, `define(`LOCAL_SHELL_ARGS', `sh -c $u')')
23ifdef(`LOCAL_SHELL_DIR',, `define(`LOCAL_SHELL_DIR', `$z:/')')
24define(`LOCAL_RWR', `ifdef(`_LOCAL_LMTP_',
25`S=EnvFromSMTP/HdrFromL, R=EnvToL/HdrToL',
26`S=EnvFromL/HdrFromL, R=EnvToL/HdrToL')')
27define(`_LOCAL_QGRP', `ifelse(defn(`LOCAL_MAILER_QGRP'),`',`', ` Q=LOCAL_MAILER_QGRP,')')dnl
28define(`_PROG_QGRP', `ifelse(defn(`LOCAL_PROG_QGRP'),`',`', ` Q=LOCAL_PROG_QGRP,')')dnl
29POPDIVERT
30
31##################################################
32###   Local and Program Mailer specification   ###
33##################################################
34
35VERSIONID(`$Id: local.m4,v 8.60 2013-11-22 20:51:14 ca Exp $')
36
37#
38#  Envelope sender rewriting
39#
40SEnvFromL
41R<@>			$n			errors to mailer-daemon
42R@ <@ $*>		$n			temporarily bypass Sun bogosity
43R$+			$: $>AddDomain $1	add local domain if needed
44ifdef(`_LOCAL_NO_MASQUERADE_', `dnl', `dnl
45R$*			$: $>MasqEnv $1		do masquerading')
46
47#
48#  Envelope recipient rewriting
49#
50SEnvToL
51R$+ < @ $* >		$: $1			strip host part
52ifdef(`confUSERDB_SPEC', `dnl', `dnl
53R$+ + $*		$: < $&{addr_type} > $1 + $2	mark with addr type
54R<e s> $+ + $*		$: $1			remove +detail for sender
55R< $* > $+		$: $2			else remove mark')
56
57#
58#  Header sender rewriting
59#
60SHdrFromL
61R<@>			$n			errors to mailer-daemon
62R@ <@ $*>		$n			temporarily bypass Sun bogosity
63R$+			$: $>AddDomain $1	add local domain if needed
64ifdef(`_LOCAL_NO_MASQUERADE_', `dnl', `dnl
65R$*			$: $>MasqHdr $1		do masquerading')
66
67#
68#  Header recipient rewriting
69#
70SHdrToL
71R$+			$: $>AddDomain $1	add local domain if needed
72ifdef(`_ALL_MASQUERADE_', `dnl
73ifdef(`_LOCAL_NO_MASQUERADE_', `dnl', `dnl
74R$*			$: $>MasqHdr $1		do all-masquerading')',
75`R$* < @ *LOCAL* > $*	$: $1 < @ $j . > $2')
76
77#
78#  Common code to add local domain name (only if always-add-domain)
79#
80SAddDomain
81ifdef(`_ALWAYS_ADD_DOMAIN_', `dnl
82R$* < @ $* > $* 	$@ $1 < @ $2 > $3	already fully qualified
83ifelse(len(X`'_ALWAYS_ADD_DOMAIN_),`1',`
84R$+			$@ $1 < @ *LOCAL* >	add local qualification',
85`R$+			$@ $1 < @ _ALWAYS_ADD_DOMAIN_ >	add qualification')',
86`dnl')
87
88Mlocal,		P=LOCAL_MAILER_PATH, F=_MODMF_(CONCAT(_DEF_LOCAL_MAILER_FLAGS, LOCAL_MAILER_FLAGS), `LOCAL'), LOCAL_RWR,_OPTINS(`LOCAL_MAILER_EOL', ` E=', `, ')
89		_OPTINS(`LOCAL_MAILER_MAX', `M=', `, ')_OPTINS(`LOCAL_MAILER_MAXMSGS', `m=', `, ')_OPTINS(`LOCAL_MAILER_MAXRCPTS', `r=', `, ')_OPTINS(`LOCAL_MAILER_CHARSET', `C=', `, ')T=DNS/RFC822/LOCAL_MAILER_DSN_DIAGNOSTIC_CODE,_LOCAL_QGRP
90		A=LOCAL_MAILER_ARGS
91Mprog,		P=LOCAL_SHELL_PATH, F=_MODMF_(CONCAT(_DEF_LOCAL_SHELL_FLAGS, LOCAL_SHELL_FLAGS), `SHELL'), S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, D=LOCAL_SHELL_DIR,
92		_OPTINS(`LOCAL_MAILER_MAX', `M=', `, ')T=X-Unix/X-Unix/X-Unix,_PROG_QGRP
93		A=LOCAL_SHELL_ARGS
94