У меня была такая же проблема, и я нашел хорошее рабочее решение сегодня.
Он основан на настройке procmail, которую я нашел. Первоначально он шифрует входящую почту вместо существующих писем, которые уже находятся в вашем почтовом ящике:
https://www.j3e.de/pgp-mime-encrypt-in-procmail.html (спасибо за это Бьорн)
Я изменил его, чтобы он работал как скрипт с существующими файлами почтовых ящиков вместо procmail (входящие файлы).
Эти команды небольшие, простые и используют стандартный инструмент formail для чистой обработки заголовков и тела.
Сначала вы должны создать два файла .gpg-mime-start и .gpg-mime-end, как описано в URL с помощью procmail! И вы должны настроить вашу командную строку gpg с вашими ключами, как обычно.
Это файл .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"
В конце должна быть пустая строка!
Это файл .gpg-mime-end:
--MfFXiAuoTsnnDAfX
В начале должна быть пустая строка!
Вот модифицированный скрипт (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 <you@yourmail.com>' ; cat ~/.gpg-mime-end; }
Заменить ...
Firstname Lastname <you@yourmail.com>
... в скрипте с вашим адресом ключа gpg (или используйте "-r подпись ..").
Установите права доступа для скрипта с помощью chmod a+x gpgmailfile.sh
Например, вы можете запустить скрипт для одной почты из основной почтовой папки в подпапку "enc" (сначала создайте папку "enc" в вашем почтовом клиенте):
./gpgmailfile.sh /home/user/Maildir/cur/"file123" > /home/user/Maildir/.enc/cur/"file123"
Если вы хотите зашифровать все письма в основной папке, используйте этот дополнительный сценарий (измените путь к первому сценарию, если он не находится в /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
Измените его для работы с другими папками.