`mu4e-contexts` несколько учетных записей Gmail, использующих неправильные учетные данные SMTP

11

Я пытаюсь настроить несколько учетных записей Gmail, используя mu4e-contexts. У меня много функций, кроме одной. Я могу переключаться между контекстами, обновлять почту в каждой учетной записи (используя offlineimap) и отправлять почту.

Проблема в том, что у меня в .authinfoфайле несколько строк с одинаковым именем хоста - я предполагал, mu4eчто смогу различить по имени пользователя, похоже, это не так. Не имеет значения, в каком контексте я нахожусь, почта всегда отправляется с учетной записи, которая настроена первой в .authinfoфайле.

Я не знаю, как заставить каждый контекст использовать отдельные учетные данные для входа на SMTP-сервер Gmail.

Я думал о попытке установить некоторые имя хоста псевдонимы , так что personal.gmail.comи work.gmail.comкак решимость , smtp.gmail.comтак что я могу дать им отдельные имена машин в authinfo, но я не уверен , как добиться этого (на OSX) или даже если это разумный способ решить эту проблему (В идеале мне не пришлось бы возиться с конфигурацией вне Emacs).

Мой authinfo выглядит так

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

и соответствующие части моего mu4e-config:

(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" )))))
eightbitraptor
источник
Вам удалось решить эту проблему?
Пьер

Ответы:

5

Прошло почти два года с тех пор, как был задан вопрос, но у меня была та же самая проблема, и мне удалось решить ее с помощью smtpmail-smtp-userпеременной. В руководстве сказано:

Если для переменной smtpmail-smtp-user задано ненулевое значение, то рассматриваются только записи для этого пользователя.

В моем личном контексте я имею:

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

В моем контексте работы я имею:

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

Я только кратко проверил это, но, кажется, работает правильно.

чесотка
источник