Obviously the right way is for the master rules to be adjusted. But if you want a local fix, try something like this:
score RCVD_IN_DNSWL_HI -0.001 meta MY_RCVD_IN_DNSWL_HI RCVD_IN_DNSWL_HI && !SPF_FAIL score MY_RCVD_IN_DNSWL_HI -5 describe MY_RCVD_IN_DNSWL_HI In DNS whitelist, good SPF ----- Original Message ----- I received a (relatively) well crafted Phishing email today. It was clearly a well planned campaign. The Spamassassin score was as follows: X-Spam-Status: No, score=-0.4 required=5.0 tests=GOOG_REDIR_NORDNS=0.001, HTML_FONT_LOW_CONTRAST=0.001,HTML_MESSAGE=0.001, NORDNS_LOW_CONTRAST=0.001,RCVD_IN_DNSWL_HI=-5,RDNS_NONE=1.274, SPF_FAIL=0.919,SPF_HELO_NONE=0.001,URIBL_BLOCKED=0.001,WIKI_IMG=2.397 autolearn=disabled version=3.4.6 DNS white-hole list checks should never ever pass if the SPF checks fail. In fact, I can't think of any whitelist test that should pass if SPF fails. I could attach a higher score to SPF_FAIL, but that would unduly affect cases where the sender wasn't white listed. I need a way to force Spammassassin to negate the effect of one test on the passing of another.