Use HELO identity if good when MAILFROM is bad.

This commit is contained in:
Stuart Gathman
2006-12-31 03:07:20 +00:00
parent b703031c7e
commit d01dc65f39
+10 -3
View File
@@ -1,6 +1,9 @@
#!/usr/bin/env python
# A simple milter that has grown quite a bit.
# $Log$
# Revision 1.76 2006/12/30 18:58:53 customdesigned
# Skip reputation/whitelist/blacklist when rejecting on SPF. Add X-Hello-SPF.
#
# Revision 1.75 2006/12/28 01:54:32 customdesigned
# Reject on bad_reputation or blacklist and nodspam. Match valid helo like
# PTR for guessed SPF pass.
@@ -813,7 +816,8 @@ class bmsMilter(Milter.Milter):
else:
rc = Milter.CONTINUE
# FIXME: parse Received-SPF from trusted_relay for SPF result
res = self.spf and self.spf.guess
res = self.spf and self.spf_guess
hres = self.spf and self.spf_helo
# Check whitelist and blacklist
if auto_whitelist.has_key(self.canon_from):
if res == 'pass' or self.trusted_relay:
@@ -834,6 +838,9 @@ class bmsMilter(Milter.Milter):
qual = 'SPF'
elif res == 'pass':
qual = 'GUESS'
elif hres == 'pass':
qual = 'HELO'
domain = self.spf.h
else:
qual = self.connectip
try:
@@ -983,7 +990,8 @@ class bmsMilter(Milter.Milter):
self.add_header('Received-SPF',q.get_header(q.result,receiver),0)
if hres and q.h != q.o:
self.add_header('X-Hello-SPF',hres,0)
q.guess = res
self.spf_guess = res
self.spf_helo = hres
if res != q.result:
self.add_header('X-Guessed-SPF',res,0)
self.spf = q
@@ -1730,7 +1738,6 @@ def main():
Milter.set_flags(flags)
socket.setdefaulttimeout(60)
milter_log.info("bms milter startup")
sys.stdout.flush()
Milter.runmilter("pythonfilter",socketname,timeout)
milter_log.info("bms milter shutdown")