Hi, i'm pretty new to exim, but for the first part of your road to understanding, i can try to help you.
Redirect routers seem to precise the way the messages are delivered but most of them do not send a recipient to a transport (excepted maybe for filtering routers), they just redirect (that's the key word) to other routers. For example, in the aliasing router, the data field perform a kind of rewriting so that the next time the recipient is analysed, the aliasing is not called but the local_delivery is! If someone has better explanations i would be very pleased to read them ;) best regards 2010/3/21 [email protected] <[email protected]> > I've been trying to get my head round the redirect router for the last > two days. I've gone over Phillip Hazel's book and the online > documentation, but I just don't 'get' it. > > The part I am struggling with is the 'data' section. With the redirect > router you don't specify a transport, I'm fine with that. What I don't > understand is how the 'data' lookup actually decides the action to take > on a message? > > I may be picking the wrong router for the job I want to do - but it's > probably fundamental that I understand the logic and action taken. > > In my scenario I have multiple domains. In Postfix 'speak' I would have > called them Virtual domains as they are 'hosted' but a single host may > be dealing with multiple facets for them (handling mail/web traffic). In > Phillip's Exim book the meaning of 'Virtual Domains' is different and is > defined as 'a domain in which all the valid local parts are aliases for > other addresses' - this is confusing the eggs out of me, so please > forgive my terminology if it is incorrect. > > As far as the redirect 'data' section is concerned, in it's most simple > example: > > data = ${lookup{$local_part}lsearch{/etc/aliases}} > > I would assume this would assign to 'data' the contents of the line > returned from /etc/aliases. But how does it transport it to a mailbox or > destination if it can't use a transport? I'm guessing that it is somehow > implied - but it's going clear over my head. > > In my particular scenario I may have 40 or so 'hosted/virtual' domains. > What I would like to achieve is the ability to redirect these dependent > on data held in a MySQL database with the recipient email address as the > search key. > > I guess I first populate a variable in the main section of the runtime > conf with a list of domains the server accepts mail for: > > domainlist accepted_domains = mysql;select * from domains where > domain='$domain' > > Then precondition the redirect router with: > > domains = domainlist > > The rough structure of the database in pseudo form would be: > email_address final_destination destination_type > ------------------------------------------------------------------------ > u...@domain 1.2.3.4:25 direct to ip > us...@domain /mailboxes/domain/user2 mailbox > u...@otherdomain host.otherdomain:2525 hostname lookup > us...@otherdomain /mailboxes/otherdomain/user2 mailbox > > I'm assuming that 'redirect' is the right way to do this, that may be an > incorrect assumption, but I'm struggling to see how I would redirect > based on the 'final destination' and how that 'data' is parsed to > transport it. > > Further complication comes from the old gateway cherry that is > 'recipient verification'. Potentially final destinations can remove > recipients and these changes may not reflect on my Exim gateway. This > could leave it in the position of accepting a message it thinks it has a > valid recipient for, and then having to bounce/backscatter it when it > finds it can't deliver it. I know there are a number of ways to work > with this, such as querying a final destination LDAP/AD - but this does > not fit well with small customers running things like MailEnable on > Windows. Postfix has a probing method with a short cache to deal with > this scenario and looking at the Exim docs it appears that it has a > similar recipient callout feature. Naturally I would like to roll this > into my solution giving SMTP 5xx for 'no such user' before taking > responsibility for the message as far as I possibly can. > > I apologise for the long winded question, but if I could clear up in my > mind how the 'data' actually transports the mail, if it can query MySQL > instead of a local alias file and if it's even the right router for what > I need to do I would be most grateful for the input. > > > > -- > ## List details at http://lists.exim.org/mailman/listinfo/exim-users > ## Exim details at http://www.exim.org/ > ## Please use the Wiki with this list - http://wiki.exim.org/ > -- ## List details at http://lists.exim.org/mailman/listinfo/exim-users ## Exim details at http://www.exim.org/ ## Please use the Wiki with this list - http://wiki.exim.org/
