postfix / dovecot - executa o script quando o correio é recebido

1

Eu preciso implementar a solução no meu servidor postfix / dovecot que executará o script bash toda vez que a mensagem chegar. Para este propósito fiz o seguinte na configuração master.cf

myhook        unix  -       n       n       -       -       pipe
    flags=F user=customUser argv=/path/to/script.sh ${sender} ${recipient}

smtp      inet  n       -       -       -       -       smtpd
    -o content_filter=myhook:dummy

Funciona bem, desde que você não queira que os e-mails sejam entregues às caixas de correio via dovecot. O problema é que, de alguma forma, eu preciso 'devolver' tudo para o dovecot. Ou talvez haja uma abordagem melhor, que não é conhecida por mim.

Eu aprecio cada ideia ou dica neste caso.

    
por Piotr 20.01.2015 / 14:20

3 respostas

3

Seu script deve agir como Exemplo de filtro de conteúdo simples da documentação oficial do Postfix. Após postfix enviar o email via pipe , você deve reenviá-lo via comando sendmail . Snippet dessa página

Postfix receives unfiltered mail from the network with the smtpd(8) server, and delivers unfiltered mail to a content filter with the Postfix pipe(8) delivery agent. The content filter injects filtered mail back into Postfix with the Postfix sendmail(1) command, so that Postfix can deliver it to the final destination.

    
por 21.01.2015 / 02:42
1

Normalmente, você vai querer reinjetar suas mensagens de volta no postfix do seu script, em vez de usar um filtro de conteúdo, eu acho que um antes que o milter da fila seja mais adequado ao seu caso de uso.

    
por 20.01.2015 / 16:27
1

Eu resolvi o problema com a criação do script de entrega 'próprio'. Na verdade, o script de entrega do dovecot ainda é usado e está dentro do meu próprio, mas antes de entregar a mensagem à caixa de correio, meu script faz coisas que eu quero alcançar. É claro que eu tive que mudar 'virtual_transport' na configuração do main.cf assim como criar hook no arquivo master.cf (como eu descrevi na pergunta).

    
por 22.01.2015 / 14:33