Existem muitos artigos sobre este tópico, nenhum dos quais funciona para mim. O .muttrc tem o seguinte relacionado a várias contas (apenas IMAP é usado + é claro SMTP):
source "~/.mutt/account1"
folder-hook $folder 'source ~/.mutt/account1'
source "~/.mutt/account2"
folder-hook $folder 'source ~/.mutt/account2'
macro index <f2> '<sync-mailbox><enter-command>source ~/.mutt/account1<enter><change-folder>!<enter>'
macro index <f3> '<sync-mailbox><enter-command>source ~/.mutt/account2<enter><change-folder>!<enter>'
# Mailboxes
bind index G imap-fetch-mail
macro index gi "<change-folder>=INBOX<enter>" "Go to Inbox"
macro index gs "<change-folder>=$my_sent<enter>" "Go to Sent"
macro index gd "<change-folder>=$my_drafts<enter>" "Go to Drafts"
macro index gt "<change-folder>=$my_trash<enter>" "Go to Trash"
Os arquivos da conta são como (por exemplo, para a conta1, a outra seria a mesma, mas os nomes das pastas estariam em idioma diferente):
set my_drafts = "Drafts"
set my_drafts_noquote = "Drafts"
set my_sent = "Sent<quote-char><space>Items"
set my_sent_noquote = "Sent Items"
set my_trash = "Deleted<quote-char><space>Items"
set my_trash_noquote = "Deleted Items"
set imap_user = "username"
set folder = "imaps://outlook.office365.com:993/"
set imap_authenticators = "login"
set mbox = "+INBOX"
set spoolfile = "+INBOX"
set record = +$my_sent_noquote
set postponed = +$my_drafts_noquote
set trash = +$my_trash_noquote
set smtp_url = "smtp://[email protected]:587"
set smtp_authenticators = "login"
set copy = "yes"
account-hook $folder "set imap_user=username"
Então, depois de iniciar o mutt, acabo ficando na INBOX por account2
. Se eu pressionar gs
, gd
ou gt
todos eles me levarão para onde eu quero estar (pasta Enviada, rascunhos ou lixo). Então eu mudo para conta por F2
e chego à pasta INBOX corretamente, mas gs
, gt
, gd
não funciona mais (Observe que conta1 e conta2 usam nomes diferentes para lixo, rascunhos e enviados). (O que mostra é que "itens enviados" não existe, mas as palavras "itens enviados" estão escritas no idioma da conta2, mas com caracteres malformados).
Como devo corrigir a configuração?
Eu finalmente encontrei a resolução, então se alguém tiver o mesmo problema, a resposta é adicionar ao mapeamento de arquivos account1 e account2 para os sortcuts, ou seja, de
muttrc
, as linhastambém precisa estar no final dos arquivos acout1 e account2 de origem. Parece que
mutt
preenche o valor das variáveis ao ler a configuração pela primeira vez ao invés de manter a variável e avaliar a expressão para atalho cada vez que o atalho é executado com o valor real da variável.