`mu4e-contexts` beberapa akun gmail menggunakan kredensial smtp yang salah


10

Saya mencoba menyiapkan beberapa akun Gmail menggunakan mu4e-context. Saya memiliki banyak fitur yang berfungsi kecuali satu. Saya dapat beralih antar konteks, memperbarui email saya di setiap akun (menggunakan offlineimap) dan saya dapat mengirim email.

Masalahnya adalah bahwa saya memiliki beberapa baris dalam .authinfofile saya , yang memiliki nama host yang sama - saya berasumsi bahwa mu4eakan dapat dibedakan berdasarkan nama pengguna, ini tampaknya tidak terjadi. Tidak masalah dalam konteks apa saya berada, surat selalu dikirim dari akun yang dikonfigurasi terlebih dahulu dalam .authinfofile.

Saya tidak tahu bagaimana membuat setiap konteks menggunakan kredensial terpisah untuk masuk ke Server SMTP Gmail.

Saya berpikir untuk mencoba membuat beberapa alias nama host sehingga personal.gmail.comdan work.gmail.comkeduanya memutuskan smtp.gmail.comagar saya dapat memberi mereka nama mesin yang terpisah authinfo, tetapi saya tidak yakin bagaimana cara mencapainya (pada OSX) atau bahkan jika itu cara yang masuk akal untuk menyelesaikan masalah ini (Idealnya saya tidak perlu bermain-main dengan konfigurasi di luar Emacs).

Authinfo saya terlihat seperti ini

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

dan bagian yang relevan dari mu4e-config saya adalah:

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

Apakah Anda dapat menyelesaikan ini?
Pierre

Jawaban:


5

Sudah hampir dua tahun sejak pertanyaan diajukan, tetapi saya baru saja mengalami masalah yang sama dan saya berhasil menyelesaikannya menggunakan smtpmail-smtp-uservariabel. Dalam manual itu tertulis:

Jika variabel smtpmail-smtp-user diatur ke nilai non-nil, maka hanya entri untuk pengguna yang dipertimbangkan.

Dalam konteks pribadi saya vars saya punya:

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

Dalam konteks pekerjaan saya vars saya punya:

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

Saya hanya mengujinya secara singkat, tetapi tampaknya berfungsi dengan baik.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.