Hello,
Exim version: 4.86
I have an error when trying to process email messages with the filter
that is called like this (in ACL section):
deny condition = ${if >={${run{/etc/exim/acl/mail-filter.pl \
--sender $sender_address \
--from $header_from: \
--to $header_to: \
--cc $header_cc: \
--bcc $header_bcc: \
--replyto $header_reply-to: \
{}{}}$runrc} {1} }
set acl_m_msg = $value
set acl_m_rto = ${readfile{/etc/exim/acl/inform.txt}}
continue = ${run{/etc/exim/acl/inform.pl --reportto
"$acl_m_rto" --sender "$sender_address" --from "$header_from:" --to
"$header_to:" --cc "$header_cc:" --replyto "$header_reply-to:" --subject
"$value"}{}{}}
message = $acl_m_msg
The following is in Exim main.log:
2016-01-20 17:33:54 1aLr1N-0007qI-Vn H=example.com [XX.XX.XX>XX]
X=TLSv1:ECDHE-RSA-AES128-SHA:128 CV=no F=<sender@???>
temporarily rejected after DATA: failed to expand ACL string "${if
>={${run{/etc/exim/acl/mail-filter.pl --sender $sender_address --from $header_from: --to $header_to: --cc $header_cc: --bcc $header_bcc: --replyto $header_reply-to: {}{}}$runrc} {1} }": Too many arguments in command "/etc/exim/acl/mail-filter.pl --sender sender@??? --from <ED><D5><D2><D8><D1><CE><CF><D7> <E1>
<CE><C1><D4><CF><CC><C9><CA>
<E1><CC><C5><CB><D3><C1><CE><C4><D2><CF><D7><C9>
<DE>
Two questions:
1. Is it required to enclose the $header* in quote marks before passing
to the script? Looks like Exim decodes KOI8-R encoded parts of the
headers and tries to pass them as they are.
2. How to prevent such problems in the future? For the moment, I turned
off message filtering for the time being, but it isn't the solution.
Thanks.
Sincerely,
Konstantin