Docs: warn against using $local_part directly in delivery
[users/jgh/exim.git] / test / scripts / 0000-Basic / 0427
1 # Sieve tests using -bf
2 rmfiltertest
3 catwrite test-data
4 # Sieve filter
5 if address ["From","To"] "marian@abcdefgh.example"
6         { discard; }
7 ****
8 exim -bf test-data <aux-fixed/TESTNUM.message
9 ****
10 catwrite test-data
11 # Sieve filter
12 if address :is "From" "marian@abcdefgh.example"
13         { discard; }
14 ****
15 exim -bf test-data <aux-fixed/TESTNUM.message
16 ****
17 catwrite test-data
18 # Sieve filter
19 if address :is "To" "marian@abcdefgh.example"
20         { discard; }
21 ****
22 exim -bf test-data <aux-fixed/TESTNUM.message
23 ****
24 catwrite test-data
25 # Sieve filter
26 if address :contains "To" "abcdefgh"
27         { discard; }
28 ****
29 exim -bf test-data <aux-fixed/TESTNUM.message
30 ****
31 catwrite test-data
32 # Sieve filter
33 if address :matches "To" "*abc?efgh*"
34         { discard; }
35 ****
36 exim -bf test-data <aux-fixed/TESTNUM.message
37 ****
38 catwrite test-data
39 # Sieve filter
40 if true { discard; }
41 ****
42 exim -bf test-data <aux-fixed/TESTNUM.message
43 ****
44 catwrite test-data
45 # Sieve filter
46 if false { discard; }
47 ****
48 exim -bf test-data <aux-fixed/TESTNUM.message
49 ****
50 catwrite test-data
51 # Sieve filter
52 if allof (false,false) { discard; }
53 ****
54 exim -bf test-data <aux-fixed/TESTNUM.message
55 ****
56 catwrite test-data
57 # Sieve filter
58 if allof (true,false) { discard; }
59 ****
60 exim -bf test-data <aux-fixed/TESTNUM.message
61 ****
62 catwrite test-data
63 # Sieve filter
64 if allof (false,true) { discard; }
65 ****
66 exim -bf test-data <aux-fixed/TESTNUM.message
67 ****
68 catwrite test-data
69 # Sieve filter
70 if allof (true,true) { discard; }
71 ****
72 exim -bf test-data <aux-fixed/TESTNUM.message
73 ****
74 catwrite test-data
75 # Sieve filter
76 if anyof (false,false) { discard; }
77 ****
78 exim -bf test-data <aux-fixed/TESTNUM.message
79 ****
80 catwrite test-data
81 # Sieve filter
82 if anyof (true,false) { discard; }
83 ****
84 exim -bf test-data <aux-fixed/TESTNUM.message
85 ****
86 catwrite test-data
87 # Sieve filter
88 if anyof (false,true) { discard; }
89 ****
90 exim -bf test-data <aux-fixed/TESTNUM.message
91 ****
92 catwrite test-data
93 # Sieve filter
94 if anyof (true,true) { discard; }
95 ****
96 exim -bf test-data <aux-fixed/TESTNUM.message
97 ****
98 catwrite test-data
99 # Sieve filter
100 if not anyof (false,false) { discard; }
101 ****
102 exim -bf test-data <aux-fixed/TESTNUM.message
103 ****
104 catwrite test-data
105 # Sieve filter
106 if not anyof (true,false) { discard; }
107 ****
108 exim -bf test-data <aux-fixed/TESTNUM.message
109 ****
110 catwrite test-data
111 # Sieve filter
112 if not anyof (false,true) { discard; }
113 ****
114 exim -bf test-data <aux-fixed/TESTNUM.message
115 ****
116 catwrite test-data
117 # Sieve filter
118 if not anyof (true,true) { discard; }
119 ****
120 exim -bf test-data <aux-fixed/TESTNUM.message
121 ****
122 catwrite test-data
123 # Sieve filter
124 if header "to" "MARIAN@abcdefgh.example" { discard; }
125 ****
126 exim -bf test-data <aux-fixed/TESTNUM.message
127 ****
128 catwrite test-data
129 # Sieve filter
130 if header :comparator "i;octet" "to" "MARIAN@abcdefgh.example" { discard; }
131 ****
132 exim -bf test-data <aux-fixed/TESTNUM.message
133 ****
134 catwrite test-data
135 # Sieve filter
136 if header :comparator "i;ascii-casemap" "to" "MARIAN@abcdefgh.example" { discard; }
137 ****
138 exim -bf test-data <aux-fixed/TESTNUM.message
139 ****
140 catwrite test-data
141 # Sieve filter
142 require "envelope";
143 if envelope "from" "marian@somenet.example" { discard; }
144 ****
145 exim -bf test-data <aux-fixed/TESTNUM.message
146 ****
147 catwrite test-data
148 # Sieve filter
149 require "envelope";
150 if envelope "from" "offerqn@bpk.example.com" { discard; }
151 ****
152 exim -bf test-data <aux-fixed/TESTNUM.message
153 ****
154 catwrite test-data
155 # Sieve filter
156 if exists [ "X-NotHere", "X-Notheretoo" ] { discard; }
157 ****
158 exim -bf test-data <aux-fixed/TESTNUM.message
159 ****
160 catwrite test-data
161 # Sieve filter
162 if exists [ "X-NotHere", "Delivered-To" ] { discard; }
163 ****
164 exim -bf test-data <aux-fixed/TESTNUM.message
165 ****
166 catwrite test-data
167 # Sieve filter
168 if exists [ "From", "Delivered-To" ] { discard; }
169 ****
170 exim -bf test-data <aux-fixed/TESTNUM.message
171 ****
172 catwrite test-data
173 # Sieve filter
174 if header :contains "X-NotHere" "" { discard; }
175 ****
176 exim -bf test-data <aux-fixed/TESTNUM.message
177 ****
178 catwrite test-data
179 # Sieve filter
180 if header "Delivered-To" "" { discard; }
181 ****
182 exim -bf test-data <aux-fixed/TESTNUM.message
183 ****
184 catwrite test-data
185 # Sieve filter
186 if header :contains "Delivered-To" "" { discard; }
187 ****
188 exim -bf test-data <aux-fixed/TESTNUM.message
189 ****
190 catwrite test-data
191 # Sieve filter
192 if header :contains "Delivered-To" "rc@irc.somenet.example" { discard; }
193 ****
194 exim -bf test-data <aux-fixed/TESTNUM.message
195 ****
196 catwrite test-data
197 # Sieve filter
198 if header "Delivered-To" ["irc@irc.somenet.example"] { discard; }
199 ****
200 exim -bf test-data <aux-fixed/TESTNUM.message
201 ****
202 catwrite test-data
203 # Sieve filter
204 if header "Delivered-To" ["irc@irc.somenet.example","irc@01019somenet.example","some.one"] { discard; }
205 ****
206 exim -bf test-data <aux-fixed/TESTNUM.message
207 ****
208 catwrite test-data
209 # Sieve filter
210 if header "Mime-Version" "1.0" { discard; }
211 ****
212 exim -bf test-data <aux-fixed/TESTNUM.message
213 ****
214 catwrite test-data
215 # Sieve filter
216 if false { discard; }
217 ****
218 exim -bf test-data <aux-fixed/TESTNUM.message
219 ****
220 catwrite test-data
221 # Sieve filter
222 if true { discard; }
223 ****
224 exim -bf test-data <aux-fixed/TESTNUM.message
225 ****
226 catwrite test-data
227 # Sieve filter
228 if true { discard; } else { keep; }
229 ****
230 exim -bf test-data <aux-fixed/TESTNUM.message
231 ****
232 catwrite test-data
233 # Sieve filter
234 if false { keep; } else { discard; }
235 ****
236 exim -bf test-data <aux-fixed/TESTNUM.message
237 ****
238 catwrite test-data
239 # Sieve filter
240 if false { keep; } elsif true { discard; } else { keep; }
241 ****
242 exim -bf test-data <aux-fixed/TESTNUM.message
243 ****
244 catwrite test-data
245 # Sieve filter
246 if true { discard; } elsif true { keep; } else { keep; }
247 ****
248 exim -bf test-data <aux-fixed/TESTNUM.message
249 ****
250 catwrite test-data
251 # Sieve filter
252 if false { keep; }
253         else
254         { if true { discard; } else { keep; } }
255 ****
256 exim -bf test-data <aux-fixed/TESTNUM.message
257 ****
258 catwrite test-data
259 # Sieve filter
260 if header :matches "to" "MA*AN@abc*fg?.example" { discard; }
261 ****
262 exim -bf test-data <aux-fixed/TESTNUM.message
263 ****
264 catwrite test-data
265 # Sieve filter
266 if not header :matches "to" "MA?AN@abc*fg?.example" { discard; }
267 ****
268 exim -bf test-data <aux-fixed/TESTNUM.message
269 ****
270 catwrite test-data
271 # Sieve filter
272 if header :matches "to" "*marian@abcdefgh.example" { discard; }
273 ****
274 exim -bf test-data <aux-fixed/TESTNUM.message
275 ****
276 catwrite test-data
277 # Sieve filter
278 if not header :matches "to" "?marian@abcdefgh.example" { discard; }
279 ****
280 exim -bf test-data <aux-fixed/TESTNUM.message
281 ****
282 catwrite test-data
283 # Sieve filter
284 if header :matches "to" "marian@abcdefgh.example*" { discard; }
285 ****
286 exim -bf test-data <aux-fixed/TESTNUM.message
287 ****
288 catwrite test-data
289 # Sieve filter
290 if not header :matches "to" "marian@abcdefgh.example?" { discard; }
291 ****
292 exim -bf test-data <aux-fixed/TESTNUM.message
293 ****
294 catwrite test-data
295 # Sieve filter
296 if header :matches "x-special1" "\\?*\\*" { discard; }
297 ****
298 exim -bf test-data <aux-fixed/TESTNUM.message
299 ****
300 catwrite test-data
301 # Sieve filter
302 if header :matches "x-special1" "*\0*" { discard; }
303 ****
304 exim -bf test-data <aux-fixed/TESTNUM.message
305 ****
306 catwrite test-data
307 # Sieve filter
308 if not header :matches "x-special1" "*\0*q" { discard; }
309 ****
310 exim -bf test-data <aux-fixed/TESTNUM.message
311 ****
312 catwrite test-data
313 # Sieve filter
314 require "encoded-character";
315 if not header :matches "x-special1" "*${hex:00}*" { discard; }
316 ****
317 exim -bf test-data <aux-fixed/TESTNUM.message
318 ****
319 catwrite test-data
320 # Sieve filter
321 if not header :matches "x-special2" "\\?*\\*" { discard; }
322 ****
323 exim -bf test-data <aux-fixed/TESTNUM.message
324 ****
325 catwrite test-data
326 # Sieve filter
327 if not header :matches "x-special2" "*\0*" { discard; }
328 ****
329 exim -bf test-data <aux-fixed/TESTNUM.message
330 ****
331 catwrite test-data
332 # Sieve filter
333 if size :over 400 {
334             discard;
335             }
336 ****
337 exim -bf test-data <aux-fixed/TESTNUM.message
338 ****
339 catwrite test-data
340 # Sieve filter
341 if size :over 4K {
342             discard;
343             }
344 ****
345 exim -bf test-data <aux-fixed/TESTNUM.message
346 ****
347 catwrite test-data
348 # Sieve filter
349 if size :under 4K { discard; }
350 ****
351 exim -bf test-data <aux-fixed/TESTNUM.message
352 ****
353 catwrite test-data
354 # Sieve filter
355 if size :under 400 { discard; }
356 ****
357 exim -bf test-data <aux-fixed/TESTNUM.message
358 ****
359 catwrite test-data
360 # Sieve filter
361 if false { keep; }
362 ****
363 exim -bf test-data <aux-fixed/TESTNUM.message
364 ****
365 # Syntax checks
366 catwrite test-data
367 # no filter line here
368 if unknowntest { keep; }
369 ****
370 1
371 exim -bf test-data <aux-fixed/TESTNUM.message
372 ****
373 catwrite test-data
374 # Sieve filter
375 if test keep; }
376 ****
377 exim -bf test-data <aux-fixed/TESTNUM.message
378 ****
379 catwrite test-data
380 # Sieve filter
381 if test { keep;
382 ****
383 exim -bf test-data <aux-fixed/TESTNUM.message
384 ****
385 catwrite test-data
386 # Sieve filter
387 if true { unknownaction; }
388 ****
389 exim -bf test-data <aux-fixed/TESTNUM.message
390 ****
391 catwrite test-data
392 # Sieve filter
393 if true { fileinto abcdefgh; }
394 ****
395 exim -bf test-data <aux-fixed/TESTNUM.message
396 ****
397 catwrite test-data
398 # Sieve filter
399 require "fileinto";
400 if true { fileinto "abcdefgh"; }
401 ****
402 exim -bf test-data <aux-fixed/TESTNUM.message
403 ****
404 catwrite test-data
405 # Sieve filter
406 if header ["to"] [ "marian@abcdefgh.example", "achnee"] { discard; }
407 ****
408 exim -bf test-data <aux-fixed/TESTNUM.message
409 ****
410 catwrite test-data
411 # Sieve filter
412 if header "to" [ "egal", "achnee" { keep; }
413 ****
414 exim -bf test-data <aux-fixed/TESTNUM.message
415 ****
416 catwrite test-data
417 # Sieve filter
418 if header "to","from"] "egal" { keep; }
419 ****
420 exim -bf test-data <aux-fixed/TESTNUM.message
421 ****
422 catwrite test-data
423 # Sieve filter
424 if header ["to","from" "egal" { keep; }
425 ****
426 exim -bf test-data <aux-fixed/TESTNUM.message
427 ****
428 catwrite test-data
429 # Sieve filter
430 if header ["to",,"from"] "egal" { keep; }
431 ****
432 exim -bf test-data <aux-fixed/TESTNUM.message
433 ****
434 catwrite test-data
435 # Sieve filter
436 if header ["to",] "egal" { keep; }
437 ****
438 exim -bf test-data <aux-fixed/TESTNUM.message
439 ****
440 catwrite test-data
441 # Sieve filter
442 if header [,"to"] "egal" { keep; }
443 ****
444 exim -bf test-data <aux-fixed/TESTNUM.message
445 ****
446 catwrite test-data
447 # Sieve filter
448 if unknowntest { keep; }
449 ****
450 exim -bf test-data <aux-fixed/TESTNUM.message
451 ****
452 catwrite test-data
453 # Sieve filter
454 if header :matches "to" "egal" { keep; }
455 ****
456 exim -bf test-data <aux-fixed/TESTNUM.message
457 ****
458 catwrite test-data
459 # Sieve filter
460 if header :unknown "to" "egal" { keep; }
461 ****
462 exim -bf test-data <aux-fixed/TESTNUM.message
463 ****
464 catwrite test-data
465 # Sieve filter
466 #
467 require ["fileinto", "envelope"];
468
469 if header :matches "X-Warning" "* is listed at list.dsbl.org*"
470             {
471             keep;               # keep in "In" folder
472             }
473 ****
474 exim -bf test-data <aux-fixed/TESTNUM.message2
475 ****
476 catwrite test-data
477 # Sieve filter
478 if header "x-1" "1" { discard; }
479 ****
480 exim -bf test-data <aux-fixed/TESTNUM.message3
481 ****
482 catwrite test-data
483 # Sieve filter
484 if not header "x-1" "=?ISO-8859-1?Q?=31?=" { discard; }
485 ****
486 exim -bf test-data <aux-fixed/TESTNUM.message3
487 ****
488 catwrite test-data
489 # Sieve filter
490 if header "x-1b" "=?ISO-8859-1?Q?=31=" { discard; }
491 ****
492 exim -bf test-data <aux-fixed/TESTNUM.message3
493 ****
494 catwrite test-data
495 # Sieve filter
496 if header "x-b64" "This is BASE64" { discard; }
497 ****
498 exim -bf test-data <aux-fixed/TESTNUM.message3
499 ****
500 catwrite test-data
501 # Sieve filter
502 if header "x-b64-broken" "=?iso-8859-1?b?VGhpcyBpcyBCQVNFNjQ?=" { discard; }
503 ****
504 exim -bf test-data <aux-fixed/TESTNUM.message3
505 ****
506 catwrite test-data
507 # Sieve filter
508 if header "x-q75total" "0123456789012345678901234567890123456789012345678901234567" { discard; }
509 ****
510 exim -bf test-data <aux-fixed/TESTNUM.message3
511 ****
512 catwrite test-data
513 # Sieve filter
514 if header "x-q76total" "=?ISO-8859-1?Q?01234567890123456789012345678901234567890123456789012345678?=" { discard; }
515 ****
516 exim -bf test-data <aux-fixed/TESTNUM.message3
517 ****
518 catwrite test-data
519 # Sieve filter
520 if header "X-Wrapped" "eins zwei  drei" { discard; }
521 ****
522 exim -bf test-data <aux-fixed/TESTNUM.message3
523 ****
524 catwrite test-data
525 # Sieve filter
526 if header "x-nomimewrap" "=?iso-8859-1?q?abc def  ghi?=" { discard; }
527 ****
528 exim -bf test-data <aux-fixed/TESTNUM.message3
529 ****
530 catwrite test-data
531 # Sieve filter
532 if header "subject" "abcdefghi" { discard; }
533 ****
534 exim -bf test-data <aux-fixed/TESTNUM.message3
535 ****
536 catwrite test-data
537 # Sieve filter
538 if header "x-mixed" "abc def" { discard; }
539 ****
540 exim -bf test-data <aux-fixed/TESTNUM.message3
541 ****
542 catwrite test-data
543 #Sieve filter
544 if true { stop; fileinto "inbox.never"; }
545 ****
546 exim -bf test-data <aux-fixed/TESTNUM.message3
547 ****