`mu4e-contexts` múltiples cuentas de gmail usando credenciales smtp incorrectas


10

Estoy tratando de configurar varias cuentas de Gmail usando mu4e-context's. Tengo muchas funciones funcionando, excepto una. Puedo cambiar entre contextos, actualizar mi correo en cada cuenta (usando offlineimap) y puedo enviar correo.

El problema es que tengo varias líneas en mi .authinfoarchivo, que tienen el mismo nombre de host; suponía que mu4epodría diferenciarse por nombre de usuario, este parece no ser el caso. No importa en qué contexto estoy, el correo siempre se envía desde la cuenta que se configura primero en el .authinfoarchivo.

No sé cómo hacer que cada contexto use credenciales separadas para iniciar sesión en el servidor SMTP de Gmail.

Pensé en intentar crear algunos alias de nombre de host de modo que personal.gmail.comy work.gmail.comtanto resolución de smtp.gmail.commodo que yo les puedo dar nombres de las máquinas separadas en authinfo, pero estoy seguro de como hacer esto (en OSX) o incluso si se trata de una forma sensata de resolver este problema (Idealmente, no tendría que hacer el mono con la configuración fuera de Emacs).

Mi authinfo se ve así

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

y las partes relevantes de mi mu4e-config es:

(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" )))))

¿Fuiste capaz de resolver esto?
Pierre

Respuestas:


5

Han pasado casi dos años desde que se hizo la pregunta, pero acabo de tener el mismo problema y logré resolverlo usando la smtpmail-smtp-uservariable. En el manual dice:

Si la variable smtpmail-smtp-user se establece en un valor no nulo, solo se consideran las entradas para ese usuario.

En mi contexto personal, tengo:

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

En mi contexto laboral tengo:

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

Solo lo probé brevemente, pero parece funcionar correctamente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.