Commit | Line | Data |
---|---|---|
54c5ebb1 PH |
1 | ========== |
2 | # Sieve filter | |
3 | if address ["From","To"] "marian@abcdefgh.example" | |
4 | { discard; } | |
5 | ========== | |
6 | No implicit keep | |
7 | ========== | |
8 | # Sieve filter | |
9 | if address :is "From" "marian@abcdefgh.example" | |
10 | { discard; } | |
11 | ========== | |
12 | Implicit keep | |
13 | ========== | |
14 | # Sieve filter | |
15 | if address :is "To" "marian@abcdefgh.example" | |
16 | { discard; } | |
17 | ========== | |
18 | No implicit keep | |
19 | ========== | |
20 | # Sieve filter | |
21 | if address :contains "To" "abcdefgh" | |
22 | { discard; } | |
23 | ========== | |
24 | No implicit keep | |
25 | ========== | |
26 | # Sieve filter | |
27 | if address :matches "To" "*abc?efgh*" | |
28 | { discard; } | |
29 | ========== | |
30 | No implicit keep | |
31 | ========== | |
32 | # Sieve filter | |
33 | if true { discard; } | |
34 | ========== | |
35 | No implicit keep | |
36 | ========== | |
37 | # Sieve filter | |
38 | if false { discard; } | |
39 | ========== | |
40 | Implicit keep | |
41 | ========== | |
42 | # Sieve filter | |
43 | if allof (false,false) { discard; } | |
44 | ========== | |
45 | Implicit keep | |
46 | ========== | |
47 | # Sieve filter | |
48 | if allof (true,false) { discard; } | |
49 | ========== | |
50 | Implicit keep | |
51 | ========== | |
52 | # Sieve filter | |
53 | if allof (false,true) { discard; } | |
54 | ========== | |
55 | Implicit keep | |
56 | ========== | |
57 | # Sieve filter | |
58 | if allof (true,true) { discard; } | |
59 | ========== | |
60 | No implicit keep | |
61 | ========== | |
62 | # Sieve filter | |
63 | if anyof (false,false) { discard; } | |
64 | ========== | |
65 | Implicit keep | |
66 | ========== | |
67 | # Sieve filter | |
68 | if anyof (true,false) { discard; } | |
69 | ========== | |
70 | No implicit keep | |
71 | ========== | |
72 | # Sieve filter | |
73 | if anyof (false,true) { discard; } | |
74 | ========== | |
75 | No implicit keep | |
76 | ========== | |
77 | # Sieve filter | |
78 | if anyof (true,true) { discard; } | |
79 | ========== | |
80 | No implicit keep | |
81 | ========== | |
82 | # Sieve filter | |
83 | if not anyof (false,false) { discard; } | |
84 | ========== | |
85 | No implicit keep | |
86 | ========== | |
87 | # Sieve filter | |
88 | if not anyof (true,false) { discard; } | |
89 | ========== | |
90 | Implicit keep | |
91 | ========== | |
92 | # Sieve filter | |
93 | if not anyof (false,true) { discard; } | |
94 | ========== | |
95 | Implicit keep | |
96 | ========== | |
97 | # Sieve filter | |
98 | if not anyof (true,true) { discard; } | |
99 | ========== | |
100 | Implicit keep | |
101 | ========== | |
102 | # Sieve filter | |
103 | if header "to" "MARIAN@abcdefgh.example" { discard; } | |
104 | ========== | |
105 | No implicit keep | |
106 | ========== | |
107 | # Sieve filter | |
108 | if header :comparator "i;octet" "to" "MARIAN@abcdefgh.example" { discard; } | |
109 | ========== | |
110 | Implicit keep | |
111 | ========== | |
112 | # Sieve filter | |
113 | if header :comparator "i;ascii-casemap" "to" "MARIAN@abcdefgh.example" { discard; } | |
114 | ========== | |
115 | No implicit keep | |
116 | ========== | |
117 | # Sieve filter | |
118 | require "envelope"; | |
119 | if envelope "from" "marian@somenet.example" { discard; } | |
120 | ========== | |
121 | Implicit keep | |
122 | ========== | |
123 | # Sieve filter | |
124 | require "envelope"; | |
125 | if envelope "from" "offerqn@bpk.example.com" { discard; } | |
126 | ========== | |
127 | No implicit keep | |
128 | ========== | |
129 | # Sieve filter | |
130 | if exists [ "X-NotHere", "X-Notheretoo" ] { discard; } | |
131 | ========== | |
132 | Implicit keep | |
133 | ========== | |
134 | # Sieve filter | |
135 | if exists [ "X-NotHere", "Delivered-To" ] { discard; } | |
136 | ========== | |
137 | Implicit keep | |
138 | ========== | |
139 | # Sieve filter | |
140 | if exists [ "From", "Delivered-To" ] { discard; } | |
141 | ========== | |
142 | No implicit keep | |
143 | ========== | |
144 | # Sieve filter | |
145 | if header :contains "X-NotHere" "" { discard; } | |
146 | ========== | |
147 | Implicit keep | |
148 | ========== | |
149 | # Sieve filter | |
150 | if header "Delivered-To" "" { discard; } | |
151 | ========== | |
152 | Implicit keep | |
153 | ========== | |
154 | # Sieve filter | |
155 | if header :contains "Delivered-To" "" { discard; } | |
156 | ========== | |
157 | No implicit keep | |
158 | ========== | |
159 | # Sieve filter | |
160 | if header :contains "Delivered-To" "rc@irc.somenet.example" { discard; } | |
161 | ========== | |
162 | No implicit keep | |
163 | ========== | |
164 | # Sieve filter | |
165 | if header "Delivered-To" ["irc@irc.somenet.example"] { discard; } | |
166 | ========== | |
167 | Implicit keep | |
168 | ========== | |
169 | # Sieve filter | |
170 | if header "Delivered-To" ["irc@irc.somenet.example","irc@01019somenet.example","some.one"] { discard; } | |
171 | ========== | |
172 | Implicit keep | |
173 | ========== | |
174 | # Sieve filter | |
175 | if header "Mime-Version" "1.0" { discard; } | |
176 | ========== | |
177 | No implicit keep | |
178 | ========== | |
179 | # Sieve filter | |
180 | if false { discard; } | |
181 | ========== | |
182 | Implicit keep | |
183 | ========== | |
184 | # Sieve filter | |
185 | if true { discard; } | |
186 | ========== | |
187 | No implicit keep | |
188 | ========== | |
189 | # Sieve filter | |
190 | if true { discard; } else { keep; } | |
191 | ========== | |
192 | No implicit keep | |
193 | ========== | |
194 | # Sieve filter | |
195 | if false { keep; } else { discard; } | |
196 | ========== | |
197 | No implicit keep | |
198 | ========== | |
199 | # Sieve filter | |
200 | if false { keep; } elsif true { discard; } else { keep; } | |
201 | ========== | |
202 | No implicit keep | |
203 | ========== | |
204 | # Sieve filter | |
205 | if true { discard; } elsif true { keep; } else { keep; } | |
206 | ========== | |
207 | No implicit keep | |
208 | ========== | |
209 | # Sieve filter | |
210 | if false { keep; } | |
211 | else | |
212 | { if true { discard; } else { keep; } } | |
213 | ========== | |
214 | No implicit keep | |
215 | ========== | |
216 | # Sieve filter | |
217 | if header :matches "to" "MA*AN@abc*fg?.example" { discard; } | |
218 | ========== | |
219 | No implicit keep | |
220 | ========== | |
221 | # Sieve filter | |
222 | if not header :matches "to" "MA?AN@abc*fg?.example" { discard; } | |
223 | ========== | |
224 | No implicit keep | |
225 | ========== | |
226 | # Sieve filter | |
227 | if header :matches "to" "*marian@abcdefgh.example" { discard; } | |
228 | ========== | |
229 | No implicit keep | |
230 | ========== | |
231 | # Sieve filter | |
232 | if not header :matches "to" "?marian@abcdefgh.example" { discard; } | |
233 | ========== | |
234 | No implicit keep | |
235 | ========== | |
236 | # Sieve filter | |
237 | if header :matches "to" "marian@abcdefgh.example*" { discard; } | |
238 | ========== | |
239 | No implicit keep | |
240 | ========== | |
241 | # Sieve filter | |
242 | if not header :matches "to" "marian@abcdefgh.example?" { discard; } | |
243 | ========== | |
244 | No implicit keep | |
245 | ========== | |
246 | # Sieve filter | |
247 | if header :matches "x-special1" "\\?*\\*" { discard; } | |
248 | ========== | |
249 | No implicit keep | |
250 | ========== | |
251 | # Sieve filter | |
252 | if header :matches "x-special1" "*\0*" { discard; } | |
253 | ========== | |
254 | No implicit keep | |
255 | ========== | |
256 | # Sieve filter | |
257 | if not header :matches "x-special1" "*\0*q" { discard; } | |
258 | ========== | |
259 | No implicit keep | |
260 | ========== | |
261 | # Sieve filter | |
262 | if not header :matches "x-special2" "\\?*\\*" { discard; } | |
263 | ========== | |
264 | No implicit keep | |
265 | ========== | |
266 | # Sieve filter | |
267 | if not header :matches "x-special2" "*\0*" { discard; } | |
268 | ========== | |
269 | No implicit keep | |
270 | ========== | |
271 | # Sieve filter | |
272 | if size :over 400 { | |
273 | discard; | |
274 | } | |
275 | ========== | |
276 | No implicit keep | |
277 | ========== | |
278 | # Sieve filter | |
279 | if size :over 4K { | |
280 | discard; | |
281 | } | |
282 | ========== | |
283 | Implicit keep | |
284 | ========== | |
285 | # Sieve filter | |
286 | if size :under 4K { discard; } | |
287 | ========== | |
288 | No implicit keep | |
289 | ========== | |
290 | # Sieve filter | |
291 | if size :under 400 { discard; } | |
292 | ========== | |
293 | Implicit keep | |
294 | ========== | |
295 | # Sieve filter | |
296 | if false { keep; } | |
297 | ========== | |
298 | Implicit keep | |
299 | ========== | |
300 | # no filter line here | |
301 | if unknowntest { keep; } | |
302 | ========== | |
303 | Testing forward file file "test-data" | |
304 | ||
305 | exim: error in forward file: missing or malformed local part (expected word or "<") in "if unknowntest { keep; }" | |
306 | ========== | |
307 | # Sieve filter | |
308 | if test keep; } | |
309 | ========== | |
310 | Sieve error: missing test in line 2 | |
311 | ========== | |
312 | # Sieve filter | |
313 | if test { keep; | |
314 | ========== | |
315 | Sieve error: missing test in line 2 | |
316 | ========== | |
317 | # Sieve filter | |
318 | if true { unknownaction; } | |
319 | ========== | |
320 | Sieve error: expecting command or closing brace in line 2 | |
321 | ========== | |
322 | # Sieve filter | |
323 | if true { fileinto abcdefgh; } | |
324 | ========== | |
325 | Sieve error: missing previous require "fileinto"; in line 2 | |
326 | ========== | |
327 | # Sieve filter | |
328 | require "fileinto"; | |
329 | if true { fileinto "abcdefgh"; } | |
330 | ========== | |
331 | No implicit keep | |
332 | ========== | |
333 | # Sieve filter | |
334 | if header ["to"] [ "marian@abcdefgh.example", "achnee"] { discard; } | |
335 | ========== | |
336 | No implicit keep | |
337 | ========== | |
338 | # Sieve filter | |
339 | if header "to" [ "egal", "achnee" { keep; } | |
340 | ========== | |
341 | Sieve error: missing string list in line 2 | |
342 | ========== | |
343 | # Sieve filter | |
344 | if header "to","from"] "egal" { keep; } | |
345 | ========== | |
346 | Sieve error: key string list expected in line 2 | |
347 | ========== | |
348 | # Sieve filter | |
349 | if header ["to","from" "egal" { keep; } | |
350 | ========== | |
351 | Sieve error: missing string list in line 2 | |
352 | ========== | |
353 | # Sieve filter | |
354 | if header ["to",,"from"] "egal" { keep; } | |
355 | ========== | |
356 | Sieve error: missing string list in line 2 | |
357 | ========== | |
358 | # Sieve filter | |
359 | if header ["to",] "egal" { keep; } | |
360 | ========== | |
361 | Sieve error: missing string list in line 2 | |
362 | ========== | |
363 | # Sieve filter | |
364 | if header [,"to"] "egal" { keep; } | |
365 | ========== | |
366 | Sieve error: missing string list in line 2 | |
367 | ========== | |
368 | # Sieve filter | |
369 | if unknowntest { keep; } | |
370 | ========== | |
371 | Sieve error: missing test in line 2 | |
372 | ========== | |
373 | # Sieve filter | |
374 | if header :matches "to" "egal" { keep; } | |
375 | ========== | |
376 | Implicit keep | |
377 | ========== | |
378 | # Sieve filter | |
379 | if header :unknown "to" "egal" { keep; } | |
380 | ========== | |
381 | Sieve error: header string list expected in line 2 | |
382 | ========== | |
383 | # Sieve filter | |
384 | # | |
385 | require ["fileinto", "envelope"]; | |
386 | ||
387 | if header :matches "X-Warning" "* is listed at list.dsbl.org*" | |
388 | { | |
389 | keep; # keep in "In" folder | |
390 | } | |
391 | ========== | |
392 | No implicit keep | |
393 | ========== | |
394 | # Sieve filter | |
395 | if header "x-1" "1" { discard; } | |
396 | ========== | |
397 | No implicit keep | |
398 | ========== | |
399 | # Sieve filter | |
400 | if not header "x-1" "=?ISO-8859-1?Q?=31?=" { discard; } | |
401 | ========== | |
402 | No implicit keep | |
403 | ========== | |
404 | # Sieve filter | |
405 | if header "x-1b" "=?ISO-8859-1?Q?=31=" { discard; } | |
406 | ========== | |
407 | No implicit keep | |
408 | ========== | |
409 | # Sieve filter | |
410 | if header "x-b64" "This is BASE64" { discard; } | |
411 | ========== | |
412 | No implicit keep | |
413 | ========== | |
414 | # Sieve filter | |
415 | if header "x-b64-broken" "=?iso-8859-1?b?VGhpcyBpcyBCQVNFNjQ?=" { discard; } | |
416 | ========== | |
417 | No implicit keep | |
418 | ========== | |
419 | # Sieve filter | |
420 | if header "x-q75total" "0123456789012345678901234567890123456789012345678901234567" { discard; } | |
421 | ========== | |
422 | No implicit keep | |
423 | ========== | |
424 | # Sieve filter | |
425 | if header "x-q76total" "=?ISO-8859-1?Q?01234567890123456789012345678901234567890123456789012345678?=" { discard; } | |
426 | ========== | |
427 | No implicit keep | |
428 | ========== | |
429 | # Sieve filter | |
50c99ba6 | 430 | if header "X-Wrapped" "eins zwei drei" { discard; } |
54c5ebb1 PH |
431 | ========== |
432 | No implicit keep | |
433 | ========== | |
434 | # Sieve filter | |
50c99ba6 | 435 | if header "x-nomimewrap" "=?iso-8859-1?q?abc def ghi?=" { discard; } |
54c5ebb1 PH |
436 | ========== |
437 | No implicit keep | |
438 | ========== | |
439 | # Sieve filter | |
440 | if header "subject" "abcdefghi" { discard; } | |
441 | ========== | |
442 | No implicit keep | |
443 | ========== | |
444 | # Sieve filter | |
445 | if header "x-mixed" "abc def" { discard; } | |
446 | ========== | |
447 | No implicit keep | |
448 | ========== | |
449 | #Sieve filter | |
450 | if true { stop; fileinto "inbox.never"; } | |
451 | ========== | |
452 | Implicit keep |