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 .authinfo
arquivo, que têm o mesmo nome de host - eu estava assumindo que mu4e
seria 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 .authinfo
arquivo.
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.com
e work.gmail.com
tanto determinação de smtp.gmail.com
modo 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" )))))