-ifdef(`_MAILER_smtp_',
-`R$+ $: $1 < @ $R >
-R$+ < @ > $: $1 < @ $H > no relay, try hub
-R$+ < @ $j > $@ $1 we are relay/hub: local
-R$+ < @ $-:$+ > $# $2 $@ $3 $: $1 send to relay or hub
-R$+ < @ $+ > $#smtp $@ $2 $: $1 send to relay or hub')')
+# see if we have a relay or a hub
+R$+ $: $>_SET_95_ < $R > $1 try relay
+R$+ $: $>_SET_95_ < $H > $1 try hub')
+ifdef(`MAILER_TABLE',
+`
+
+###################################################################
+### Ruleset 90 -- try domain part of mailertable entry ###
+### (new sendmail only) ###
+###################################################################
+
+S90
+R<$- . $+ > $* $: < $(mailertable .$2 $@ $1 $) > $3 lookup
+R<$- : $+ > $* $# $1 $@ $2 $: $3 check -- resolved?
+R< . $+ > $* $@ $>90 <$1> $2 no -- strip & try again
+R<$*> $* $@ $2 no match',
+`dnl')
+
+###################################################################
+### Ruleset _SET_95_ -- canonify mailer:host syntax to triple ###
+###################################################################
+
+S`'_SET_95_
+R< > $* $@ $1 strip off null relay
+R< $- : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
+R< $=w > $* $@ $2 delete local host
+R< $+ > $* $#_RELAY_ $@ $1 $: $2 use unqualified mailer
+
+###################################################################
+### Ruleset _SET_98_ -- local part of ruleset zero (can be null) ###
+###################################################################
+
+S`'_SET_98_
+undivert(3)dnl