受信トレイに保存された電子メールメッセージを暗号化する方法

受信トレイに保存された電子メールメッセージを暗号化する方法

私の受信箱には 12,000 件を超えるメール メッセージがあり、それらはすべてプレーン テキストで、その一部には添付ファイルがあります。私は数週間にわたって、それらのメール メッセージをプレーン テキストから暗号化メッセージに暗号化する方法を探してきました。

新しく作成したメッセージを暗号化する方法は十分に理解しているので、送信メールに PGP 暗号化を勧めないでください。ここで私が話しているのは、何年もプレーンテキストで受信トレイに保存されている既存の電子メールについてです。

一括で暗号化できる方法を探しています。すべてのメッセージをダウンロードし、EML 形式でエクスポートしました。メッセージを暗号化するのに役立つ任意の形式に変換できます。

件名ではなくメッセージ本文のみを暗号化したいと考えています。

ありがとう

答え1

私も同じ問題を抱えていましたが、今日は有効な解決策を見つけました。

これは私が見つけた procmail 設定に基づいています。元々は、受信トレイに既にあるメールではなく、受信メールを暗号化します。

https://www.j3e.de/pgp-mime-encrypt-in-procmail.html(ビョルンさん、ありがとう)

procmail (受信ファイル) ではなく既存のメールボックス ファイルでスクリプトとして動作するように変更しました。

これらのコマンドは小さく、シンプルで、標準ツール「formail」を使用してヘッダーと本文を適切に処理します。

まず、URL に記述されているように、procmail を使用して .gpg-mime-start ファイルと .gpg-mime-end ファイルの 2 つを作成する必要があります。そして、通常どおりにキーを使用してコマンド ライン 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」サブ フォルダーへの 1 つのメールに対してスクリプトを実行できます (最初に電子メール クライアントで「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

他のフォルダーでも動作するように変更します。

関連情報