xref: /plan9/mail/lib/validatesender (revision cc81b63ced83c2160acd809ac0efae758d1a092d)
12b7fd5adSDavid du Colombier#!/bin/rc
22b7fd5adSDavid du Colombier
32b7fd5adSDavid du Colombierrfork en
42b7fd5adSDavid du Colombierfn usage{
52b7fd5adSDavid du Colombier	echo 'usage: validatesender [-n /net] plan9.bell-labs.com glenda' >[1=2]
62b7fd5adSDavid du Colombier	exit usage
72b7fd5adSDavid du Colombier}
82b7fd5adSDavid du Colombier
92b7fd5adSDavid du Colombierecho $sysname $pid '$' validatesender $* >>/sys/log/smtpd.mx
102b7fd5adSDavid du Colombier
112b7fd5adSDavid du Colombiernetroot=/net
122b7fd5adSDavid du Colombierif(~ $1 -n){
132b7fd5adSDavid du Colombier	shift
142b7fd5adSDavid du Colombier	netroot=$1
152b7fd5adSDavid du Colombier	shift
162b7fd5adSDavid du Colombier}
172b7fd5adSDavid du Colombierif(! ~ $#* 2)
182b7fd5adSDavid du Colombier	usage
192b7fd5adSDavid du Colombier
202b7fd5adSDavid du Colombierdom=$1
212b7fd5adSDavid du Colombieraddr=$2
222b7fd5adSDavid du Colombier
232b7fd5adSDavid du Colombier# Cause some problems
242b7fd5adSDavid du Colombierif(~ $dom swtch.com && ~ $addr glenda && ! ~ $sysname olive)
252b7fd5adSDavid du Colombier	exit 'deferred: always defer this one'
262b7fd5adSDavid du Colombier
2797787252SDavid du Colombier# Sites that we have to special case
282b7fd5adSDavid du Colombier# Lucent only - use external network when mail from external domains
292b7fd5adSDavid du Colombier# is delivered to us internally.  Assume that local domains are fine.
30*cc81b63cSDavid du Colombier#netroot=/net
31*cc81b63cSDavid du Colombier#if(~ $dom *.lucent.com lucent.com *.bell-labs.com bell-labs.com)
32*cc81b63cSDavid du Colombier#	exit ''
33*cc81b63cSDavid du Colombier#if(! ~ $sysname ethel)
34*cc81b63cSDavid du Colombier#	exit ''
35*cc81b63cSDavid du Colombier#if(~ $sysname ethel){
36*cc81b63cSDavid du Colombier#	if(! test -d /net.alt/tcp)
37*cc81b63cSDavid du Colombier#		import outside /net.alt
38*cc81b63cSDavid du Colombier#	if(test -d /net.alt/tcp)
39*cc81b63cSDavid du Colombier#		netroot=/net.alt
40*cc81b63cSDavid du Colombier#}
412b7fd5adSDavid du Colombier
4269326937SDavid du Colombierif(x=`{upas/smtp -p $netroot/tcp!$dom /dev/null $addr >[2=1] |
432b7fd5adSDavid du Colombier		tee >{sed 's/^/'$sysname' '$pid' /' >> /sys/log/smtpd.mx} |
442b7fd5adSDavid du Colombier		tail -1})
452b7fd5adSDavid du Colombier	exit ''
462b7fd5adSDavid du Colombier
472b7fd5adSDavid du Colombiersmtpstatus=$status
482b7fd5adSDavid du Colombierif(~ $#x 0)
492b7fd5adSDavid du Colombier	x=$smtpstatus
502b7fd5adSDavid du Colombierif(~ $smtpstatus *'Permanent Failure'*)
512b7fd5adSDavid du Colombier	exit 'rejected: smtp ping: '^$"x
522b7fd5adSDavid du Colombierexit 'deferred: smtp ping: '^$"x
53