현재 나는 procmail을 통해 들어오는 메일을 배달하는 Postfix 서버를 실행하고 있습니다. 잘 작동하지만 이제 pgp로 자동으로 암호화된 수신 메일의 암호를 해독하고 싶습니다. 그래서 나는 gnupg를 실행하는 procmail 규칙을 만들었습니다.
이것은 내 현재 .procmailrc입니다.
:0 fw
* ^Subject: encryptme
| /usr/bin/gpg --decrypt | mail -s "ENCRYPTED: $subject" [email protected]
이제 메일이 성공적으로 해독되어 다음 주소로 전송되었습니다.[이메일 보호됨]하지만 제목은 비어 있고(메일에는 "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와 같은 추가 소프트웨어 없이 수신 메일을 자동으로 해독하고 "해독된 메시지만 정리"할 수 있는 가능성이 있습니까? 그리고 procmail이 프로그램(주제 대신)을 트리거하는 좋은 규칙은 무엇입니까?
이 정보가 누군가가 나를 도울 수 있기를 바랍니다.
답변1
간단히 말해서 gpg --decrypt
이메일 메시지가 아닌 파일을 원합니다. 이메일 메시지는 일반적으로 multipart/mixed
파일이 아닌 여러 MIME 부분으로 구성됩니다(예에서는 본문 부분이 하나만 있지만 개념은 여전히 유지됨). MIME 컨테이너가 아닌 암호화된 페이로드만 에 전달 하거나 MIME 래퍼를 구문 분석하는 데 gpg
도움이 되는 래퍼 또는 옵션을 찾아야 합니다.gpg
빠른 인터넷 검색을 통해 다음과 같은 간단한 Perl MIME 래퍼가 나타났습니다.
링크가 손상된 경우 동일한 바퀴를 다시 만드는 것은 큰 도전이 되어서는 안 됩니다. 기본적으로 암호화된 페이로드가 포함된 MIME 부분을 식별하고 이를 디코딩한 다음( 자신의 "ASCII 갑옷"을 base64
사용하지 않는 한 인코딩되었을 수 있음) 에 전달해야 합니다 . 암호화된 페이로드의 존재는 아마도 좋은 트리거일 수 있지만 아마도 래퍼는 암호화된 페이로드를 포함하지 않는 모든 항목을 통과해야 하며 모든 것을 래퍼에 공급할 것입니다.gpg
gpg
$subject
접하게 말하면 Procmail이나 규칙에 정의된 내용은 없습니다 . 다음과 같이 할 수 있습니다:
:0
* ^Subject:[ ]\/[^ ].*
{ subject=$MATCH }
... 여기서 대괄호 사이의 공백은 공백과 탭이어야 합니다.