`mu4e-contexts` plusieurs comptes gmail utilisant des informations d'identification smtp incorrectes


10

J'essaie de configurer plusieurs comptes Gmail à l'aide mu4e-contextde. J'ai beaucoup de fonctionnalités qui fonctionnent, sauf une. Je peux basculer entre les contextes, mettre à jour mon courrier dans chaque compte (en utilisant offlineimap) et je peux envoyer du courrier.

Le problème est que j'ai plusieurs lignes dans mon .authinfofichier, qui ont le même nom d'hôte - je supposais que ce mu4eserait capable de différencier par nom d'utilisateur, cela ne semble pas être le cas. Peu importe le contexte dans lequel je me trouve, le courrier est toujours envoyé à partir du compte configuré en premier dans le .authinfofichier.

Je ne sais pas comment faire pour que chaque contexte utilise des informations d'identification distinctes pour se connecter au serveur SMTP Gmail.

Je pensais à essayer de mettre en place des alias de nom d'hôte afin que personal.gmail.comet à la work.gmail.comfois résolus à smtp.gmail.comafin que je puisse leur donner des noms de machines distinctes dans authinfo, mais je ne suis pas sûr comment atteindre cet objectif (sur OSX) ou même si elle est un moyen raisonnable de résoudre ce problème (Idéalement, je n'aurais pas à faire de singe avec une configuration en dehors d'Emacs).

Mon authinfo ressemble à ceci

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

et les parties pertinentes de ma config mu4e sont:

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

Avez-vous pu résoudre ce problème?
Pierre

Réponses:


5

Cela fait presque deux ans que la question a été posée, mais je viens d'avoir le même problème et j'ai réussi à le résoudre en utilisant la smtpmail-smtp-uservariable. Dans le manuel, il est écrit:

Si la variable smtpmail-smtp-user est définie sur une valeur non nulle, alors seules les entrées pour cet utilisateur sont prises en compte.

Dans mon contexte personnel, j'ai:

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

Dans mon contexte de travail, j'ai:

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

Je ne l'ai testé que brièvement, mais il semble fonctionner correctement.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.