Usando um filtro personalizado via script para rejeitar o email de entrada

1

Antecedentes e amp; Requisitos

Encontrei vários documentos de referência e postagens sobre perguntas e respostas relacionadas a esse tópico, mas não consegui descobrir uma área-chave do design.

Eu gostaria de rejeitar um email de entrada com base em um algoritmo de análise personalizado - simplesmente eu tenho um script python que faz a análise e estou testando, invocando-o como um filtro de email do Gnome Evolution. Tudo isso parece funcionar mais ou menos como esperado. Parece ser um par de nuances com códigos de retorno em python vs. a interpretação pelo sistema de filtragem de e-mail da Evolutions, mas de outra forma operacional.

Nesta fase, não vinculado a uma tecnologia ou sistema que não seja de código aberto. Idealmente, ele deve rodar no Debian (ou Ubuntu), então o Postfix parece ser o mais adequado.

A área do problema

Eu tenho procurado por gateways e outros, como o Postfix, para projetar uma integração que funciona em um nível mais autônomo - e para evitar a necessidade de perder tempo filtrando e-mails nas caixas de entrada. Posso ver o peso leve antes dos filtros de fila (por exemplo, aqui ) e eu posso ver como chamar um script desses ganchos, por exemplo aqui , mas não adquire nenhum código de retorno do script.

O que não consigo encontrar na documentação é como você aplicaria um código de resultado / código de retorno do script ao Postfix para determinar se deve ou não permitir ou rejeitar a mensagem.

Note que a solução depende de ser capaz de rejeitar uma mensagem de e-mail, e não descartá-la (por razões que infelizmente não posso entrar aqui). Pensei em uma tarefa do cron que inspeciona uma lista de itens de dados agrupados coletados do email adicionado à fila e que acrescenta mais filtros às configurações do Postfix automaticamente. Isso resolve apenas parte do problema e significa que algo será executado no servidor, mesmo que não haja novo e-mail.

TL; DR Então, minhas perguntas são:

  1. Como posso chamar um script do MTA e obter o resultado do script / chamada? por exemplo. chame scan.py e obtenha um 0 ou 1 voltar
  2. Qual mecanismo no Postfix (ou outro sistema de código aberto semelhante) devo referir na documentação para vincular esse resultado a uma ação?
por Rex 23.11.2016 / 11:55

1 resposta

0

Isso provavelmente poderia ser conseguido configurando seu script como um milter - veja MILTER_README. Pode ser uma tarefa não trivial. Talvez valha a pena ver se alguém já implementou algo suficientemente bom para o seu propósito, por ex. aqui .

    
por 01.03.2018 / 19:25