Thanks to everyone for suggestions. Looks like checking sender_helo_name
contains *something* does the trick:
deny message = "HELO/EHLO required by SMTP RFC"
condition = ${if eq{$sender_helo_name}{}{yes}{no}}
This alone should get rid of both:
(1) Senders who don't say HELO at all
and:
(2) Senders who give an invalid HELO (rejected by exim's default HELO
syntax checking) and who nevertheless try to continue and send spam.
This works as sender_helo_name is empty in this case.
So maybe there's no need to add new option/behaviour to exim
afterall. Goes to show just how much fun can be had with v4 ACLs !
Cheers
Chris