QUOTE(mholloway @ Feb 17 2008, 01:16 AM)

Yes, I did test it adequately, which means I used the webmail interface only. No, I didn't do something stupid. It doesn't work, and it should. No one seems to know why. Disappointing.
But the real question is where the boundary come between what works and what doesn't.
Were all your tests with tiny bodies ?
Does it works with a encoded body like quoted printable, koi8-r etc. ?
So: What does work ?
For the lurkers, this seems to involve the test "matches" (rather than "contains" which is the only test available for every other text field) see the context help available when setting up a new filter field by clicking on the 'lifebelt' on the right. The test on size allows "greater than" and "less than" (units kilobytes at a guess) but that's all.
The explanation also keeps saying 'lines' so do we understand that a test is 'true' if true for any line of the body or what ?
I copy =================
There are 3 components to each condition in a rule. The first is the field to examine. The second is the type of comparison to perform. The third is the value to which the field should be compared. There are a few different types of comparisons that can be performed. The comparisons available for any given field will depend on both the type of the field and what the underlying filtering software can handle. Thus, all potential matching options listed below may not appear for a given field.
Contains
Will be considered to be true if the specified string is found anywhere on the line. Example: user[at]example would match joe_user[at]example.com
Doesn't Contain
Will be considered to be true if the specified string is not found anywhere on the line. Example: user[at]example would not match joe_user[at]example.com
Is
Will be considered to be true if the specified string matches the line exactly. Example: user[at]example.com is user[at]example.com
Isn't
Will be considered to be true if the specified string does not match the line exactly. Example: user[at]example is not user[at]example.com
Begins with
Will be considered to be true if the specified string matches the beginning of the line. Example: user[at]example will match user[at]example.com
Doesn't begin with
Will be considered to be true if the specified string does not match the beginning of the line. Example: user[at]example.com will not match user[at]example
Ends with
Will be considered to be true if the specified string matches the end of the line. Example: example.com will match user[at]example.com
Doesn't end with
Will be considered to be true if the specified string does not match the end of the line. Example: horde.org will not match user[at]example.com
Exists
Will be considered to be true if the specified header exists in the message, regardless of what its value is.
Doesn't Exist
Will be considered to be true if the specified header does not exist in the message.
Regex
Regex allows you to use complex POSIX compatible regular expressions to compare against message headers. Example: "Received from [*\.*\.*\.*] by (hosta|hostb).example.com*" would match "Received from [172.16.100.1] by hosta.example.com on Tuesday"
Matches
Matches is similar to contains, with the exception that you may use * and ? as wildcards. An * will match any number of characters, and a ? will match exactly one charater. Example: "*user?@example.com" will match both "user1[at]example.com" and "otheruser2[at]example.com"
Doesn't match
Doesn't match is the same as matches except that it will evaluate to false if the specified value matches the string in the message header.
Less than
This is a relational test which will compare the value you specify and the value in the message header numerically.
-snipped
Greater than
This is a relational test which will compare the value you specify and the value in the message header numerically.
=========