Por que o mutt continua pedindo o nome de usuário e a senha do imap?

13

Variáveis de vira-lata desactivação de configuração imap_user, imap_pass(e talvez preconnect, imap_authenticatorstambém) através de uma account-hook . "unset ... "chamada, parece ser prática comum, se não uma necessidade, para lidar com múltiplas contas IMAP (ver gerenciar várias contas IMAP / POP (opcional) , Mutt imap conta múltipla , vira-lata : IMAP do gmail não responde , um arquivo de configuração relacionado ao gancho de conta no funtoo.org ).

Atualmente, eu manuseio apenas uma conta via IMAP. Os planos para o manuseio de várias contas me levam a seguir as instruções encontradas no último dos links mencionados acima ( o exemplo de alguém da configuração de mutt ). Portanto, de maneira semelhante, usei o seguinte:

account-hook . 'unset imap_user; unset imap_pass; unset tunnel'
account-hook 'imaps://mail.domain.net:993/INBOX/' "set [email protected]"
account-hook 'imaps://mail.domain.net:993/INBOX/' "set imap_pass=${my_password}"

Isso é armazenado em um arquivo separado (nomeado account_hooks) e originado de dentro muttrc. Por razões que eu não entendo, o mutt continua pedindo o nome de usuário e a senha . No entanto, se as variáveis imap_usere imap_passestiverem definidas diretamente muttrc, por exemplo,

set my_password="`gpg --decrypt ~/.mutt/password.gpg`"
set imap_authenticators='login'
set imap_login = '[email protected]'
set imap_user = '[email protected]'
set imap_pass ="${my_password}"

tudo funciona bem. O account_hooksarquivo é o primeiro originado e não account-hook . "unset ..."existem outras chamadas em nenhum outro lugar.

Atualização , o folder-hooksarquivo é (e era, eu acho) da seguinte maneira:

#--------------------------------------------------------------------------
# Folders and hooks
#--------------------------------------------------------------------------
# folder-hook 'imaps://UserName%[email protected]:993/'
set folder = "~/.maildir"       # IMAP: local, using offlineimap -- folder="imaps://mail.domain.net:993/INBOX/"
source ~/.mutt/mailboxes        # source automatically generated mailboxes
set spoolfile = "+INBOX"        # spoolfile='imaps://mail.domain.net:993/'
set postponed = "+INBOX/Drafts"

# Sending -----------------------------------------------------------------
set smtp_url="smtp://[email protected]@mail.domain.net:587/"
set smtp_pass=${my_password}
set record = "+INBOX/Sent"
set copy=yes

# Index format ----------------------------------------------------------------
folder-hook *[sS]ent* 'set sort=threads'
folder-hook *[sS]ent* 'set sort_browser=reverse-date'
folder-hook *[sS]ent* 'set sort_aux=reverse-last-date-received'
folder-hook *[sS]ent* 'set index_format="%2C | %Z [%d] %-30.30t (%-4.4c) %s"'
folder-hook ! *[sS]ent* 'set index_format="%2C | %Z [%d] %-30.30F (%-4.4c) %s"':

Por que o arquivo separado account_hooks não alimenta adequadamente as variáveis ​​de interesse nesse caso (por exemplo, imap_user e imap_pass )?

Nikos Alexandris
fonte
Se você ainda estiver interessado em responder, gostaria de ver as folder-hooklinhas que você tem no seu .muttrc. Então, posso tirar algumas conclusões e oferecer uma solução completa.
Lr.garbage 22/10
1
@brauner, tão tarde e ocupado, pede desculpas. Não encontrei tempo para experimentar mais isso, pois não precisava. Tenho que rastrear as folder-hookconfigurações que usei na época, acho que tenho como backup.
Nikos Alexandris
você pode postar um arquivo de depuração de 'mutt -d 5'?
Asdmin 17/04
@ asdmin no momento, a resposta é DEBUG was not defined during compilation. Ignored.. Depois de encontrar algum tempo, recompilar e postar de volta.
Nikos Alexandris
@kyrias thnx for edits
Nikos Alexandris

Respostas:

3

Você pode definir nome de usuário e senha diretamente, mas ele não funciona quando você usa um account-hook, portanto, provavelmente account-hooknão funciona.

Um account-hookconsiste em um regexp para as caixas de correio e os comandos que devem ser executados se uma caixa de correio corresponder ao regexp .

Como os comandos ( set imap_user, set imap_pass) não são executados, podemos assumir que regexpnão correspondeu às suas caixas de correio.

Você está usando 'imaps: //mail.domain.net: 993 / INBOX /', que é muito específico. Provavelmente, suas caixas de correio têm nomes ligeiramente diferentes.

Essa é a única conta de email que mail.domain.netvocê está usando? Nesse caso, reduzir o regexp para 'mail.domain.net'deve ser suficiente para corresponder às suas caixas de correio.

account-hook . 'unset imap_user; unset imap_pass; unset tunnel
account-hook mail.domain.net "set [email protected]"
account-hook mail.domain.net "set imap_pass=${my_password}"
Thomas Weinbrenner
fonte
Voltei a resolver isso. Provavelmente sua interpretação está correta. Espero, espero, verificar isso em breve. Obrigado.
Nikos Alexandris
Se ambos set imap_usere set imap_passnão são executados, por que me pedem uma senha Password for [email protected]:? Exatamente o ID do usuário e o domínio definidos account-hookno account-hooksarquivo?
Nikos Alexandris
Eu consertei isso! Eu acho que estava faltando para fornecer o ${my_password}correto para a smtp_passvariável. Foi ${password}...: - /
Nikos Alexandris
Em relação ao meu último comentário, após várias edições experimentais, parece que eu usei errado "${password}", em vez de "${my_password}". O account-hooksarquivo parece funcionar por pelo menos 2 contas, agora, corretamente. E outro terceiro para o qual ele está preso a outro problema, a saber, um SSL failed: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol. Mas isso não está diretamente relacionado à pergunta feita e respondida aqui. Portanto, excluindo "erros de digitação", o problema, inicialmente, era de fato o regexpnão corresponder às caixas de correio em questão.
Nikos Alexandris