`mu4e-contexts` 잘못된 SMTP 자격 증명을 사용하는 여러 Gmail 계정


11

의를 사용하여 여러 개의 Gmail 계정을 설정하려고합니다 mu4e-context. 하나를 제외한 많은 기능이 작동합니다. 컨텍스트간에 전환하고 각 계정에서 메일을 업데이트하고 (offlineaima를 사용하여) 메일을 보낼 수 있습니다.

문제는 .authinfo파일에 여러 줄 이 있고 동일한 호스트 이름을 가지고 있다는 mu4e것입니다. 사용자 이름으로 구별 할 수 있다고 가정했지만 , 그렇지 않은 것 같습니다. 내가 어떤 컨텍스트에 있든 상관없이 메일은 항상 파일 에서 처음 구성된 계정에서 전송 .authinfo됩니다.

각 컨텍스트에서 Gmail SMTP 서버에 로그인하기 위해 별도의 자격 증명을 사용하는 방법을 모르겠습니다.

나는 호스트 이름 별명을 설정하려고 시도 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" )))))

이 문제를 해결할 수 있었습니까?
피에르

답변:


5

질문이 나온 지 거의 2 년이 지났지 만 방금 같은 문제가 있었고 smtpmail-smtp-user변수를 사용하여 문제를 해결할 수있었습니다 . 매뉴얼에서는 다음과 같이 말합니다.

smtpmail-smtp-user 변수가 0이 아닌 값으로 설정되면 해당 사용자에 대한 항목 만 고려됩니다.

내 개인적인 맥락에서 나는 가지고있다 :

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

내 작업 컨텍스트 변수에는 다음이 있습니다.

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

간단히 테스트했지만 제대로 작동하는 것 같습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.