Author: Konstantin Boyandin Date: To: Evgeniy Berdnikov, exim-users Subject: Re: [exim] Exim 4.86: errors when trying to process incoming email
with filter
Hello Evgeniy,
On 01/22/2016 01:54 PM, Evgeniy Berdnikov wrote: > On Fri, Jan 22, 2016 at 10:13:06AM +0600, Konstantin Boyandin wrote:
>> Two questions:
>>
>> 1. Is it required to enclose the $header* in quote marks before
>> passing to the script?
>
> Look at chapter 11 of documentation for description of ${run{...}},
> there is a complete answer.
>
>> Looks like Exim decodes KOI8-R encoded parts
>> of the headers and tries to pass them as they are.
>
> Yes, $header_<name> ($h_<name>) functions do some decoding.
> Look for $rh_<name> and $bh_<name> in the same chapter 11.
Thanks for the directions. Using "raw" format looks optimal workaround,
since I don't need text parts anyway, only email addresses.
However, I was wondering why Exim signalled "Too many arguments..."
error (location: src/transport.c, function transport_set_up_command)
when expanding arguments.
Same email with KOI8-R text chunks in address fields (To, From, Cc etc)
replaced with plain ASCII doesn't cause the above error. According to
the code, the space allocated by Exim for address slots is number of
addresses plus 60.
I have counted the number of text strings present in address fields
after decoding into KOI8-R, and it's less than 60 (in case every
separate string counts for additional address slot).
Unless it's a bug, it's infeasible to process KOI8-R string in that
manner, exhausting all the address slots.
Or perhaps I should just rebuild Exim, having replaced the arbitrary
constant 60 with, say, equally arbitrary constant 1024.