Re: [exim] processing forward file(s)

Góra strony
Delete this message
Reply to this message
Autor: Chris Siebenmann
Data:  
Dla: Jim Pazarena
CC: exim-users
Temat: Re: [exim] processing forward file(s)
| I have a local address "a" which forwards to another local address "b"
| which forwards elsewhere.
| 
| If an email arrives to "b", it forwards.
| If an email arrives to "a", it delivers to "b". In other words, the
| system doesn't run thru the forwarding a second time to process the "b"
| forward file.
| 
| Could someone suggest what router command would be preventing the
| forward processing of the second addy?  Thanks!
| 
| #
| # normal/traditional dot.forward file for virtual addys
| userforward_new:
|    driver    = redirect

[...]

This sounds as if you're hitting a situation where Exim is skipping
a router to avoid loops. From 3.13 of the Exim documentation:

    * A router that accepts an address may assign it to a local
    or a remote transport. However, the transport is not run at
    this time. Instead, the address is placed on a list for the
    particular transport, which will be run later. Alternatively,
    the router may generate one or more new addresses (typically from
    alias, forward, or filter files). New addresses are fed back
    into this process from the top, *but in order to avoid loops,
    a router ignores any address which has an identically-named
    ancestor that was processed by itself*.


(emphasis in the last sentence is mine.)

Offhand I can't see why Exim would think that the address is
unchanged and trigger this condition, but you may be able to spot
something by carefully looking at 'exim -bt a' output (you may need to
enable additional debugging switches too). You may want to add some
debug_print's to various routers to see exactly what addresses they're
handling.

(In general the userforward_new router looks sensible and fairly
like the one that we use here, although ours is the conventional
real-user-account $HOME/.forward based style.)

    - cks