initial upload
This commit is contained in:
110
smmapd_prototype/verifysender.m4
Normal file
110
smmapd_prototype/verifysender.m4
Normal file
@ -0,0 +1,110 @@
|
||||
VERSIONID(`$Id$')
|
||||
|
||||
|
||||
|
||||
divert(-1)
|
||||
|
||||
define(`_USAGE_', `dnl
|
||||
errprint(`*** ERROR: missing argument for FEATURE(verifysender):
|
||||
Usage: FEATURE(`verifysender', `_mode_', `_return_')
|
||||
_mode_: black or white
|
||||
_return_: temp or perm
|
||||
found: $1
|
||||
')')
|
||||
|
||||
ifelse(_ARG_, `black', `', `
|
||||
ifelse(_ARG_, `white', `', `
|
||||
_USAGE_(`_mode_: ('_ARG_`)
|
||||
')
|
||||
')')
|
||||
|
||||
ifelse(_ARG2_, `temp', `', `
|
||||
ifelse(_ARG2_, `perm', `', `
|
||||
_USAGE_(`_return_: ('_ARG2_`)
|
||||
')
|
||||
')')
|
||||
|
||||
define(`_mode_', _ARG_)
|
||||
define(`_return_', _ARG2_)
|
||||
|
||||
errprint(`*** _mode_: '_mode_`
|
||||
')
|
||||
errprint(`*** _return_: '_return_`
|
||||
')
|
||||
|
||||
|
||||
define(`_T_DSN_', `4.1.0')
|
||||
define(`_T_REPLY', `451')
|
||||
ifelse(_return_, `temp', `
|
||||
define(`_DSN_', _T_DSN_)
|
||||
define(`_REPLY_', _T_REPLY)', `dnl
|
||||
define(`_DSN_', `5.1.0')
|
||||
define(`_REPLY_', `550')')
|
||||
|
||||
ifelse(defn(`confVERIFIER_MAP'), `', `
|
||||
define(`_VERIFIER_MAP_', `inet:8884@127.0.0.1')', `
|
||||
define(`_VERIFIER_MAP_', confVERIFIER_MAP)')
|
||||
|
||||
ifelse(defn(`confVERIFIER_BLACKLIST'), `', `
|
||||
define(`_VERIFIER_BLACKLIST_', `/etc/mail/verifier-black-list')', `
|
||||
define(`_VERIFIER_BLACKLIST_', confVERIFIER_BLACKLIST)')
|
||||
|
||||
ifelse(defn(`confVERIFIER_WHITELIST'), `', `
|
||||
define(`_VERIFIER_WHITELIST_', `/etc/mail/verifier-white-list')', `
|
||||
define(`_VERIFIER_WHITELIST_', confVERIFIER_WHITELIST)')
|
||||
|
||||
divert(0)
|
||||
|
||||
LOCAL_CONFIG
|
||||
# Adjust the port
|
||||
Kverifier socket -T<temp> _VERIFIER_MAP_
|
||||
ifelse(_mode_, `white', `dnl
|
||||
Kverifier_helper hash -o _VERIFIER_WHITELIST_', `dnl
|
||||
Kverifier_helper hash _VERIFIER_BLACKLIST_')
|
||||
C{verifier_fix_white} postmaster
|
||||
|
||||
LOCAL_RULESETS
|
||||
# This ruleset can be used to test the verifier in -bt mode
|
||||
Svt
|
||||
R$+ $: < $(verifier $1 $:none $) >
|
||||
|
||||
Sverifier0
|
||||
R< $={verifier_fix_white} @ $+ > $@ < ok >
|
||||
R< $+ @ $+ > $: < $2 > < $(verifier_helper $1 @ $2 $: $) >
|
||||
R< $+ > < > $: < $(verifier_helper $1 $: $) >
|
||||
ifelse(_mode_, `white', `dnl
|
||||
dnl if we found nothing in the whitelist, we continue with checking
|
||||
R< > $@ < cont >
|
||||
dnl if we found something in the whitelist, we skip further verifications
|
||||
R< $+ > $@ < ok >', `dnl
|
||||
dnl if we found nothing in the blacklist, we skip further verifications
|
||||
R< > $@ < ok >
|
||||
dnl if we found something in the blacklist, we continue with checking
|
||||
R< $+ > $@ < cont >')
|
||||
|
||||
Sverifier1
|
||||
R< $+ > $: < $(verifier $1 $:none $) >
|
||||
R< $* < temp > > $#error $@ _T_DSN_ $: "_T_REPLY_ Sender Address could currently not be verified (1)"
|
||||
R< none > $#error $@ _T_DSN_ $: "_T_REPLY_ Sender Address could currently not be verified (2)"
|
||||
R< <OK> $* > $@ < ok >
|
||||
R< <NOK> < $* > > $#error $@ _DSN_ $: "_REPLY_ Sender Address was verified as bad: " $1
|
||||
R< <TNOK> < $* > > $#error $@ _T_DSN_ $: "_T_REPLY_ Sender Address could currently not be verified (3): " $1
|
||||
dnl if we get here, some is wrong with our code
|
||||
R$* $#error $@ 4.7.1 $: "451 Local configuration error <sv1>"
|
||||
|
||||
|
||||
SLocal_check_mail
|
||||
dnl MAILER-DAEMON address must not be verified
|
||||
R<> $@ <>
|
||||
dnl try to focus
|
||||
R$+ $: <> $>3 $1
|
||||
R<> $+ < @ $+ . > $: < $1 @ $2 >
|
||||
R<> $+ < @ $+ > $: < $1 @ $2 >
|
||||
dnl if unable to focus, rest of check_mail should take care (may be we should reject)
|
||||
R<> $* $@ OK
|
||||
R< $+ @ $+ > $: < $1 @ $2 > $>verifier0 < $1 @ $2 >
|
||||
R< $+ @ $+ > < cont > $: < $1 @ $2 > $>verifier1 < $1 @ $2 >
|
||||
R< $+ @ $+ > $# $* $# $3
|
||||
R< $+ @ $+ > < ok > $@ OK
|
||||
dnl if we get here, some is wrong with our code
|
||||
R$* $#error $@ 4.7.1 $: "451 Local configuration error <sv2>"
|
Reference in New Issue
Block a user