used to determine the file or directory name for the delivery. Normally, the
contents of &$address_file$& are used in some way in the string expansion.
.endlist
+.new
+.cindex "tainted data" "in filenames"
+.cindex appendfile "tainted data"
+Tainted data may not be used for a file or directory name.
+This means that, for instance, &$local_part$& cannot be used directly
+as a component of a path. It can however be used as the key for a lookup
+which returns a path (or component).
+.wen
.cindex "Sieve filter" "configuring &(appendfile)&"
were used, and the second one (for mainlog/paniclog) retrieved null
information.
+JH/20 Taint checking: disallow use of tainted data for the appendfile transport
+ file and directory options. Previously this was permitted.
+
Exim version 4.93
-----------------
US"base62d",
US"base64",
US"base64d",
+ US"bless",
US"domain",
US"escape",
US"escape8bit",
EOP_BASE62D,
EOP_BASE64,
EOP_BASE64D,
+ EOP_BLESS,
EOP_DOMAIN,
EOP_ESCAPE,
EOP_ESCAPE8BIT,
continue;
}
+ case EOP_BLESS:
+ /* This is purely for the convenience of the test harness. Do not enable
+ it otherwise as it defeats the taint-checking security. */
+
+ if (f.running_in_test_harness)
+ yield = string_cat(yield, is_tainted(sub)
+ ? string_copy_taint(sub, FALSE) : sub);
+ else
+ {
+ DEBUG(D_expand) debug_printf_indent("bless operator not supported\n");
+ yield = string_cat(yield, sub);
+ }
+ continue;
+
case EOP_EXPAND:
{
uschar *expanded = expand_string_internal(sub, FALSE, NULL, skipping, TRUE, &resetok);
}
rdata->string = data;
-DEBUG(D_route) debug_printf("expanded: '%s'\n", data);
+DEBUG(D_route)
+ debug_printf("expanded: '%s'%s\n", data, is_tainted(data) ? " (tainted)":"");
if (rdata->isfile && data[0] != '/')
{
*************************************************/
/* Copyright (c) University of Cambridge 1995 - 2018 */
+/* Copyright (c) The Exim maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
expand_string_message);
goto ret_panic;
}
+if (is_tainted(path))
+ {
+ addr->message = string_sprintf("Tainted '%s' (file or directory "
+ "name for %s transport) not permitted", path, tblock->name);
+ goto ret_panic;
+ }
if (path[0] != '/')
{
if $sender_address is not fil@ter then finish endif
-save ${local_part:$recipients}
+save ${bless:${local_part:$recipients}}
directory_mode = 0700
envelope_to_add
escape_string = xyz
- file = /home/$local_part/inbox
+ file = /home/${bless:$local_part}/inbox
file_format = "From : appendfile"
no_file_must_exist
group = MAILGROUP
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
headers_add = \nMessage Headers:\n$message_headers\n\
\nRaw Message Headers:\n$message_headers_raw\n
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
# End
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
# End
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
message_suffix =
user = CALLER
allow_filter
local_parts = userx
user = CALLER
- file = DIR/aux-fixed/0015.filter.$local_part
+ file = DIR/aux-fixed/0015.filter.${bless:$local_part}
local_part_prefix = *+
local_part_prefix_optional
pipe_transport = address_pipe
user = CALLER
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
headers_add = X-local_part: $local_part\n\
X-local_part_prefix: $local_part_prefix
user = CALLER
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
use_bsmtp
headers_add = X-local_part: $local_part\n\
allow_filter
user = CALLER
local_parts = userx : CALLER
- file = DIR/aux-fixed/0016.filter.$local_part
+ file = DIR/aux-fixed/0016.filter.${bless:$local_part}
local_part_suffix = +*
local_part_suffix_optional
reply_transport = address_reply
user = CALLER
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
address_reply:
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t2:
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
# End
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
smtp:
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
send_to_server:
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = "X-interface: $interface_address"
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
local_delivery:
driver = appendfile
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = "X-size: $message_size\n\
X-body-size: $message_body_size\n\
X-body: $message_body\n\
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
address_pipe:
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/subdir/$local_part
+ file = DIR/test-mail/subdir/${bless:$local_part}
return_path_add
user = CALLER
no_create_directory
delivery_date_add
envelope_to_add
- file = DIR/test-mail/subdir/$local_part
+ file = DIR/test-mail/subdir/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
debug_print = ">$h_X-one:<\n"
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = "Proto: $received_protocol"
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = "Proto: $received_protocol"
return_path_add
user = CALLER
forward:
driver = redirect
- file = DIR/aux-fixed/TESTNUM.$local_part
+ file = DIR/aux-fixed/TESTNUM.${bless:$local_part}
redirect_router = localuser
require_files = DIR/aux-fixed/TESTNUM.$local_part
retry_use_local_part
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
respond:
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = host_lookup_failed: $host_lookup_failed\n\
host_lookup_deferred: $host_lookup_deferred
user = CALLER
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
quota = $h_quota
quota_warn_threshold = $h_threshold
QWM
appendfile2:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
quota = $h_quota
quota_warn_threshold = $h_threshold
user = CALLER
appendfile3:
driver = appendfile
- file = DIR/test-mail/$local_part${if eq{$sender_address}{}{.bounce}}
+ file = DIR/test-mail/${bless:$local_part}${if eq{$sender_address}{}{.bounce}}
quota_warn_threshold = $h_threshold
user = CALLER
headers_add = X:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = "${if def:h_tadd: {Added: by transport}}"
headers_remove = "${if def::h_tadd:: {tadd}}"
return_path_add
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
current_directory = /
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
check_string =
return_path_add
user = CALLER
use_bsmtp
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
current_directory = /
use_bsmtp
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
transport_filter = /bin/sh -c "echo 'X-Filtered: just checking'; cat"
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
transport_filter = /bin/sh -c "echo 'X-Filtered: just checking'; cat"
current_directory = /
driver = appendfile
check_string = "\1\1\1\1\n"
escape_string = "\1\1\1\1 \n"
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
message_prefix = "\1\1\1\1\n"
message_suffix = "\1\1\1\1\n"
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
file_format = "From : local_delivery :\
MAIL : bsmtp_local_delivery :\
\1\1\1\1\n : mmdf_local_delivery :\
use_bsmtp
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
check_string = "\1\1\1\1\n"
escape_string = "\1\1\1\1 \n"
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
message_prefix = "\1\1\1\1\n"
message_suffix = "\1\1\1\1\n"
user = CALLER
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
create_file = belowhome
file = ${lookup{$local_part}lsearch{DIR/aux-fixed/TESTNUM.filelist}\
{${if match{$value}{^/}{}{DIR/}}$value}\
- {DIR/test-mail/$local_part}}
+ {DIR/test-mail/${bless:$local_part}}}
user = CALLER
# ----- Retry -----
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
appendfile:
driver = appendfile
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
headers_add = Added: $address_data
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = redirect
allow_filter
no_check_local_user
- file = DIR/aux-fixed/TESTNUM.$local_part
+ file = DIR/aux-fixed/TESTNUM.${bless:$local_part}
retry_use_local_part
user = CALLER
address_data = $address_data-forward
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
headers_add = Address-Data: >$address_data<
appendfile:
driver = appendfile
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
quota = 20
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
lock_interval = 1s
lock_retries = 2
user = CALLER
local_delivery_fcntl:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
lock_interval = 1s
lock_retries = 2
no_use_lockfile
local_delivery_fcntl_blocking:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
lock_fcntl_timeout = 2s
lock_interval = 1s
lock_retries = 2
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
filtered_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
transport_filter = DIR/bin/fd -f
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
list:
driver = redirect
domains = list.test.ex
- file = ${if exists{DIR/aux-fixed/TESTNUM.list.$local_part} \
+ file = ${if exists{DIR/aux-fixed/TESTNUM.list.${bless:$local_part}} \
{DIR/aux-fixed/TESTNUM.list.$local_part}fail}
no_more
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = $local_part
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
address_pipe:
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
address_pipe:
local_delivery:
driver = appendfile
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
headers_add = X-tpt-hdr: 1
headers_add = ${if bool{false} {X-tpt-hdr: 2}}
local_delivery:
driver = appendfile
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path = ${if eq{$return_path}{trakill@test.ex}{}fail}
return_path_add
user = CALLER
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
quota = $h_quota
quota_warn_threshold = $h_threshold
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = home: HOME=$home
user = CALLER
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
pipe:
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
pipe:
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
autoreply:
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
autoreply:
local_delivery:
driver = appendfile
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
quota = 500
no_quota_is_inclusive
user = CALLER
driver = appendfile
batch_max = 100
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
message_size_limit = 50
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
pipe:
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
headers_add = Address-Data: >$address_data<
message_prefix = "HELO x.y.z\n"
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
forward:
driver = redirect
no_check_local_user
- file = DIR/aux-fixed/TESTNUM.$local_part.forward
+ file = DIR/aux-fixed/TESTNUM.${bless:$local_part}.forward
retry_use_local_part
all:
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
autoreply:
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
driver = redirect
allow_defer
caseful_local_part
- data = $local_part
+ data = ${bless:$local_part}
file_transport = address_file
pipe_transport = address_pipe
retry_use_local_part
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
address_file:
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = Port: $sender_host_port
user = CALLER
local_delivery_rewrite:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_rewrite = a@test.ex a-rewrite@test.ex
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
smtp_rewrite:
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
address_reply:
driver = redirect
allow_defer
caseful_local_part
- data = $local_part
+ data = ${bless:$local_part}
file_transport = address_file
hide_child_in_errmsg
pipe_transport = address_pipe
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
address_file:
local:
driver = appendfile
directory_mode = 3777
- file = DIR/test-mail/subdir/$local_part
+ file = DIR/test-mail/subdir/${bless:$local_part}
user = CALLER
local:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
address_reply:
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
address_file:
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t2:
t0:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
bad_return:
exp_fail:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
home_directory = ${if rhubarb
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
quota = ${if eq{$local_part}{userx}{3}{10000}}
local_delivery2:
driver = appendfile
retry_use_local_part = false
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
quota = 3
current_directory = /
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
envelope_to_add
return_path_add
skip_syntax_errors
local_parts = ^list
syntax_errors_to = postmaster@test.ex
- file = DIR/aux-fixed/TESTNUM.$local_part
+ file = DIR/aux-fixed/TESTNUM.${bless:$local_part}
r1a:
driver = redirect
skip_syntax_errors
local_parts = ^nmlist
syntax_errors_to = postmaster@test.ex
- file = DIR/aux-fixed/TESTNUM.$local_part
+ file = DIR/aux-fixed/TESTNUM.${bless:$local_part}
no_more
r2:
syntax_errors_to = postmaster@test.ex
syntax_errors_text = "There's an error in your filter file.\n\
The file has been ignored."
- file = DIR/aux-fixed/TESTNUM.$local_part
+ file = DIR/aux-fixed/TESTNUM.${bless:$local_part}
allow_filter
router_home_directory = DIR
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# ----- Routers -----
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
envelope_to_add
return_path_add
skip_syntax_errors
local_parts = ^list
syntax_errors_to = postmaster@test.ex
- file = DIR/aux-fixed/TESTNUM.$local_part
+ file = DIR/aux-fixed/TESTNUM.${bless:$local_part}
r1a:
driver = redirect
skip_syntax_errors
local_parts = ^nmlist
syntax_errors_to = postmaster@test.ex
- file = DIR/aux-fixed/TESTNUM.$local_part
+ file = DIR/aux-fixed/TESTNUM.${bless:$local_part}
no_more
r2:
syntax_errors_to = postmaster@test.ex
syntax_errors_text = "There's an error in your filter file.\n\
The file has been ignored."
- file = DIR/aux-fixed/TESTNUM.$local_part
+ file = DIR/aux-fixed/TESTNUM.${bless:$local_part}
allow_filter
router_home_directory = DIR/
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# ----- Routers -----
t1:
driver = appendfile
- file = DIR/test-mail/${if eq{$address_data}{}{$local_part}{$address_data}}
+ file = DIR/test-mail/${if eq{$address_data}{}{${bless:$local_part}}{$address_data}}
user = CALLER
# ----- Routers -----
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# ----- Routers -----
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
headers_add = interface-port: $interface_port\n\
received-port: $received_port
t2:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t3:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = root
# ----- Retry -----
t2:
driver = appendfile
batch_max = 100
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
envelope_to_add
user = CALLER
t3:
driver = appendfile
batch_max = 100
- file = DIR/test-mail/$domain
+ file = DIR/test-mail/${bless:$domain}
envelope_to_add
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
r1:
driver = redirect
- data = $local_part
+ data = ${bless:$local_part}
file_transport = ${if eq {$address_file}{/a/b/c}{tf1}{tf2}}
directory_transport = ${if match{$address_file}{//\$}{td2}{td1}}
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
shadow_transport = t3
driver = redirect
domains = lists.test.ex
local_part_suffix = -request
- file = DIR/aux-fixed/TESTNUM/$local_part$local_part_suffix
+ file = DIR/aux-fixed/TESTNUM/${bless:$local_part}$local_part_suffix
r2:
driver = redirect
domains = lists.test.ex
senders = ${if exists {DIR/aux-fixed/TESTNUM/$local_part}\
{lsearch;DIR/aux-fixed/TESTNUM/$local_part}{*}}
- file = DIR/aux-fixed/TESTNUM/$local_part
+ file = DIR/aux-fixed/TESTNUM/${bless:$local_part}
forbid_pipe
forbid_file
one_time
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t2:
${if exists {DIR/aux-fixed/TESTNUM/$local_part}\
{lsearch;DIR/aux-fixed/TESTNUM/$local_part}{*}}\
}}
- file = DIR/aux-fixed/TESTNUM/$local_part$local_part_suffix
+ file = DIR/aux-fixed/TESTNUM/${bless:$local_part}$local_part_suffix
forbid_pipe
forbid_file
one_time
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t2:
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
message_size_limit = $local_part
user = CALLER
bounce:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
quota = 5
user = CALLER
bounce:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
local_delivery:
driver = appendfile
directory = DIR/test-mail
- directory_file = $local_part
+ directory_file = ${bless:$local_part}
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
address_file:
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t2:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
appendfile:
driver = appendfile
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
envelope_to_add
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
quota = 20
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
envelope_to_add
t1:
driver = appendfile
user = CALLER
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = "\n\
TO: $h_to:\n\
--------------------------------\n\
t1:
driver = appendfile
user = CALLER
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
# End
t1:
driver = appendfile
user = CALLER
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
# End
t1:
driver = appendfile
user = CALLER
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
# End
t1:
driver = appendfile
user = CALLER
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
# End
t2:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = X-shadowed:
user = CALLER
t2:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# Successful local transport
ut1:
driver = appendfile
- file = DIR/test-mail/$local_part-u
+ file = DIR/test-mail/${bless:$local_part}-u
user = CALLER
return_path_add
envelope_to_add
# Real delivery
real:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
return_path_add
envelope_to_add
# Successful local transport
ut1:
driver = appendfile
- file = DIR/test-mail/$local_part-u
+ file = DIR/test-mail/${bless:$local_part}-u
user = CALLER
return_path_add
envelope_to_add
# Real delivery
real:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
return_path_add
envelope_to_add
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
r1:
driver = redirect
local_parts = aaaa
- file = DIR/non-exist/$local_part
+ file = DIR/non-exist/${bless:$local_part}
r2:
driver = redirect
local_parts = bbbb
ignore_enotdir
- file = DIR/non-exist/$local_part
+ file = DIR/non-exist/${bless:$local_part}
r3:
driver = accept
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t2:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
user = CALLER
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
transport_filter = FILTER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t2:
t2:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
user = CALLER
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = "\n\
FROM: $h_from:\n\
--------------------------------\n\
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_rewrite = *@* abc@x.y.z
user = CALLER
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} \
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
t2:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
use_bsmtp
AFFIX
driver = appendfile
envelope_to_add
use_bsmtp
- file = DIR/test-mail/$sender_address_local_part
+ file = DIR/test-mail/${bless:$sender_address_local_part}
user = CALLER
batch_max = 20000
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t2:
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t2:
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# ----- Retry -----
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t2:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_rewrite = \N$^\N bogus@bogus fw
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t2:
t3:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t4:
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
quota = 1000
MSIZE
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
transport_filter = /non/existent/file
user = EXIMUSER
ALLOW
FORBID
- file = DIR/aux-fixed/TESTNUM.$local_part
+ file = DIR/aux-fixed/TESTNUM.${bless:$local_part}
# ----- Retry -----
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t2:
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t0:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
t0:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
envelope_to_add
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t2:
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
lmtp:
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
driver = redirect
local_part_prefix = file-
local_part_suffix = =*
- data = DIR/test-mail/${substr_1:$local_part_suffix}
+ data = DIR/test-mail/${bless:${substr_1:$local_part_suffix}}
file_transport = t1
r2:
t1:
driver = appendfile
user = CALLER
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
user = CALLER
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
# End
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t2:
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
--- /dev/null
+# Exim test configuration 0005
+
+.include DIR/aux-var/std_conf_prefix
+
+
+# ----- Main settings -----
+
+domainlist local_domains = @
+
+acl_smtp_rcpt = check_recipient
+trusted_users = CALLER
+
+
+# ----- ACL -----
+
+begin acl
+
+check_recipient:
+ accept hosts = :
+ accept domains = +local_domains
+ deny message = relay not permitted
+
+# ----- Routers -----
+
+begin routers
+
+localuser:
+ driver = accept
+ check_local_user
+ transport = local_delivery
+
+# ----- Transports -----
+
+begin transports
+
+local_delivery:
+ driver = appendfile
+ file = DIR/test-mail/$local_part
+
+# End
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = "X-body-linecount: $body_linecount\n\
X-message-linecount: $message_linecount\n\
X-received-count: $received_count"
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
tofile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
event_action = ${acl {ev_log}}
local_delivery:
driver = appendfile
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
headers_add = X-r1: <$r_r1>\nX-r2: <$r_r2>\nX-r3: <$r_r3>
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = "X-body-linecount: $body_linecount\n\
X-message-linecount: $message_linecount\n\
X-received-count: $received_count"
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = "X-body-linecount: $body_linecount\n\
X-message-linecount: $message_linecount\n\
X-received-count: $received_count"
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = "X-body-linecount: $body_linecount\n\
X-message-linecount: $message_linecount\n\
X-received-count: $received_count"
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
send_to_server1:
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_in_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_in_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
remote_delivery:
local_delivery:
driver = appendfile
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
local_delivery:
driver = appendfile
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
smtp:
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
# End
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
file:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
file:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
user = CALLER
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = "X-body-linecount: $body_linecount\n\
X-message-linecount: $message_linecount\n\
X-received-count: $received_count"
user = CALLER
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = "X-body-linecount: $body_linecount\n\
X-message-linecount: $message_linecount\n\
X-received-count: $received_count"
user = CALLER
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = "X-body-linecount: $body_linecount\n\
X-message-linecount: $message_linecount\n\
X-received-count: $received_count"
file:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
file:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
tfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
tsmtp:
tfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
tsmtp:
appendfile:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# ----- Retry -----
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
create_file = belowhome
directory = ${lookup{$local_part}lsearch{DIR/aux-fixed/TESTNUM.filelist}\
{${if match{$value}{^/}{}{DIR/}}$value}\
- {DIR/test-mail/$local_part}}
+ {DIR/test-mail/${bless:$local_part}}}
user = CALLER
local_delivery:
driver = appendfile
- directory = DIR/test-mail/$local_part
+ directory = DIR/test-mail/${bless:$local_part}
maildir_format
quota = 1.5K
user = CALLER
local_delivery2:
driver = appendfile
- directory = DIR/test-mail/$local_part/
+ directory = DIR/test-mail/${bless:$local_part}/
maildir_format
quota = 1.5K
user = CALLER
t1:
driver = appendfile
- directory = DIR/test-mail/$local_part
+ directory = DIR/test-mail/${bless:$local_part}
user = CALLER
maildir_format
maildir_use_size_file
t1:
driver = appendfile
- directory = DIR/test-mail/$local_part
+ directory = DIR/test-mail/${bless:$local_part}
user = CALLER
maildir_format
maildir_use_size_file
t1:
driver = appendfile
- directory = DIR/test-mail/$local_part
+ directory = DIR/test-mail/${bless:$local_part}
user = CALLER
maildir_format
maildir_use_size_file
t1:
driver = appendfile
- directory = DIR/test-mail/$local_part
+ directory = DIR/test-mail/${bless:$local_part}
user = CALLER
maildir_format
mailbox_size = 100K
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
file_format = "From : local_delivery :\
*mbx*\r\n : mbx_local_delivery :\
tpmissing : tpmissing"
use_bsmtp
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
check_string =
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
mbx_format
message_prefix =
return_path_add
envelope_to_add
headers_add = X-Recipient: local_part=$local_part domain=$domain\n\
X-Home: $home
- file = DIR/test-mail/${if eq{$sender_address}{}{copied}{$h_mailbox:}}
+ file = DIR/test-mail/${if eq{$sender_address}{}{copied}{${bless:$h_mailbox:}}}
user = CALLER
lmtp:
driver = appendfile
delivery_date_add
envelope_to_add
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
return_path_add
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
userx_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
message_suffix = "$address_data\n"
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
t1:
driver = appendfile
- file = DIR/test-mail/${if eq{$address_data}{}{$local_part}{$address_data}}
+ file = DIR/test-mail/${if eq{$address_data}{}{${bless:$local_part}}{$address_data}}
user = CALLER
# ----- Routers -----
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# ----- Routers -----
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
headers_add = TLS: cipher=$tls_cipher peerdn=$tls_peerdn
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
# End
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
local_delivery:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
headers_add = ${if eq {$local_scan_data}{}{}{LSD: $local_scan_data}}
t1:
driver = appendfile
- file = DIR/test-mail/$local_part
+ file = DIR/test-mail/${bless:$local_part}
user = CALLER
headers_add = X-lsd: >$local_scan_data<
--- /dev/null
+1999-03-02 09:44:33 10HmaX-0005vi-00 <= someone@some.domain U=CALLER P=local-smtp S=sss
+1999-03-02 09:44:33 10HmaX-0005vi-00 == CALLER@the.local.host.name R=localuser T=local_delivery defer (-1): Tainted 'TESTSUITE/test-mail/CALLER' (file or directory name for local_delivery transport) not permitted
--- /dev/null
+1999-03-02 09:44:33 Received from someone@some.domain U=CALLER P=local-smtp S=sss
+1999-03-02 09:44:33 CALLER@the.local.host.name R=localuser T=local_delivery defer (-1): Tainted 'TESTSUITE/test-mail/CALLER' (file or directory name for local_delivery transport) not permitted
--- /dev/null
+1999-03-02 09:44:33 10HmaX-0005vi-00 == CALLER@the.local.host.name R=localuser T=local_delivery defer (-1): Tainted 'TESTSUITE/test-mail/CALLER' (file or directory name for local_delivery transport) not permitted
--- /dev/null
+# tainted data for appendfile file option
+exim -bs -odi
+mail from:someone@some.domain
+rcpt to:CALLER@HOSTNAME
+data
+.
+quit
+****
expanded file: TESTSUITE/aux-fixed/0084.yes
stat() yielded 0
calling forward router
-rda_interpret (file): 'TESTSUITE/aux-fixed/0084.$local_part'
+rda_interpret (file): 'TESTSUITE/aux-fixed/0084.${bless:$local_part}'
expanded: 'TESTSUITE/aux-fixed/0084.yes'
-ssss (tainted) bytes read from TESTSUITE/aux-fixed/0084.yes
+ssss bytes read from TESTSUITE/aux-fixed/0084.yes
file is not a filter file
parse_forward_list: userx@test.ex
y.z in "! +local_domains"? yes (end of list)
calling fail_remote_domains router
rda_interpret (string): ':fail: unrouteable mail domain "$domain"'
-expanded: ':fail: unrouteable mail domain "y.z"'
+expanded: ':fail: unrouteable mail domain "y.z"' (tainted)
file is not a filter file
parse_forward_list: :fail: unrouteable mail domain "y.z"
extract item: :fail: unrouteable mail domain "y.z"
y.z in "! +local_domains"? yes (end of list)
calling fail_remote_domains router
rda_interpret (string): ':fail: unrouteable mail domain "$domain"'
-expanded: ':fail: unrouteable mail domain "y.z"'
+expanded: ':fail: unrouteable mail domain "y.z"' (tainted)
file is not a filter file
parse_forward_list: :fail: unrouteable mail domain "y.z"
extract item: :fail: unrouteable mail domain "y.z"
smart.domain in "! +local_domains"? yes (end of list)
calling fail_remote_domains router
rda_interpret (string): ':fail: unrouteable mail domain "$domain"'
-expanded: ':fail: unrouteable mail domain "smart.domain"'
+expanded: ':fail: unrouteable mail domain "smart.domain"' (tainted)
file is not a filter file
parse_forward_list: :fail: unrouteable mail domain "smart.domain"
extract item: :fail: unrouteable mail domain "smart.domain"
--------> r1 router <--------
local_part=/a/b/c domain=myhost.test.ex
calling r1 router
-rda_interpret (string): '$local_part'
+rda_interpret (string): '${bless:$local_part}'
expanded: '/a/b/c'
file is not a filter file
parse_forward_list: /a/b/c
--------> r1 router <--------
local_part=/x/y/z domain=myhost.test.ex
calling r1 router
-rda_interpret (string): '$local_part'
+rda_interpret (string): '${bless:$local_part}'
expanded: '/x/y/z'
file is not a filter file
parse_forward_list: /x/y/z
kilos in "kilos"? yes (matched "kilos")
calling r3 router
rda_interpret (string): '$local_part@$domain'
-expanded: 'kilos@recurse.test.ex.test.ex'
+expanded: 'kilos@recurse.test.ex.test.ex' (tainted)
file is not a filter file
parse_forward_list: kilos@recurse.test.ex.test.ex
extract item: kilos@recurse.test.ex.test.ex
processing address_data
calling r1 router
rda_interpret (string): '$local_part@$domain.test.ex'
-expanded: 'kilos@thishost.test.ex'
+expanded: 'kilos@thishost.test.ex' (tainted)
file is not a filter file
parse_forward_list: kilos@thishost.test.ex
extract item: kilos@thishost.test.ex
processing address_data
calling r1 router
rda_interpret (string): '$local_part@$domain.test.ex'
-expanded: 'solik@otherhost.test.ex'
+expanded: 'solik@otherhost.test.ex' (tainted)
file is not a filter file
parse_forward_list: solik@otherhost.test.ex
extract item: solik@otherhost.test.ex
processing address_data
calling r3 router
rda_interpret (string): '$local_part@$original_domain.sub.test.ex'
-expanded: 'solik@otherhost.sub.test.ex'
+expanded: 'solik@otherhost.sub.test.ex' (tainted)
file is not a filter file
parse_forward_list: solik@otherhost.sub.test.ex
extract item: solik@otherhost.sub.test.ex
checking domains
calling r4 router
rda_interpret (string): ':fail:Can't route to $domain'
-expanded: ':fail:Can't route to otherhost.sub.test.ex'
+expanded: ':fail:Can't route to otherhost.sub.test.ex' (tainted)
file is not a filter file
parse_forward_list: :fail:Can't route to otherhost.sub.test.ex
extract item: :fail:Can't route to otherhost.sub.test.ex
processing address_data
calling r1 router
rda_interpret (string): '$local_part@$domain.test.ex'
-expanded: 'xxx@ten-1.test.ex'
+expanded: 'xxx@ten-1.test.ex' (tainted)
file is not a filter file
parse_forward_list: xxx@ten-1.test.ex
extract item: xxx@ten-1.test.ex
processing address_data
calling r1 router
rda_interpret (string): '$local_part@$domain.test.ex'
-expanded: 'xxx@testsub.test.ex'
+expanded: 'xxx@testsub.test.ex' (tainted)
file is not a filter file
parse_forward_list: xxx@testsub.test.ex
extract item: xxx@testsub.test.ex
processing address_data
calling r3 router
rda_interpret (string): '$local_part@$original_domain.sub.test.ex'
-expanded: 'xxx@testsub.sub.test.ex'
+expanded: 'xxx@testsub.sub.test.ex' (tainted)
file is not a filter file
parse_forward_list: xxx@testsub.sub.test.ex
extract item: xxx@testsub.sub.test.ex
checking local_parts
calling cccc_redirect router
rda_interpret (string): 'cccc@$domain, defer_cccc@$domain'
-expanded: 'cccc@myhost.test.ex, defer_cccc@myhost.test.ex'
+expanded: 'cccc@myhost.test.ex, defer_cccc@myhost.test.ex' (tainted)
file is not a filter file
parse_forward_list: cccc@myhost.test.ex, defer_cccc@myhost.test.ex
extract item: cccc@myhost.test.ex
checking "condition" "${if first_delivery{yes}{no}}"...
calling bbbb router
rda_interpret (string): 'bbbb@$domain, defer_bbbb@$domain'
-expanded: 'bbbb@myhost.test.ex, defer_bbbb@myhost.test.ex'
+expanded: 'bbbb@myhost.test.ex, defer_bbbb@myhost.test.ex' (tainted)
file is not a filter file
parse_forward_list: bbbb@myhost.test.ex, defer_bbbb@myhost.test.ex
extract item: bbbb@myhost.test.ex
checking "condition" "${if first_delivery{yes}{no}}"...
calling unseen_aaaa router
rda_interpret (string): 'defer_aaaa@$domain'
-expanded: 'defer_aaaa@myhost.test.ex'
+expanded: 'defer_aaaa@myhost.test.ex' (tainted)
file is not a filter file
parse_forward_list: defer_aaaa@myhost.test.ex
extract item: defer_aaaa@myhost.test.ex
checking "condition" "${if first_delivery{no}{yes}}"...
calling cccc_2nd_time router
rda_interpret (string): '$local_part@$domain'
-expanded: 'cccc@myhost.test.ex'
+expanded: 'cccc@myhost.test.ex' (tainted)
file is not a filter file
parse_forward_list: cccc@myhost.test.ex
extract item: cccc@myhost.test.ex
checking local_parts
calling cccc_redirect router
rda_interpret (string): 'cccc@$domain, defer_cccc@$domain'
-expanded: 'cccc@myhost.test.ex, defer_cccc@myhost.test.ex'
+expanded: 'cccc@myhost.test.ex, defer_cccc@myhost.test.ex' (tainted)
file is not a filter file
parse_forward_list: cccc@myhost.test.ex, defer_cccc@myhost.test.ex
extract item: cccc@myhost.test.ex
checking "condition" "${if first_delivery{no}{yes}}"...
calling cccc_2nd_time router
rda_interpret (string): '$local_part@$domain'
-expanded: 'cccc@myhost.test.ex'
+expanded: 'cccc@myhost.test.ex' (tainted)
file is not a filter file
parse_forward_list: cccc@myhost.test.ex
extract item: cccc@myhost.test.ex
checking local_parts
calling cccc_redirect router
rda_interpret (string): 'cccc@$domain, defer_cccc@$domain'
-expanded: 'cccc@myhost.test.ex, defer_cccc@myhost.test.ex'
+expanded: 'cccc@myhost.test.ex, defer_cccc@myhost.test.ex' (tainted)
file is not a filter file
parse_forward_list: cccc@myhost.test.ex, defer_cccc@myhost.test.ex
extract item: cccc@myhost.test.ex
save TESTSUITE/test-mail/file
pipe "/bin/sh -c exit"
mail subject autoreply
-text "This is an autoreply"'
+text "This is an autoreply"' (tainted)
data is an Exim filter program
Filter: start of processing
Filter: end of processing
checking "condition" "${if first_delivery{no}{yes}}"...
calling aaaa_2nd_time router
rda_interpret (string): 'aaaa@$domain'
-expanded: 'aaaa@myhost.test.ex'
+expanded: 'aaaa@myhost.test.ex' (tainted)
file is not a filter file
parse_forward_list: aaaa@myhost.test.ex
extract item: aaaa@myhost.test.ex
save TESTSUITE/test-mail/file
pipe "/bin/sh -c exit"
mail subject autoreply
-text "This is an autoreply"'
+text "This is an autoreply"' (tainted)
data is an Exim filter program
Filter: start of processing
Filter: end of processing
checking local_parts
calling aaaa_redirect router
rda_interpret (string): 'bbbb@$domain, cccc@$domain'
-expanded: 'bbbb@myhost.test.ex, cccc@myhost.test.ex'
+expanded: 'bbbb@myhost.test.ex, cccc@myhost.test.ex' (tainted)
file is not a filter file
parse_forward_list: bbbb@myhost.test.ex, cccc@myhost.test.ex
extract item: bbbb@myhost.test.ex
local_part=bbbb domain=myhost.test.ex
checking local_parts
calling r2 router
-rda_interpret (file): 'TESTSUITE/non-exist/$local_part'
+rda_interpret (file): 'TESTSUITE/non-exist/${bless:$local_part}'
expanded: 'TESTSUITE/non-exist/bbbb'
TESTSUITE/non-exist/bbbb does not exist
ignore_enotdir set => skip checking parent directory
local_part=aaaa domain=myhost.test.ex
checking local_parts
calling r1 router
-rda_interpret (file): 'TESTSUITE/non-exist/$local_part'
+rda_interpret (file): 'TESTSUITE/non-exist/${bless:$local_part}'
expanded: 'TESTSUITE/non-exist/aaaa'
TESTSUITE/non-exist/aaaa does not exist
checking parent directory
domain1 in "+special_domains"? yes (matched "+special_domains" - cached)
calling r1 router
rda_interpret (string): '$local_part@xxx.$domain'
-expanded: 'abc@xxx.domain1'
+expanded: 'abc@xxx.domain1' (tainted)
file is not a filter file
parse_forward_list: abc@xxx.domain1
extract item: abc@xxx.domain1
domain1 in "+special_domains"? yes (matched "+special_domains" - cached)
calling r1 router
rda_interpret (string): '$local_part@xxx.$domain'
-expanded: 'abc@xxx.domain1'
+expanded: 'abc@xxx.domain1' (tainted)
file is not a filter file
parse_forward_list: abc@xxx.domain1
extract item: abc@xxx.domain1
--- /dev/null
+1999-03-02 09:44:33 10HmaX-0005vi-00 == CALLER@the.local.host.name R=localuser T=local_delivery defer (-1): Tainted 'TESTSUITE/test-mail/CALLER' (file or directory name for local_delivery transport) not permitted
--- /dev/null
+220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+354 Enter message, ending with "." on a line by itself\r
+250 OK id=10HmaX-0005vi-00\r
+221 the.local.host.name closing connection\r