著者: Jasen Betts 日付: To: exim-users 題目: Re: [exim] conditional transport filters?
On 2016-05-06, Jeremy Harris <jgh@???> wrote: > On 06/05/16 06:30, Jasen Betts wrote:
>> On 2016-05-04, Felix Schwarz <felix.schwarz@???> wrote:
>>>
>>> I'm using a transport filter before passing the message to dovecot (LDA). This
>>> transport filter adds a few headers (spam checking).
>>
>> do what Jeremy says:
>>
>> put single quotes around the ${if...}
>
> Maybe we should start more formally gathering niggles like this
> as a wishlist for a Major Version Number changeset.
>
>
> - ordering of expansion in transport_filter option is nonstandard,
> being space-split before $-expansion.
>
> Suggested solution: just redefine to be the other way about.
I think it's safe the way it currently is, if a variable is undefined
you get an empty argument instead of a re-ordering of the parameters.
if a variable contains a space, that works too... being immune to
shell injection here is important.
On the other hand if you wrap each argument in ${quote:...} you'd
get the existing behaviour with that new setup, but that could easily
be overlooked,
maybe pipe should take a list (as defined elsewhere in the exim spec)
and split on list separators - but I dont think lists can contain
" " or "".
> - router headers_remove is awkward in two ways
> - colon separated list (differs from headers_add)
> - list-split before $-expansion, is nonstandard
>
> Suggested solution: redefine as newline-separated list and
> $-expanded first, as a whole.
I don't see that as an improvement over a colon separated list
expanded before splitting like it was in 4.7x
> Problems: the expansion ordering was done that way because it
> seemed the only decent way to code it at the time, when support
> for multiple headers_remove options per router was added.
I thought there was more to it than that.
> - Lose ACL "endpass"
maybe change "endpass" to "now_require"
> - Redefine ACL "message" to be in-text-order evaluation
I think late evaluation is useful in "require".
perhaps loose that too, it's sematically the same as
deny-test-deny-test-deny-test...
> - Lose warn ACL "message" action (replaced by add_header)
> - Lose router "unseen"
Well, it is slightly ill defined, but it fills a need
two needs apparently, given that upstream and I disagree
on how DSNs shold be handled...
> There are other ideas buried in the bugs which are more far-reaching.
> Reducing the number of languages involved in an exim config was one
> (I count: ACL, retries, router-chain, authenticators, exim-filter...).
> We're in the territory here of people having to (probably manually)
> having to rewrite their exim.conf files. It may never get done,
> but we could discuss to see how much interest there is.
yeah, having one language in the file would help for syntax
highlighting :)
> To be clear: this would be Exim 5.x and there are no current plans
> for it.