pastas mu4e para várias contas (contextos)

7

Estou tentando configurar o mu4e para usar tanto em contas pessoais como em contas do Gmail. Eu configurei offlineimape obtive o email com êxito .

Então tentei configurar o mu4e e de acordo com a documentação:

a maneira recomendada de lidar com várias contas é através do sistema de contextos interno do mu4e

OK. Eu defino os valores de contexto assim:

 mu4e-contexts
        `( ,(make-mu4e-context
             :name "home"
             :match-func (lambda (msg) (when msg (mu4e-message-contact-field-matches msg :to "[email protected]")))
             :vars '((mu4e-maildir           . "~/.mail/personal")
                     (mu4e-trash-folder      . "/[Gmail].Trash")))
           ,(make-mu4e-context
             :name "work"
             :match-func (lambda (msg) (when msg (mu4e-message-contact-field-matches msg :to "[email protected]")))
             :vars '((mu4e-maildir           . "~/.mail/work")
                     (mu4e-trash-folder      . "/[Gmail].Bin"))))))

é claro que há mais do que isso, estou mostrando apenas a peça relevante. Portanto, o problema que estou tendo é relacionado à exclusão de mensagens. Às vezes funciona, outras vezes não. E quando falha, lança mensagens como esta:

  error in process filter: Error 70: error moving /Users/ag/.mail/personal/[Gmail].INBOX/cur/1457242634_2.42730.C02MT2ZDFH05,U=27933,FMD5=4b4b643246a6b95b2136ea99e0e5f614:2,S 
to /Users/ag/.mail/[Gmail].Trash/cur/1457242634_2.42730.C02MT2ZDFH05,U=27933,FMD5=4b4b643246a6b95b2136ea99e0e5f614:2,ST

Você vê que ele selecionou o arquivo no personaldiretório e está tentando mover para a [Gmail].Trashraiz do maildir?

A árvore de diretórios real se parece mais com isso:

    /Users/ag/.mail
    ├── personal
    │   ├── INBOX
    │   ├── [Gmail].All\ Mail
    │   ├── [Gmail].Important
    │   ├── [Gmail].Sent\ Mail
    │   ├── [Gmail].Spam
    │   ├── [Gmail].Trash
    └── work
        ├── INBOX
        ├── [Gmail].All\ Mail
        ├── [Gmail].Bin
        ├── [Gmail].Important
        ├── [Gmail].Sent\ Mail
        ├── [Gmail].Spam

Observe que os mu4e-trash-foldervalores são diferentes para personale work. Honestamente, eu não sei o porquê - eu synclabels = yescoloquei no meu offlineimaprce é isso que eu tenho.

Parece-me que o mu4e falha ao definir o valor correto mu4e-trash-folderdurante a alternância de contexto. Alguém pode me ajudar a consertar isso? Mostre-me uma parte da configuração em que diferentes pastas estão sendo usadas para diferentes contextos? Obrigado.

iLemming
fonte
11
As pastas são diferentes porque sua conta pessoal usa inglês americano e sua conta comercial usa inglês britânico. O Gmail tem nomes de pastas definidos com base na sua preferência de idioma.
Nert

Respostas:

9

Você não pode definir o mu4e-maildir em contextos.

cf. http://www.djcbsoftware.nl/code/mu/mu4e/Contexts-example.html

Você pode definir qualquer tipo de variável; incluindo configurações para servidores de correio etc. No entanto, configurações como mu4e-maildir e mu4e-mu-home não são alteráveis ​​após serem definidas sem sair do mu4e primeiro.

Portanto, você deve definir da seguinte maneira:

(setq mu4e-maildir "~/.mail"
      mu4e-contexts
    `( ,(make-mu4e-context
         :name "home"
         :match-func (lambda (msg) (when msg (mu4e-message-contact-field-matches msg :to "[email protected]")))
         :vars '((mu4e-trash-folder      . "/personal/[Gmail].Trash")))
       ,(make-mu4e-context
         :name "work"
         :match-func (lambda (msg) (when msg (mu4e-message-contact-field-matches msg :to "[email protected]")))
         :vars '((mu4e-trash-folder      . "/work/[Gmail].Bin"))))))
lurdan
fonte
Se não estiver mu4e-maildirdefinido em contextos, como o mu4e sabe qual INBOXusar? Parece não havermu4e-inbox-folder variável ...
AstroFloyd
11
O mu4e não precisa se importar onde INBOXestá. Simplesmente indexa as pastas abaixo mu4e-maildire INBOXpode ser uma delas.
lurdan
Ah, entendo, e se realmente quero pular para uma caixa de entrada específica, posso definir mu4e-maildir-shortcutspara ir lá quando digitar, por exemplo ji.
AstroFloyd 20/05/19