========== # Sieve filter if address ["From","To"] "marian@abcdefgh.example" { discard; } ========== No implicit keep ========== # Sieve filter if address :is "From" "marian@abcdefgh.example" { discard; } ========== Implicit keep ========== # Sieve filter if address :is "To" "marian@abcdefgh.example" { discard; } ========== No implicit keep ========== # Sieve filter if address :contains "To" "abcdefgh" { discard; } ========== No implicit keep ========== # Sieve filter if address :matches "To" "*abc?efgh*" { discard; } ========== No implicit keep ========== # Sieve filter if true { discard; } ========== No implicit keep ========== # Sieve filter if false { discard; } ========== Implicit keep ========== # Sieve filter if allof (false,false) { discard; } ========== Implicit keep ========== # Sieve filter if allof (true,false) { discard; } ========== Implicit keep ========== # Sieve filter if allof (false,true) { discard; } ========== Implicit keep ========== # Sieve filter if allof (true,true) { discard; } ========== No implicit keep ========== # Sieve filter if anyof (false,false) { discard; } ========== Implicit keep ========== # Sieve filter if anyof (true,false) { discard; } ========== No implicit keep ========== # Sieve filter if anyof (false,true) { discard; } ========== No implicit keep ========== # Sieve filter if anyof (true,true) { discard; } ========== No implicit keep ========== # Sieve filter if not anyof (false,false) { discard; } ========== No implicit keep ========== # Sieve filter if not anyof (true,false) { discard; } ========== Implicit keep ========== # Sieve filter if not anyof (false,true) { discard; } ========== Implicit keep ========== # Sieve filter if not anyof (true,true) { discard; } ========== Implicit keep ========== # Sieve filter if header "to" "MARIAN@abcdefgh.example" { discard; } ========== No implicit keep ========== # Sieve filter if header :comparator "i;octet" "to" "MARIAN@abcdefgh.example" { discard; } ========== Implicit keep ========== # Sieve filter if header :comparator "i;ascii-casemap" "to" "MARIAN@abcdefgh.example" { discard; } ========== No implicit keep ========== # Sieve filter require "envelope"; if envelope "from" "marian@somenet.example" { discard; } ========== Implicit keep ========== # Sieve filter require "envelope"; if envelope "from" "offerqn@bpk.example.com" { discard; } ========== No implicit keep ========== # Sieve filter if exists [ "X-NotHere", "X-Notheretoo" ] { discard; } ========== Implicit keep ========== # Sieve filter if exists [ "X-NotHere", "Delivered-To" ] { discard; } ========== Implicit keep ========== # Sieve filter if exists [ "From", "Delivered-To" ] { discard; } ========== No implicit keep ========== # Sieve filter if header :contains "X-NotHere" "" { discard; } ========== Implicit keep ========== # Sieve filter if header "Delivered-To" "" { discard; } ========== Implicit keep ========== # Sieve filter if header :contains "Delivered-To" "" { discard; } ========== No implicit keep ========== # Sieve filter if header :contains "Delivered-To" "rc@irc.somenet.example" { discard; } ========== No implicit keep ========== # Sieve filter if header "Delivered-To" ["irc@irc.somenet.example"] { discard; } ========== Implicit keep ========== # Sieve filter if header "Delivered-To" ["irc@irc.somenet.example","irc@01019somenet.example","some.one"] { discard; } ========== Implicit keep ========== # Sieve filter if header "Mime-Version" "1.0" { discard; } ========== No implicit keep ========== # Sieve filter if false { discard; } ========== Implicit keep ========== # Sieve filter if true { discard; } ========== No implicit keep ========== # Sieve filter if true { discard; } else { keep; } ========== No implicit keep ========== # Sieve filter if false { keep; } else { discard; } ========== No implicit keep ========== # Sieve filter if false { keep; } elsif true { discard; } else { keep; } ========== No implicit keep ========== # Sieve filter if true { discard; } elsif true { keep; } else { keep; } ========== No implicit keep ========== # Sieve filter if false { keep; } else { if true { discard; } else { keep; } } ========== No implicit keep ========== # Sieve filter if header :matches "to" "MA*AN@abc*fg?.example" { discard; } ========== No implicit keep ========== # Sieve filter if not header :matches "to" "MA?AN@abc*fg?.example" { discard; } ========== No implicit keep ========== # Sieve filter if header :matches "to" "*marian@abcdefgh.example" { discard; } ========== No implicit keep ========== # Sieve filter if not header :matches "to" "?marian@abcdefgh.example" { discard; } ========== No implicit keep ========== # Sieve filter if header :matches "to" "marian@abcdefgh.example*" { discard; } ========== No implicit keep ========== # Sieve filter if not header :matches "to" "marian@abcdefgh.example?" { discard; } ========== No implicit keep ========== # Sieve filter if header :matches "x-special1" "\\?*\\*" { discard; } ========== No implicit keep ========== # Sieve filter if header :matches "x-special1" "*\0*" { discard; } ========== Implicit keep ========== # Sieve filter if not header :matches "x-special1" "*\0*q" { discard; } ========== No implicit keep ========== # Sieve filter require "encoded-character"; if not header :matches "x-special1" "*${hex:00}*" { discard; } ========== Implicit keep ========== # Sieve filter if not header :matches "x-special2" "\\?*\\*" { discard; } ========== No implicit keep ========== # Sieve filter if not header :matches "x-special2" "*\0*" { discard; } ========== No implicit keep ========== # Sieve filter if size :over 400 { discard; } ========== No implicit keep ========== # Sieve filter if size :over 4K { discard; } ========== Implicit keep ========== # Sieve filter if size :under 4K { discard; } ========== No implicit keep ========== # Sieve filter if size :under 400 { discard; } ========== Implicit keep ========== # Sieve filter if false { keep; } ========== Implicit keep ========== # no filter line here if unknowntest { keep; } ========== Testing forward file file "test-data" exim: error in forward file: missing or malformed local part (expected word or "<") in "if unknowntest { keep; }" ========== # Sieve filter if test keep; } ========== Sieve error: missing test in line 2 ========== # Sieve filter if test { keep; ========== Sieve error: missing test in line 2 ========== # Sieve filter if true { unknownaction; } ========== Sieve error: expecting command or closing brace in line 2 ========== # Sieve filter if true { fileinto abcdefgh; } ========== Sieve error: missing previous require "fileinto"; in line 2 ========== # Sieve filter require "fileinto"; if true { fileinto "abcdefgh"; } ========== No implicit keep ========== # Sieve filter if header ["to"] [ "marian@abcdefgh.example", "achnee"] { discard; } ========== No implicit keep ========== # Sieve filter if header "to" [ "egal", "achnee" { keep; } ========== Sieve error: missing string list in line 2 ========== # Sieve filter if header "to","from"] "egal" { keep; } ========== Sieve error: key string list expected in line 2 ========== # Sieve filter if header ["to","from" "egal" { keep; } ========== Sieve error: missing string list in line 2 ========== # Sieve filter if header ["to",,"from"] "egal" { keep; } ========== Sieve error: missing string list in line 2 ========== # Sieve filter if header ["to",] "egal" { keep; } ========== Sieve error: missing string list in line 2 ========== # Sieve filter if header [,"to"] "egal" { keep; } ========== Sieve error: missing string list in line 2 ========== # Sieve filter if unknowntest { keep; } ========== Sieve error: missing test in line 2 ========== # Sieve filter if header :matches "to" "egal" { keep; } ========== Implicit keep ========== # Sieve filter if header :unknown "to" "egal" { keep; } ========== Sieve error: header string list expected in line 2 ========== # Sieve filter # require ["fileinto", "envelope"]; if header :matches "X-Warning" "* is listed at list.dsbl.org*" { keep; # keep in "In" folder } ========== No implicit keep ========== # Sieve filter if header "x-1" "1" { discard; } ========== No implicit keep ========== # Sieve filter if not header "x-1" "=?ISO-8859-1?Q?=31?=" { discard; } ========== No implicit keep ========== # Sieve filter if header "x-1b" "=?ISO-8859-1?Q?=31=" { discard; } ========== No implicit keep ========== # Sieve filter if header "x-b64" "This is BASE64" { discard; } ========== No implicit keep ========== # Sieve filter if header "x-b64-broken" "=?iso-8859-1?b?VGhpcyBpcyBCQVNFNjQ?=" { discard; } ========== No implicit keep ========== # Sieve filter if header "x-q75total" "0123456789012345678901234567890123456789012345678901234567" { discard; } ========== No implicit keep ========== # Sieve filter if header "x-q76total" "=?ISO-8859-1?Q?01234567890123456789012345678901234567890123456789012345678?=" { discard; } ========== No implicit keep ========== # Sieve filter if header "X-Wrapped" "eins zwei drei" { discard; } ========== No implicit keep ========== # Sieve filter if header "x-nomimewrap" "=?iso-8859-1?q?abc def ghi?=" { discard; } ========== No implicit keep ========== # Sieve filter if header "subject" "abcdefghi" { discard; } ========== No implicit keep ========== # Sieve filter if header "x-mixed" "abc def" { discard; } ========== No implicit keep ========== #Sieve filter if true { stop; fileinto "inbox.never"; } ========== Implicit keep