Previous: Control Flow, Up: Syntax


4.2.4 Tests and Conditions

Tests are Sieve commands that return boolean value. E.g. the test

     header :contains "from" "coyote"

returns true only if the header “From” of the current message contains substring “coyote”.

The tests shipped with the gnu Sieve are described in Tests.

Condition is a Sieve expression that evaluates to true or false. In its simplest form, condition is just a Sieve test.

To reverse the sense of a condition use keyword not, e.g.:

     not header :contains "from" "coyote"

The results of several conditions may be joined together by logical and and or operations. The special form allof takes several tests as its arguments and computes the logical and of their results. Similarly, the form anyof performs logical or over the results of its arguments. E.g.:

     if anyof (not exists ["From", "Date"],
               header :contains "from" "fool@example.edu")
       {
         discard;
       }