У меня в почтовом ящике INBOX более 12000 сообщений электронной почты, все в виде обычного текста, некоторые из этих сообщений с вложениями. Я искал неделями способ зашифровать эти сообщения электронной почты из обычного текста в зашифрованные сообщения.
Пожалуйста, не предлагайте шифрование PGP для исходящих писем, так как я прекрасно знаю, как шифровать новые составленные сообщения. Я говорю о существующих письмах, которые годами хранятся в почтовом ящике в виде обычного текста.
Я ищу способ, который позволит мне зашифровать их оптом. Я скачал все свои сообщения и экспортировал их в формат EML, и я могу преобразовать их в любой формат, который поможет мне зашифровать эти сообщения.
Требуется зашифровать только текст сообщения, но не тему.
Спасибо
решение1
У меня была та же проблема, и сегодня я нашел хорошее рабочее решение.
Он основан на настройке procmail, которую я нашел. Изначально он шифрует входящую почту вместо существующих писем, которые уже находятся в вашем почтовом ящике:
https://www.j3e.de/pgp-mime-encrypt-in-procmail.html(Спасибо за это, Бьорн)
Я изменил его так, чтобы он работал как скрипт с существующими файлами Mailbox вместо 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 <[email protected]>' ; cat ~/.gpg-mime-end; }
Заменять...
Firstname Lastname <[email protected]>
...в скрипте с адресом вашего ключа gpg (или используйте "-r signature.." ).
Установите права доступа к скрипту с помощью 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
Измените его для работы с другими папками.