現在、procmailを介して受信メールを配信するPostfixサーバーを実行しています。これは問題なく機能しますが、pgpで自動的に暗号化された受信メールを復号化したいと思います。そこで、gnupgをトリガーするprocmailルールを作成しました。
これは私の現在の.procmailrcです:
:0 fw
* ^Subject: encryptme
| /usr/bin/gpg --decrypt | mail -s "ENCRYPTED: $subject" [email protected]
これで、メールは正常に復号化され、my @ email.comに送信されますが、件名は空で(メールには「ENCRYPTED:」のみが表示されます)、送信者としてサーバーの電子メールアドレスが使用されます。そしてもちろん、復号化されたメールにはメールヘッダーの一部が含まれています。
Content-Type: multipart/mixed; boundary="713bkotRlnRGA7FAhJANoI0IsDpX3ws8N"
--713bkotRlnRGA7FAhJANoI0IsDpX3ws8N
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable
Just a test.
--713bkotRlnRGA7FAhJANoI0IsDpX3ws8N--
GNU Anubisのような追加のソフトウェアなしで、受信メールをこの方法で自動的に「クリーン」(復号化されたメッセージのみ)で復号化する可能性はありますか?主題の挿入)?
この情報が誰かが私を助けるのに十分であることを願っています。
非常に多くの言葉で、gpg --decrypt
は電子メールメッセージではなくファイルを望んでいます。電子メールメッセージは通常、ファイルではない複数のMIME部分で構成されます(この例では、本文部分が1つだけのmultipart/mixed
が示されていますが、概念は引き続き有効です)。 MIMEコンテナではなく、暗号化されたペイロードのみをgpg
に渡すか、gpg
がMIMEラッパーを解析するのに役立つラッパーまたはオプションを見つける必要があります。
クイックグーグルはこれを行う単純なPerlMIMEラッパーを見つけました:
リンクが悪くなった場合、同じホイールを再発明することは重要な課題ではありません。基本的に、暗号化されたペイロードを含むMIME部分を識別し、デコードして(gpg
独自の「ASCIIアーマー」を使用しない限り、おそらくbase64
エンコードされます)、それをgpg
。暗号化されたペイロードの存在はおそらく良いトリガーですが、おそらくラッパーは暗号化されたペイロードを含まないものをすべて通過する必要があり、すべてをラッパーにフィードします。
正直なところ、Procmailまたはルールで$subject
を定義するものはありません。あなたはこのようなことをすることができます:
:0
* ^Subject:[ ]\/[^ ].*
{ subject=$MATCH }
...角括弧の間の空白は、スペースとタブである必要があります。