138032SpeterPUSHDIVERT(-1) 238032Speter# 3261363Sgshapiro# Copyright (c) 1998-2001, 2006 Proofpoint, Inc. and its suppliers. 464562Sgshapiro# All rights reserved. 538032Speter# Copyright (c) 1983 Eric P. Allman. All rights reserved. 638032Speter# Copyright (c) 1988, 1993 738032Speter# The Regents of the University of California. All rights reserved. 838032Speter# 938032Speter# By using this file, you agree to the terms and conditions set 1038032Speter# forth in the LICENSE file which can be found at the top level of 1138032Speter# the sendmail distribution. 1238032Speter# 1338032Speter# 1464562Sgshapiro_DEFIFNOT(`_DEF_SMTP_MAILER_FLAGS', `mDFMuX') 1564562Sgshapiro_DEFIFNOT(`SMTP_MAILER_FLAGS',`') 16168515Sgshapiro_DEFIFNOT(`SMTP_MAILER_LL',`990') 17168515Sgshapiro_DEFIFNOT(`RELAY_MAILER_LL',`2040') 1864562Sgshapiro_DEFIFNOT(`RELAY_MAILER_FLAGS', `SMTP_MAILER_FLAGS') 1964562Sgshapiroifdef(`SMTP_MAILER_ARGS',, `define(`SMTP_MAILER_ARGS', `TCP $h')') 2064562Sgshapiroifdef(`ESMTP_MAILER_ARGS',, `define(`ESMTP_MAILER_ARGS', `TCP $h')') 2164562Sgshapiroifdef(`SMTP8_MAILER_ARGS',, `define(`SMTP8_MAILER_ARGS', `TCP $h')') 2264562Sgshapiroifdef(`DSMTP_MAILER_ARGS',, `define(`DSMTP_MAILER_ARGS', `TCP $h')') 2364562Sgshapiroifdef(`RELAY_MAILER_ARGS',, `define(`RELAY_MAILER_ARGS', `TCP $h')') 2490792Sgshapirodefine(`_SMTP_QGRP', `ifelse(defn(`SMTP_MAILER_QGRP'),`',`', ` Q=SMTP_MAILER_QGRP,')')dnl 2590792Sgshapirodefine(`_ESMTP_QGRP', `ifelse(defn(`ESMTP_MAILER_QGRP'),`',`', ` Q=ESMTP_MAILER_QGRP,')')dnl 2690792Sgshapirodefine(`_SMTP8_QGRP', `ifelse(defn(`SMTP8_MAILER_QGRP'),`',`', ` Q=SMTP8_MAILER_QGRP,')')dnl 2790792Sgshapirodefine(`_DSMTP_QGRP', `ifelse(defn(`DSMTP_MAILER_QGRP'),`',`', ` Q=DSMTP_MAILER_QGRP,')')dnl 2890792Sgshapirodefine(`_RELAY_QGRP', `ifelse(defn(`RELAY_MAILER_QGRP'),`',`', ` Q=RELAY_MAILER_QGRP,')')dnl 2938032SpeterPOPDIVERT 3038032Speter##################################### 3138032Speter### SMTP Mailer specification ### 3238032Speter##################################### 3338032Speter 34266692SgshapiroVERSIONID(`$Id: smtp.m4,v 8.66 2013-11-22 20:51:14 ca Exp $') 3538032Speter 3638032Speter# 3764562Sgshapiro# common sender and masquerading recipient rewriting 3838032Speter# 3990792SgshapiroSMasqSMTP 4064562SgshapiroR$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified 4164562SgshapiroR$+ $@ $1 < @ *LOCAL* > add local qualification 4238032Speter 4338032Speter# 4438032Speter# convert pseudo-domain addresses to real domain addresses 4538032Speter# 4690792SgshapiroSPseudoToReal 4738032Speter 4838032Speter# pass <route-addr>s through 4938032SpeterR< @ $+ > $* $@ < @ $1 > $2 resolve <route-addr> 5038032Speter 5138032Speter# output fake domains as user%fake@relay 5238032Speterifdef(`BITNET_RELAY', 5338032Speter`R$+ <@ $+ .BITNET. > $: $1 % $2 .BITNET < @ $B > user@host.BITNET 5490792SgshapiroR$+.BITNET <@ $~[ $*:$+ > $: $1 .BITNET < @ $4 > strip mailer: part', 5538032Speter `dnl') 5638032Speterifdef(`_NO_UUCP_', `dnl', ` 5738032Speter# do UUCP heuristics; note that these are shared with UUCP mailers 5838032SpeterR$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form 5938032SpeterR$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form 6038032Speter 6138032Speter# leave these in .UUCP form to avoid further tampering 6238032SpeterR< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. > 6338032SpeterR< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 > 6438032SpeterR< $&h ! > $+ $@ $1 < @ $&h .UUCP. > 6538032SpeterR< $+ ! > $+ $: $1 ! $2 < @ $Y > use UUCP_RELAY 6690792SgshapiroR$+ < @ $~[ $* : $+ > $@ $1 < @ $4 > strip mailer: part 6738032SpeterR$+ < @ > $: $1 < @ *LOCAL* > if no UUCP_RELAY') 6838032Speter 6938032Speter 7038032Speter# 7164562Sgshapiro# envelope sender rewriting 7238032Speter# 7390792SgshapiroSEnvFromSMTP 7464562SgshapiroR$+ $: $>PseudoToReal $1 sender/recipient common 7564562SgshapiroR$* :; <@> $@ list:; special case 7664562SgshapiroR$* $: $>MasqSMTP $1 qualify unqual'ed names 7764562SgshapiroR$+ $: $>MasqEnv $1 do masquerading 7838032Speter 7938032Speter 8064562Sgshapiro# 8164562Sgshapiro# envelope recipient rewriting -- 8264562Sgshapiro# also header recipient if not masquerading recipients 8364562Sgshapiro# 8490792SgshapiroSEnvToSMTP 8564562SgshapiroR$+ $: $>PseudoToReal $1 sender/recipient common 8664562SgshapiroR$+ $: $>MasqSMTP $1 qualify unqual'ed names 8764562SgshapiroR$* < @ *LOCAL* > $* $: $1 < @ $j . > $2 8838032Speter 8938032Speter# 9064562Sgshapiro# header sender and masquerading header recipient rewriting 9164562Sgshapiro# 9290792SgshapiroSHdrFromSMTP 9364562SgshapiroR$+ $: $>PseudoToReal $1 sender/recipient common 9464562SgshapiroR:; <@> $@ list:; special case 9564562Sgshapiro 9664562Sgshapiro# do special header rewriting 9764562SgshapiroR$* <@> $* $@ $1 <@> $2 pass null host through 9864562SgshapiroR< @ $* > $* $@ < @ $1 > $2 pass route-addr through 9964562SgshapiroR$* $: $>MasqSMTP $1 qualify unqual'ed names 10064562SgshapiroR$+ $: $>MasqHdr $1 do masquerading 10164562Sgshapiro 10264562Sgshapiro 10364562Sgshapiro# 10438032Speter# relay mailer header masquerading recipient rewriting 10538032Speter# 10690792SgshapiroSMasqRelay 10764562SgshapiroR$+ $: $>MasqSMTP $1 10864562SgshapiroR$+ $: $>MasqHdr $1 10938032Speter 110168515SgshapiroMsmtp, P=[IPC], F=_MODMF_(CONCAT(_DEF_SMTP_MAILER_FLAGS, SMTP_MAILER_FLAGS), `SMTP'), S=EnvFromSMTP/HdrFromSMTP, R=ifdef(`_ALL_MASQUERADE_', `EnvToSMTP/HdrFromSMTP', `EnvToSMTP'), E=\r\n, L=SMTP_MAILER_LL, 11190792Sgshapiro _OPTINS(`SMTP_MAILER_MAX', `M=', `, ')_OPTINS(`SMTP_MAILER_MAXMSGS', `m=', `, ')_OPTINS(`SMTP_MAILER_MAXRCPTS', `r=', `, ')_OPTINS(`SMTP_MAILER_CHARSET', `C=', `, ')T=DNS/RFC822/SMTP,_SMTP_QGRP 11264562Sgshapiro A=SMTP_MAILER_ARGS 113168515SgshapiroMesmtp, P=[IPC], F=_MODMF_(CONCAT(_DEF_SMTP_MAILER_FLAGS, `a', SMTP_MAILER_FLAGS), `ESMTP'), S=EnvFromSMTP/HdrFromSMTP, R=ifdef(`_ALL_MASQUERADE_', `EnvToSMTP/HdrFromSMTP', `EnvToSMTP'), E=\r\n, L=SMTP_MAILER_LL, 11490792Sgshapiro _OPTINS(`SMTP_MAILER_MAX', `M=', `, ')_OPTINS(`SMTP_MAILER_MAXMSGS', `m=', `, ')_OPTINS(`SMTP_MAILER_MAXRCPTS', `r=', `, ')_OPTINS(`SMTP_MAILER_CHARSET', `C=', `, ')T=DNS/RFC822/SMTP,_ESMTP_QGRP 11564562Sgshapiro A=ESMTP_MAILER_ARGS 116168515SgshapiroMsmtp8, P=[IPC], F=_MODMF_(CONCAT(_DEF_SMTP_MAILER_FLAGS, `8', SMTP_MAILER_FLAGS), `SMTP8'), S=EnvFromSMTP/HdrFromSMTP, R=ifdef(`_ALL_MASQUERADE_', `EnvToSMTP/HdrFromSMTP', `EnvToSMTP'), E=\r\n, L=SMTP_MAILER_LL, 11790792Sgshapiro _OPTINS(`SMTP_MAILER_MAX', `M=', `, ')_OPTINS(`SMTP_MAILER_MAXMSGS', `m=', `, ')_OPTINS(`SMTP_MAILER_MAXRCPTS', `r=', `, ')_OPTINS(`SMTP_MAILER_CHARSET', `C=', `, ')T=DNS/RFC822/SMTP,_SMTP8_QGRP 11864562Sgshapiro A=SMTP8_MAILER_ARGS 119168515SgshapiroMdsmtp, P=[IPC], F=_MODMF_(CONCAT(_DEF_SMTP_MAILER_FLAGS, `a%', SMTP_MAILER_FLAGS), `DSMTP'), S=EnvFromSMTP/HdrFromSMTP, R=ifdef(`_ALL_MASQUERADE_', `EnvToSMTP/HdrFromSMTP', `EnvToSMTP'), E=\r\n, L=SMTP_MAILER_LL, 12090792Sgshapiro _OPTINS(`SMTP_MAILER_MAX', `M=', `, ')_OPTINS(`SMTP_MAILER_MAXMSGS', `m=', `, ')_OPTINS(`SMTP_MAILER_MAXRCPTS', `r=', `, ')_OPTINS(`SMTP_MAILER_CHARSET', `C=', `, ')T=DNS/RFC822/SMTP,_DSMTP_QGRP 12164562Sgshapiro A=DSMTP_MAILER_ARGS 122168515SgshapiroMrelay, P=[IPC], F=_MODMF_(CONCAT(_DEF_SMTP_MAILER_FLAGS, `a8', RELAY_MAILER_FLAGS), `RELAY'), S=EnvFromSMTP/HdrFromSMTP, R=ifdef(`_ALL_MASQUERADE_', `MasqSMTP/MasqRelay', `MasqSMTP'), E=\r\n, L=RELAY_MAILER_LL, 12390792Sgshapiro _OPTINS(`RELAY_MAILER_CHARSET', `C=', `, ')_OPTINS(`RELAY_MAILER_MAXMSGS', `m=', `, ')_OPTINS(`SMTP_MAILER_MAXRCPTS', `r=', `, ')T=DNS/RFC822/SMTP,_RELAY_QGRP 12464562Sgshapiro A=RELAY_MAILER_ARGS 125