appendfile: taint-enforce file & directory options
[users/jgh/exim.git] / test / confs / 0428
index 0fb20a14a8c60383980639ec1eea38b6a3c70635..b0bcb6548908fa7d753e326cbd3bf7dfef48bd47 100644 (file)
@@ -1,12 +1,7 @@
 # Exim test configuration 0428
 
-exim_path = EXIM_PATH
-host_lookup_order = bydns
-spool_directory = DIR/spool
-log_file_path = DIR/spool/log/%slog
-gecos_pattern = ""
-gecos_name = CALLER_NAME
-tls_advertise_hosts =
+.include DIR/aux-var/std_conf_prefix
+
 
 # ----- Main settings -----
 
@@ -41,16 +36,112 @@ r1:
   user = CALLER
   file_transport = t1
 
-r2:
+r2_8:
+  driver = redirect
+  local_parts = userx8
+  allow_filter
+  data = #Sieve filter\n \
+       require["fileinto","comparator-i;ascii-numeric"]; \
+        if header :comparator "i;ascii-numeric" "X-Sieve" "99" { \
+          fileinto "inbox.JUNK"; \
+          stop; \
+        }
+  user = CALLER
+  file_transport = t1
+  reply_transport = t3
+
+r2_9:
+  driver = redirect
+  local_parts = userx9
+  allow_filter
+  data = #Sieve filter\n \
+       require["fileinto","comparator-i;ascii-numeric"]; \
+        if header :comparator "i;ascii-numeric" "X-Sieve" "98" { \
+          fileinto "inbox.JUNK"; \
+          stop; \
+        }
+  user = CALLER
+  file_transport = t1
+  reply_transport = t3
+
+r2_10:
+  driver = redirect
+  local_parts = userx10
+  allow_filter
+  data = #Sieve filter\n \
+        require["fileinto","comparator-i;ascii-numeric"]; \
+        if header :comparator "i;ascii-numeric" "X-Sieve" "99" { \
+          fileinto "inbox.JUNK"; \
+          stop; \
+        }
+  user = CALLER
+  file_transport = t1
+  reply_transport = t3
+
+r2_11:
+  driver = redirect
+  local_parts = userx11
+  allow_filter
+  data = #Sieve filter\n \
+        require["fileinto","comparator-i;ascii-numeric"]; \
+        if header :comparator "i;ascii-numeric" "X-Sieve" "-99" { \
+          fileinto "inbox.JUNK"; \
+          stop; \
+        }
+  user = CALLER
+  file_transport = t1
+  reply_transport = t3
+
+r2_12:
+  driver = redirect
+  local_parts = userx12
+  allow_filter
+  data = #Sieve filter\n \
+        require["fileinto","comparator-i;ascii-numeric"]; \
+        if header :comparator "i;ascii-numeric" "X-Sieve" "-98" { \
+          fileinto "inbox.JUNK"; \
+          stop; \
+        }
+  user = CALLER
+  file_transport = t1
+  reply_transport = t3
+
+r2_13:
+  driver = redirect
+  local_parts = userx13 : someone13
+  allow_filter
+  data = #Sieve filter\n \
+        require ["vacation"];  \
+        vacation "I am gone.  Not here.";
+  user = CALLER
+  file_transport = t1
+  reply_transport = t3
+  sieve_vacation_directory = DIR/test-vacation-directory
+
+r2_14:
   driver = redirect
+  local_parts = userx14
   local_part_suffix = -*
   local_part_suffix_optional
   allow_filter
+  data = #Sieve filter\n \
+        require ["envelope","fileinto"];  \
+        if envelope :matches :localpart "to" "*-suffix" { \
+          fileinto "userx-sawsuffix"; \
+          stop;  \
+        }   
+  user = CALLER
+  file_transport = t1
+  reply_transport = t3
+
+r2:
+  driver = redirect
+  allow_filter
+  skip_syntax_errors
   data = "#Sieve filter\n$h_filter:"
   user = CALLER
   file_transport = t1
   reply_transport = t3
-  sieve_vacation_directory = DIR/test-vacation-directory
 
 
 # ----- Transports -----
@@ -60,7 +151,7 @@ begin transports
 t1:
   driver = appendfile
   file = ${if eq{$address_file}{inbox} \
-              {DIR/test-mail/$local_part} \
+              {DIR/test-mail/${bless:$local_part}} \
               {${if eq{${substr_0_1:$address_file}}{/} \
                     {$address_file} \
                     {DIR/test-mail/$address_file} \
@@ -73,7 +164,7 @@ t1:
 
 t2:
   driver = appendfile
-  file = DIR/test-mail/$local_part
+  file = DIR/test-mail/${bless:$local_part}
   delivery_date_add
   envelope_to_add
   return_path_add