On Wed, Mar 18, 2015 at 02:30:36AM -0700, ebberup wrote: > I found the possibility in the Postfix configuration > parameters:*sender_dependent_relayhost_maps (default: empty)
Oops, my mistake, sorry! The documentation indeed promises that DUNNO behaves as you expect, and this is mostly implemented. Unfortunately with DUNNO the implementation results in the recipient domain, not the default relayhost. Patch attached. -- Viktor. diff --git a/src/trivial-rewrite/resolve.c b/src/trivial-rewrite/resolve.c index 0f8e6bb..76ac700 100644 --- a/src/trivial-rewrite/resolve.c +++ b/src/trivial-rewrite/resolve.c @@ -583,6 +583,10 @@ static void resolve_addr(RES_CONTEXT *rp, char *sender, char *addr, * With off-host delivery, sender-dependent or global relayhost * override the recipient domain. */ + if (*RES_PARAM_VALUE(rp->relayhost)) + vstring_strcpy(nexthop, RES_PARAM_VALUE(rp->relayhost)); + else + vstring_strcpy(nexthop, rcpt_domain); if (rp->snd_relay_info && (relay = mail_addr_find(rp->snd_relay_info, sender_key = (*sender ? sender : @@ -593,17 +597,14 @@ static void resolve_addr(RES_CONTEXT *rp, char *sender, char *addr, rp->snd_relay_maps_name, sender_key); relay = "DUNNO"; } - vstring_strcpy(nexthop, strcasecmp(relay, "DUNNO") == 0 ? - rcpt_domain : relay); + if (strcasecmp(relay, "DUNNO") != 0) + vstring_strcpy(nexthop, relay); } else if (rp->snd_relay_info && rp->snd_relay_info->error != 0) { msg_warn("%s lookup failure", rp->snd_relay_maps_name); *flags |= RESOLVE_FLAG_FAIL; FREE_MEMORY_AND_RETURN; - } else if (*RES_PARAM_VALUE(rp->relayhost)) - vstring_strcpy(nexthop, RES_PARAM_VALUE(rp->relayhost)); - else - vstring_strcpy(nexthop, rcpt_domain); + } } }