Eu tive o mesmo problema e encontrei uma boa solução de trabalho hoje.
Ele é baseado em uma configuração do procmail que encontrei. Originalmente, ele criptografa os e-mails recebidos em vez dos e-mails existentes que já estão na sua caixa de entrada:
link (Obrigado por este Bjoern)
Eu o modifiquei para funcionar como um script com arquivos de caixa de correio existentes em vez de procmail (arquivos de entrada).
Estes comandos são pequenos, simples e usam uma ferramenta padrão 'formail' para lidar com cabeçalhos e corpo de forma limpa.
Primeiro, você precisa criar os dois arquivos .gpg-mime-start e .gpg-mime-end, conforme descrito na URL com o procmail! E você tem que configurar sua linha de comando gpg com suas chaves, como de costume.
Este é o arquivo .gpg-mime-start:
--MfFXiAuoTsnnDAfX
Content-Type: application/pgp-encrypted
Content-Disposition: attachment
Version: 1
--MfFXiAuoTsnnDAfX
Content-Type: application/octet-stream
Content-Disposition: inline; filename="msg.asc"
Tem que haver uma linha vazia no final!
Este é o arquivo .gpg-mime-end:
--MfFXiAuoTsnnDAfX
Tem que haver uma linha vazia no começo!
Aqui está o script modificado (gpgmailfile.sh):
#!/bin/sh
MYHDRS='cat $1 | formail -XContent-Type: -XContent-disposition: -XContent-transfer-encoding:'
cat $1 | formail -X "" | formail -I 'Content-Type: multipart/encrypted; protocol="application/pgp-encrypted";boundary="MfFXiAuoTsnnDAfX"' -I Content-transfer-encoding: -I Content-disposition:
{ cat ~/.gpg-mime-start ; { echo "$MYHDRS" ; echo ; cat $1 | formail -I "" ; } | gpg --batch --quiet --always-trust -a -e -R 'Firstname Lastname <[email protected]>' ; cat ~/.gpg-mime-end; }
Substituir ...
Firstname Lastname <[email protected]>
... no script com seu endereço de chave gpg (ou use "-r signature ..").
Defina as permissões do script com chmod a + x gpgmailfile.sh
Por exemplo, você pode executar o script de um único e-mail da pasta de e-mail principal para a subpasta "enc" (primeiro criar a pasta "enc" no seu cliente de e-mail):
./gpgmailfile.sh /home/user/Maildir/cur/"file123" > /home/user/Maildir/.enc/cur/"file123"
Se você quiser criptografar todos os e-mails na pasta principal, use este script extra (altere o caminho para o primeiro script, se não estiver em / root /):
#!/bin/sh
FILES=/home/user/Maildir/cur/
cd $FILES
for f in *
do
echo "Processing $f ..."
/root/gpgmailfile.sh /home/user/Maildir/cur/"$f" > /home/user/Maildir/.enc/cur/"$f"
done
Modifique-o para trabalhar com outras pastas.