Hello! Consider a scenario where Exim is relaying mail for _one_ domain to multiple internal systems with queries to LDAP directories deciding where mail for each local part goes to. (Suppose that it's not possible to regularly create a local version of this mapping, as debatable this restriction may be.)
If one implements this the straight forward way with multiple routers like dest_a: driver = manualroute domains = example.com condition = ${lookup ldapm{..URL..}{yes}{no}} route_list = * host_a bydns transport = internal_smtp dest_b: ... the following problem is not trivial to solve it seems: As "9.5 Temporary errors in lookups" of the spec states Lookup functions can return temporary error codes if the lookup cannot be completed. For example, an SQL or LDAP database might be unavailable. [...] When a lookup cannot be completed in a router or transport, delivery of the message (to the relevant address) is deferred, as for any other temporary error. In other circumstances Exim may assume the lookup has failed, or may give up altogether. - if _one_ destination system is not available, messages to _every_ user in this domain will be deferred (even those at other destinations). For two destinations it's a workaround to have two pair of routers with order swapped, and condition = ${if and {{first_delivery}{${lookup ...}}}} in the first pair (!first_delivery in the second), additionally tuning retry rules. Any idea for an Exim internal solution (no queryprogram router, run or perl) for more than two destinations? (Using $message_age to extend the concept is not reliable enough, I think.) Thanks, Lutz -- Lutz Preßler <lutz.press...@sernet.de> http://www.SerNet.DE/ SerNet Service Network GmbH, Bahnhofsallee 1b, D-37081 Göttingen Tel.: +49-551-370000-2, FAX: +49-551-370000-9 AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen -- ## 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/