Eu entendi.
Seu problema está na substituição incompleta de resultados.
${lookup{value}lsearch{file}}
por padrão retorna a string encontrada ou a string vazia. Você pode modificar esse comportamento por substituição de resultados:
${lookup{value}lsearch{file}{yes}}
Essa versão retorna yes
se o valor for encontrado no arquivo e a string vazia, caso contrário. Mas a avaliação de condição do exim trata como TRUE lógico apenas 'sim', 'verdadeiro' e positivos diferentes de zero. Portanto,
${lookup{value}lsearch{file}{no}}
é equivalente ao
${lookup{value}lsearch{file}{no}{no}}
Sempre. Claro, o seu roteador nunca será usado. Você precisa substituir os dois resultados explicitamente:
my_route:
condition = ${lookup {$sender_address_domain}lsearch{/etc/localdomains} {yes}{no}}
condition = ${lookup {$sender_address_domain}lsearch{/etc/norelaydomains} {no}{yes}}
driver = manualroute
domains = !+local_domains
transport = my_relay
route_list = * mysmtp.com