Como posso usar o procmail para modificar o corpo de um email e, em seguida, encaminhá-lo para um endereço externo?

2

Estou com dificuldades para que o procmail primeiro transforme e envie um e-mail recebido. Aqui está o que eu gostaria de fazer:

:0 f
| ~/bin/encryptemail.pl | mail [email protected]

Ou seja, quero executar o script encryptemail.pl no corpo do email que recebo e, em seguida, encaminhar o email criptografado para [email protected] .

Piping a saída para o tipo de correspondência, exceto que o email encaminhado é agrupado em um segundo conjunto de cabeçalhos.

Gostaria de encaminhar o e-mail criptografado para que o corpo do e-mail original seja substituído pelo conteúdo criptografado.

    
por loseeka 25.06.2013 / 17:53

2 respostas

1

Eu daria uma olhada nas receitas no Projeto de Documentação do Site , especificamente esta receita: 15.7 Encaminhando mensagens confidenciais em criptografia formato .

  #   by [alan]
  #   See if addressed *directly* to me, and ..
  #   ..has not already been forwarded

  KEY             = "TheMagic"
  FORWARD_EMAIL   = "[email protected]"

  :0
  *$   ^To:.*$LOGNAME(@|[^0-9a-z]|$)
  *$ ! ^$MYXLOOP
  {
      # now let's encrypt the body using mimencode

      :0 fbw
      |   echo "MIME-Version: 1.0" ;                              \
          echo "Content-Type: application/crypt" ;                \
          echo "Content-transfer-encoding: base64" ;              \
          echo "" ;                                               \
          crypt $KEY | mimencode -b

      #   Now let's prepare the headers for forwarding the mail,
      #   and mark it so we don't loop

      :0 fhw
      | $FORMAIL   -I"Resent-To: $FORWARD_EMAIL" -I"$MYXLOOP"

      :0
      ! $FORWARD_EMAIL

  }    

Em vez de chamar esta linha:

crypt $KEY | mimencode -b

Você deve poder substituir sua chamada em seu lugar:

~/bin/encryptemail.pl | mimencode -b
    
por 25.06.2013 / 18:03
1

Se você pudesse alterar seu script para aceitar e transmitir (ou seja, simplesmente copiar) os cabeçalhos, você poderia fazer isso:

:0
| ~/bin/encryptemail.pl | sendmail -oi [email protected]

Equivalente, primeiro substitua o corpo e envie a mensagem inteira modificada:

:0fb
| ~/bin/encryptemail.pl
:0
! [email protected]

O sinalizador f não pode ser usado de forma significativa em uma receita de entrega; ele instrui Procmail para substituir a mensagem (ou, com o sinalizador b também, o corpo) com a saída dos comandos que você canaliza para e continua processando com a mensagem assim modificada.

    
por 25.06.2013 / 19:00