On Mon, 7 Nov 2005 10:24:43 +0000 (GMT)
Philip Hazel <ph10@???> wrote:
> On Sun, 6 Nov 2005, Tim Jackson wrote:
> > headers_remove = Subject
> > headers_add = ${if {eq{$h_X-Spam-Flag:}{YES}}
> > {Subject: *****SPAM***** $h_Subject:}
> > {Subject: $h_Subject:}
> > }
> > Superficially, this appears to work.
> It works because, at the moment, all the header modifications that
> are specified in ACLs are saved up, and implemented later.
Thanks for the explanation. Surely that doesn't matter too much, since
regardless of whether you save them up or not in the ACL, since you're
checking it at router time it's going to be there whatever happens?
> > So, again: any obvious downsides to this approach?
>
> This again works because the actual action is saved up for transport
> time, though the expansion happens (and is documented to happen) at
> routing time. This is unlikely to change.
Yes, although I had some concerns along the lines that Andreas did
about bad behaviour (e.g. multiple prefixes on headers) if a message
was routed multiple times, I couldn't prompt "wrong" behaviour in
practice even by forcing defers and subsequent repeated delivery
attempts for the same message. Thanks for clarifying exactly why this
is.
So, in summary, there doesn't seem to be any particular downside to
this in the absence of major changes to Exim's handling of header_add/
remove (about which I do recall many discussions). Justification for an
extra note on that FAQ item? Who's maintaining it these days?
Tim