Thanks Jeremy. I tried the following, and $local_part_data is blank.
Best,
Adam
# router
request_tracker:
driver = redirect
domains = rt.example.com
local_parts = /usr/local/etc/exim/queuenames/list.of.requestors
local_part_suffix = -comment
local_part_suffix_optional
pipe_transport = request_tracker_pipe
data = "|/usr/local/bin/rt-mailgate \
--queue \"${local_part_data}\" \
--action ${substr_1:${if
eq{$local_part_suffix}{} \
{-correspond}{$local_part_suffix}} } \
--url http://rt.example.com"
user = mailnull
# transport
request_tracker_pipe:
driver = pipe
return_fail_output
allow_commands = /usr/local/bin/rt-mailgate
On 2021-01-29 11:25, Jeremy Harris via Exim-users wrote:
> On 28/01/2021 03:20, Adam via Exim-users wrote:
>> There's an issue here with $local_part. Isn't it detainted by the use
>> of local_parts to only run this if $local_part was found in the file?
>
> No. The "lookup" (in a general sense including, relevant here, a
> search in a list
> that happens be one element that indirects to a file) done by the
> "localparts="
> option sets a variable called "local_part_data" with an untainted
> value.
> The variable "local_part" is unchanged, carrying tainted data.
>
>> $local_part_data is blank.
>
> At what point in the flow did you check this?
> --
> Cheers,
> Jeremy