depois de um longo dia de tentativas e erros, acabei de descobrir como funciona. Surpreendentemente fácil no restrospecto.
No Debian, certifique-se de ter instalado os pacotes exim4-daemon-heavy para ter suporte a mysql. Eu também suponho que uma configuração dividida é usada (todos os caminhos são relativos a /etc/exim4/conf.d /).
Em seguida, crie o banco de dados com pelo menos uma coluna contendo os endereços de e-mail incluídos na lista negra. Esse cokumn deve ser indexado.
Crie o arquivo main / 50_exim4-config_failmail e coloque as credenciais mysql nele:
hide mysql_servers = MYSQL_HOST/MYSQL_DB/MYSQL_USER/MYSQL_PASS
Além disso, crie router / 050_exim4-config_failmail_router e adicione:
failmail:
driver = redirect
data = ${lookup mysql { SELECT '/dev/null' FROM dropmail WHERE email='${local_part}@${domain}'} {$value} }
file_transport = address_file
É muito importante que o nome do arquivo comece com este 050 porque ele deve ser carregado antes dos outros roteadores. Caso contrário, as regras serão ignoradas. Custou-me algumas horas para descobrir que isso faz uma grande diferença se você nomear o arquivo "50_exim4-config ...". Nesse caso, suas regras são processadas após o conjunto de 400 regras e todas as mensagens de saída já terem sido enviadas.
Esta não é a solução completa do problema original porque simplifiquei um pouco para descobrir o que acontece. Mas, com base nisso, deve ser fácil estender o banco de dados sheme e consultar para corresponder à funcionalidade descrita acima.