`mu4e-contexts` várias contas do Gmail usando credenciais smtp incorretas


10

Estou tentando configurar várias contas do Gmail usando mu4e-context's. Eu tenho muitos dos recursos funcionando, exceto um. Posso alternar entre contextos, atualizar meus e-mails em cada conta (usando offlineimap) e posso enviar e-mails.

O problema é que tenho várias linhas no meu .authinfoarquivo, que têm o mesmo nome de host - eu estava assumindo que mu4eseria capaz de diferenciar por nome de usuário, isso parece não ser o caso. Não importa em que contexto eu esteja, o email sempre será enviado da conta que é configurada primeiro no .authinfoarquivo.

Não sei como fazer com que cada contexto use credenciais separadas para fazer login no servidor SMTP do Gmail.

Eu pensei em tentar configurar alguns aliases de nome de host para que personal.gmail.come work.gmail.comtanto determinação de smtp.gmail.commodo que eu possa dar-lhes nomes das máquinas separadas em authinfo, mas não tenho certeza como conseguir isso (em OSX) ou mesmo se é uma maneira sensata de resolver este problema (Idealmente, eu não precisaria mexer com configurações fora do Emacs).

Meu authinfo se parece com isso

machine smtp.gmail.com login personal@example.com port 587 password fakepassword
machine smtp.gmail.com login work@example.com port 587 password fakepassword

e as partes relevantes do meu mu4e-config são:

(setq mu4e-get-mail-command "offlineimap")
(setq mail-user-agent 'mu4e-user-agent)
(setq message-send-mail-function 'smtpmail-send-it)

(setq smtpmail-stream-type 'starttls)
(setq smtpmail-default-smtp-server "smtp.gmail.com")
(setq smtpmail-smtp-server "smtp.gmail.com")
(setq smtpmail-smtp-service 587)

(setq mu4e-contexts
      `( ,(make-mu4e-context
           :name "personal"
           :enter-func (lambda () (mu4e-message "Switch to Personal context"))
           ;; leave-func not defined
           :match-func (lambda (msg)
                         (when msg
                           (mu4e-message-contact-field-matches msg :to "personal@example.com")))
           :vars '(  (user-mail-address . "personal@example.com"  )
                     (mu4e-drafts-folder . "/personal/drafts")
                     (mu4e-sent-folder   . "/personal/sent")
                     (mu4e-trash-folder  . "/personal/bin")
                     (mu4e-maildir-shortcuts . (("/personal/INBOX" . ?i)
                                                ("/personal/sent"  . ?s)
                                                ("/personal/bin"   . ?t)))
                     (smtpmail-mail-address . "personal@example.com")
                     (user-full-name    . "Matt Valentine-House" )))
         ,(make-mu4e-context
           :name "work"
           :enter-func (lambda () (mu4e-message "Switch to Work context"))
           ;; leave-fun not defined
           :match-func (lambda (msg)
                         (when msg
                           (mu4e-message-contact-field-matches msg :to "work@example.com")))
           :vars '(  (user-mail-address . "work@example.com" )
                     (mu4e-drafts-folder . "/work/drafts")
                     (mu4e-sent-folder   . "/work/sent")
                     (mu4e-trash-folder  . "/work/bin")
                     (mu4e-maildir-shortcuts . (("/work/INBOX" . ?i)
                                                ("/work/sent"  . ?s)
                                                ("/work/bin"   . ?t)))
                     (smtpmail-mail-address . "work@example.com")
                     ( user-full-name    . "Matthew Valentine-House" )))))

Você conseguiu resolver isso?
Pierre

Respostas:


5

Faz quase dois anos desde que a pergunta foi feita, mas eu apenas tive o mesmo problema e consegui resolvê-lo usando a smtpmail-smtp-uservariável No manual diz:

Se a variável smtpmail-smtp-user estiver configurada com um valor diferente de zero, apenas as entradas desse usuário serão consideradas.

No meu contexto pessoal, eu tenho:

(smtpmail-smtp-user . "personal@example.com")

No meu contexto de trabalho, eu tenho:

(smtpmail-smtp-user . "work@example.com")

Eu testei apenas brevemente, mas parece funcionar corretamente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.