Exim4: Catchall de mensagens enviadas, permite que apenas alguns domínios passem por um servidor dev

1

Estou administrando um monte de servidores de desenvolvimento e de preparação do Debian (v.6-8). A configuração atual do exim4 se parece com isso:

  • Não há e-mails recebidos nos servidores (sem conexão remota)
  • Os e-mails enviados são enviados por meio de um smarthost (no momento, isso está funcionando)

Como a funcionalidade de e-mail dos estágios e dos servidores dev será testada por meio de aplicativos da web e há endereços de e-mail de cenário reais configurados em nossos aplicativos da web, A configuração que desejo obter é:

  • Todos os emails de saída devem ser encaminhados por uma instrução catchall para um endereço de e-mail único, por exemplo [email protected]
  • Todos os e-mails enviados, que contêm os domínios de nossas empresas, como *@example.com e *@foo.com, devem ignorar a regra geral.

O tutorial, que está mais próximo do meu objetivo, é este, mesmo que use o contrário estratégia: permitir todos os remetentes e negar um remetente.

link

Qualquer ajuda é muito apreciada, já que vou ficar maluco com a sintaxe de configuração do exim.

Eu passei por muitas amostras de configuração por dias, mas nenhuma delas está combinando com o meu caso de uso.

    
por Server Admin 17.11.2015 / 14:28

2 respostas

2

Como o Exim processa e-mail na ordem especificada na seção de roteadores, Eu acho que isso pode ser conseguido com as seguintes regras. Certifique-se de colocar a regra para os domínios especiais primeiro e depois capturar todas as regras.

# sender domain based routing
router_for_special_domain_sender:
     driver = dnslookup
     senders =  *@example.com 
     transport = remote_smtp
     no_more 

# reciepients domain based routing
router_for_special_domain_reciepints:
     driver = dnslookup
     domains =  example.com 
     transport = remote_smtp
     no_more 

catch_all_outgoing:
     driver = redirect
     data = [email protected]

De acordo com a documentação do Exim:

domains

If the domains option is set, the domain of the address must be in the set of domains that it defines.

senders

If this option is set, the router is skipped unless the message’s sender address matches something on the list. See section 3.12 for a list of the order in which preconditions are evaluated.

A primeira regra acima diz ao exim para enviar todos os emails com um domínio de remetente example.com para serem enviados sem fazer nada especial. A segunda regra é pegar todos os emails. Você pode tentar.

Aqui está a discussão relevante: link

    
por 17.11.2015 / 15:30
0

begin routers

 router_for_special_domain_reciepint:
 driver = manualroute
 domains =  example.com
 transport = remote_smtp
 route_list = "* internalsmarthost.example.com "
 no_more

catch_all_outgoing:  driver = redirecionar  data = [email protected]

Como estou usando um smarthost para ambos, a exceção no roteador router_for_special_domain_recipient e no roteador catch_all_outgoing, tive que adicionar a opção route_list. Usar o driver dnslookup teria a consequência de enviar o email diretamente para o destino sem o uso de um smarthost.

    
por 24.11.2015 / 15:33

Tags