On 2017-02-13 at 14:59 -0700, Phillip Carroll wrote:
> The test I thought was working is:
> deny message =\
> helo/host mismatch\
> helo=$sender_helo_name\
> host=$sender_host_name
> condition = ${if eq \
> {${extract{-1}{.}{$sender_host_name}}}\
> {${extract{-1}{.}{$sender_helo_name}}}\
> {no} {yes}}
> condition = ${if eq \
> {${extract{-2}{.}{$sender_host_name}}}\
> {${extract{-2}{.}{$sender_helo_name}}}\
> {no} {yes}}
> # continuations were inserted here for readability.
> # The message and each condition are on single lines in the conf.
>
> Hopefully, somebody here can point out a flaw in my conditions that fail to
> detect some non-matches. Or even show me a simpler way to test the same
> thing.
Multiple condition rules are and{{}{}...}, not or{{}{}...}
So you're only rejecting if both the last and second-last components
differ.
You can be more explicit by using the or{} wrapper yourself.
-Phil