From d01dc65f39de0de680d3f28ded3eab363fc673a7 Mon Sep 17 00:00:00 2001 From: Stuart Gathman <stuart@gathman.org> Date: Sun, 31 Dec 2006 03:07:20 +0000 Subject: [PATCH] Use HELO identity if good when MAILFROM is bad. --- bms.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/bms.py b/bms.py index fa962e0..fdd711d 100644 --- a/bms.py +++ b/bms.py @@ -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") -- GitLab