[exim] Why isn't this filter condition matching?

Top Page
Delete this message
Reply to this message
Author: Ross Boylan
Date:  
To: exim-users
CC: Ross Boylan
Subject: [exim] Why isn't this filter condition matching?
My .forward file begins

# Exim filter
if error_message then
    save $home/mail/general
elif $h_X-Spam_bar: begins "++++++++" or h_X-Spam-Level: begins "********" then
    save $home/mail/spamhi
elif $h_X-Spam_bar: begins "++++" or h_X-Spam-Level: begins "****" then
    save $home/mail/spamlo
elif personal then
......


This picked up a message with X-Spam_bar, but let the following
X-Spam-Level through

>From tkruegler@??? Thu Jul 06 06:00:07 2006

Return-path: tkruegler@???
Envelope-to: ross@localhost
Delivery-date: Thu, 06 Jul 2006 06:00:07 -0700
Received: from localhost
        ([127.0.0.1] helo=wheat.betterworld.us ident=fetchmail)
        by wheat.betterworld.us with esmtp (Exim 4.62)
        (envelope-from <tkruegler@???>)
        id 1FyTSg-0004o7-St
        for ross@localhost; Thu, 06 Jul 2006 06:00:06 -0700
X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on mail0.rawbw.com
X-Spam-Level: ******


That was the only X-Spam-Level header in the message.

I think the argument to begins is not a regular expression, but I'm
obviously missing something. I also think the presence of a named
sender means the error_message should not match. Why doesn't the
h_X-Spam-Level: begins "****" condition match? How do I fix it?

Thanks.
Ross