Philip Hazel:
> On Wed, 11 Apr 2007, Leszek Dubiel wrote:
>
>
>>> Warning 2: If the unseen option is set on the router, all header
>>> additions are deleted when the address is passed on to subsequent
>>> routers.
>>>
I understand option "unseen" like this:
1. I start with a "nowak" recipient
2. unseen router makes two copies of that addres (because it is unseen):
-- one copy is passed to the next router (*)
-- second copy is handled with this router (**)
3. From now on routing is "forked" and addresses are copletely
independent. Address (*) was not even touched with unseen router.
I can see three opportunities:
"header additions don't change address (*)"
"header additions are deleted from address (*) because router is unseen"
"header additions are deleted from address (**) if this is passed to
subsequent routers"
I would prefer to think like this: "all options of unseen router for
address (*) are ignored, so header additions don't take place either".
> 1. Start with a single recipient, nowak.
>
> 2. The router checks the authenticated sender, it matches, so the router
> runs.
>
> 3. A new recipient, kowalski, is generated, with additional headers, but
> because of the "unseen", the original recipient, nowak, is passed to
> the next router, WITHOUT any added headers (because of "warning 2").
>
I would prefer to think: "header addtions are not applied to nowak,
because this is just passed to the next router" instead of "header
additions are deleted from address nowak, because they were added and
router is unseen".
> The problem is that you are generating two copies of the same address,
> one with added headers and one without. Exim is not clever enough to
> notice this. It just discards the second one that it sees.
>
That's the point! Thank you very much!
> I have moved the duplicate checking until after the routing is
> complete.
Great and simple idea!
> However, the correct configuration is indeed to add repeat_use=false so
> that you don't generated two identical recipients with different header
> modifications.
>
Yes. When I have two copies of "kowalski" -- one with added headers, and
another without them, then Exim will delete one of these and I don't
know wich one (this depends of deletion algorithm). So option
repeat_use=false must be set.