I took the plunge and implemented the suggestions here:
http://www.tldp.org/HOWTO/Spam-Filtering-for-MX/
-- nice work, seems to be working well overall.
However, I'd like to make use of this as well:
deny
message = Your message does not conform to RFC2822 standard
log_message = missing header lines
!hosts = +relay_from_hosts
!senders = : postmaster@*
condition = ${if !eq {$acl_m0}{accept}{true}}
condition = ${if or {{!def:h_Message-ID:}\
{!def:h_Date:}\
{!def:h_Subject:}} {true}{false}}
The condition for the Message-ID: field doesn't catch things like:
X-Qmail-Scanner-Message-ID: <10953335286756398@???>
which I guess is an abomination, but let's not go there for the moment.
I'm probably looking in the wrong place in the documentation, but I
can't find if there's a way to snag "prefixed" field names like the
above. Ideally, I'd not want to write a condition for each and every
Blah-Message-ID: header encountered. Pointers would be welcome.
--
Juha