mutt에서 고유한 특정 수신자만 GPG로 암호화하려면 어떻게 해야 합니까?

mutt에서 고유한 특정 수신자만 GPG로 암호화하려면 어떻게 해야 합니까?

특정 수신자에게 보낼 때 gpg 암호화를 활성화하지만 다른 수신자에게도 보낼 때는 암호화를 비활성화하는 전송 후크를 설정하려고 합니다. 그러나 특정 수신자가 전송되면 전송 후크가 트리거되는 것 같습니다.어딘가에수신자 목록에는 다른 사람이 있는지에 관계없이 표시됩니다.

이상적으로는 암호화하면 암호화 [email protected]하지만, 암호화하면 암호화하지 않습니다. 바보[email protected], [email protected], [email protected]수동설명하다

일치하는 항목이 여러 개일 경우 muttrc에 지정된 순서대로 [send-hook] 명령이 실행됩니다.

그래서 나는 muttrc에 다음을 넣었습니다. 메시지가 로 전송되면 자동 암호화를 활성화합니다 [email protected]. 단, 수신자가 아닌 사람이 있는 경우에는 [email protected]자동 암호화가 해제됩니다.

send-hook . unset crypt_autoencrypt
send-hook "!~l ~t ^foo@bar\\.com$" "set crypt_autoencrypt"
send-hook "!~l !~t ^foo@bar\\.com$" "unset crypt_autoencrypt"

그러나 작동하지 않는 것 같습니다. 송신 후크가 각 개별 수신자를 개별적으로 구문 분석하지 않는 것 같습니다. 내가 메시지를 보내더라도 mutt는 메시지를 암호화하려고 시도할 것입니다.[email protected], [email protected]

해결책

아주 추악한 해킹으로 이 문제를 해결할 수 있습니다.

send-hook . unset crypt_autoencrypt
send-hook "!~l ~t ^foo@bar\\.com$" "set crypt_autoencrypt"
send-hook "!~l ~t [^r]\\.com$" "unset crypt_autoencrypt"

.com문자 가 아닌 주소로 이메일을 보내면 r암호화되지 않습니다. …r.com아닌 주소가 많은 것 같으니 [email protected]다음과 같이 세 번째 줄을 확장해야 합니다.

send-hook "!~l ~t '([^r]\\.com|[^a]r\\.com)$" "unset crypt_autoencrypt"

또한 …r.com문자가 아닌 문자가 앞에 오는 주소 도 제외됩니다 a. 저는 이 순서를 몇 번 반복합니다.

가장 큰 문제는 cc: 주소에 대해 send-hooks가 실행되지 않는 것 같고, 이메일이 cc:로 연결되면 세 번째 줄 전체가 의미가 없다는 것입니다 [email protected].

답변1

muttrc에서는 다음을 사용하세요.

set crypt_opportunistic_encrypt = yes

~에서$ man 5 muttrc

crypt_opportunistic_encrypt
      Type: boolean
      Default: no

      Setting this variable will cause Mutt to automatically enable
      and disable encryption, based on whether all message recipient
      keys can be located by mutt.

      When this option is enabled, mutt will determine the encryption
      setting each time the TO, CC, and BCC lists are edited.  If
      $edit_headers is set, mutt will also do so each time the
      message is edited.

      While this is set, encryption settings can't be manually
      changed.  The pgp or smime menus provide an option to disable
      the option for a particular message.

      If $crypt_autoencrypt or $crypt_replyencrypt enable encryption
      for a message, this option will be disabled for the message.  It
      can be manually re-enabled in the pgp or smime menus.  (Crypto
      only)

또한 cc:ed 주소의 유효성도 확인합니다. 불행하게도 두 번째 단락에 따르면 이는 많은 유용한 설정보다 우선합니다. 예를 들어, set pgp_autoinline = yes더 이상 사용되지 않지만 PGP/MIME을 지원하지 않는 이전 클라이언트에 보내는 데 필요한 1 이 있습니다 .

1Android용 K-9+APG의 . 내가 아는 한, 이것은 PGP로 암호화된 이메일을 읽을 수 있는 유일한 FOSS Android 이메일 클라이언트이지만 제한된 방식으로만 가능합니다. (편집자: K-9 + openkeychain은 이제 PGP/MIME을 지원합니다.)

관련 정보