Consider the following two routers:
1) nonlocal:
driver = redirect
domains = ! +local_domains
allow_fail
data = :fail: Mailing to remote domains not supported
no_more
2) dnslookup_relay_to_domains:
driver = dnslookup
domains = ! +local_domains : +relay_to_domains
transport = remote_smtp
same_domain_copy_routing = yes
no_more
Am I right that, in both cases, if the router run, it can not decline?
Therefore, the no_more has no effect. It can be omitted without any
consequences.
I think spec.txt mentions a similar situation in a discussion about the manualroute.
(Note that the following spec.txt discussion is about two other routers, not those
I showed above.)
$ grep -A34 '* The manualroute router' spec.txt | tail -10
There is no difference in behaviour between these two routers as they
stand. However, they behave differently if no_more is added to them. In the
first example, the router is skipped if the domain does not match the
domains precondition; the following router is always tried. If the router
runs, it always matches the domain and so can never decline. Therefore,
no_more would have no effect. In the second case, the router is never
skipped; it always runs. However, if it doesn't match the domain, it
declines. In this case no_more would prevent subsequent routers from
running.
$