Como posso criptografar o GPG apenas para um único destinatário específico no mutt?

5

Estou tentando configurar um hook de envio para que a criptografia gpg seja ativada quando eu enviar para um destinatário específico, mas se ela for enviada para outros destinatários também, a criptografia será desativada. No entanto, os ganchos de envio parecem disparar quando um destinatário em particular está em qualquer lugar na lista de destinatários, independentemente de quem mais estiver presente.

O ideal seria criptografar se for para [email protected] , mas não se for para [email protected], [email protected], [email protected] . O manual diz

When multiple matches occur, [send-hook] commands are executed in the order they are specified in the muttrc.

Por isso, coloquei o seguinte no meu muttrc. Se o email for enviado para [email protected] , ative o autoencrypt. No entanto, se houver um destinatário que não seja [email protected] , desative o autocriptografia.

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"

No entanto, não parece funcionar. Parece que os ganchos de envio não parecem analisar cada destinatário separadamente. Mesmo se eu direcionar e-mail para [email protected], [email protected] , o mutt tentará criptografá-lo.

Solução alternativa

Eu posso contornar isso com um hack muito feio.

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

Se eu enviar um e-mail para um endereço .com que não tenha um caractere r anterior, ele não será criptografado. Obviamente, há muitos …r.com endereços que não são [email protected] , então tenho que estender a terceira linha da seguinte forma.

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

Isso também exclui …r.com endereços com um caractere não a anterior também. Eu só repito essa sequência mais algumas vezes.

O principal problema com isso é que os hooks de envio não parecem disparar para endereços cc:, fazendo com que essa terceira linha seja discutível se o email for cc: ed para [email protected] .

    
por Sparhawk 11.10.2015 / 04:47

1 resposta

1

Em muttrc, use

set crypt_opportunistic_encrypt = yes

De $ 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)

Isso também inspeciona os endereços cc: ed quanto à validade. Infelizmente, de acordo com o segundo e último parágrafo, isso substitui muitas configurações úteis. Por exemplo, eu tenho set pgp_autoinline = yes , que é obsoleto, mas necessário para enviar para clientes mais antigos 1 , que não suportam PGP / MIME.

1 Por exemplo, o K-9 + APG do Android. AFAIK este é o único cliente de e-mail FOSS Android que lê e-mails criptografados com PGP, mas apenas de forma limitada. (EDIT: K-9 + openkeychain agora suporta PGP / MIME.)

    
por 26.06.2016 / 08:29

Tags