내 받은 편지함에는 모두 일반 텍스트로 된 12000개 이상의 이메일 메시지가 있으며, 해당 이메일 메시지 중 일부는 첨부 파일과 함께 있습니다. 나는 일반 텍스트에서 암호화된 메시지로 이메일 메시지를 암호화하는 방법을 몇 주 동안 검색해 왔습니다.
새로 작성된 메시지를 암호화하는 방법을 제가 잘 알고 있으므로 보내는 메일에 PGP 암호화를 제안하지 마세요. 나는 여기서 수년 동안 일반 텍스트로 받은 편지함에 저장된 기존 이메일에 대해 이야기하고 있습니다.
대량으로 암호화할 수 있는 방법을 찾고 있습니다. 모든 메시지를 다운로드하고 EML 형식으로 내보냈으며 해당 메시지를 암호화하는 데 도움이 되는 모든 형식으로 변환할 수 있습니다.
제목은 제외하고 메시지 본문만 암호화하려고 합니다.
감사합니다
답변1
나는 같은 문제가 있었고 오늘 좋은 해결책을 찾았습니다.
내가 찾은 procmail 설정을 기반으로 합니다. 받은 편지함에 이미 있는 기존 메일 대신 받는 메일을 원래 암호화합니다.
https://www.j3e.de/pgp-mime-encrypt-in-procmail.html(Bjoern에게 감사드립니다)
procmail(수신 파일) 대신 기존 메일박스 파일과 함께 스크립트로 작동하도록 수정했습니다.
이 명령은 작고 간단하며 표준 도구 'formail'을 사용하여 헤더와 본문을 깔끔하게 처리합니다.
먼저 procmail을 사용하여 URL에 설명된 대로 두 개의 .gpg-mime-start 및 .gpg-mime-end 파일을 생성해야 합니다! 그리고 평소처럼 키를 사용하여 명령줄 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 서명.." 사용).
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
다른 폴더와 작동하도록 수정하세요.