Saya menggunakan mu4e
email di Emacs, dan saat ini hanya dikonfigurasi untuk satu akun email, dan saya mengatur kunci untuk melihat kotak masuk yang berbeda. Saya bertanya-tanya bagaimana cara menggunakan mu4e untuk mengelola beberapa akun email?
Saya menggunakan mu4e
email di Emacs, dan saat ini hanya dikonfigurasi untuk satu akun email, dan saya mengatur kunci untuk melihat kotak masuk yang berbeda. Saya bertanya-tanya bagaimana cara menggunakan mu4e untuk mengelola beberapa akun email?
Jawaban:
Saya menggunakan mu4e dengan dua akun. Setiap akun memiliki maildir sendiri:
~/Mail
|
+---- work
|
`---- private
Manual ini dilengkapi dengan fungsi contoh untuk memilih akun:
(defun my-mu4e-set-account ()
"Set the account for composing a message."
(let* ((account
(if mu4e-compose-parent-message
(let ((maildir (mu4e-message-field mu4e-compose-parent-message :maildir)))
(string-match "/\\(.*?\\)/" maildir)
(match-string 1 maildir))
(completing-read (format "Compose with account: (%s) "
(mapconcat #'(lambda (var) (car var))
my-mu4e-account-alist "/"))
(mapcar #'(lambda (var) (car var)) my-mu4e-account-alist)
nil t nil nil (caar my-mu4e-account-alist))))
(account-vars (cdr (assoc account my-mu4e-account-alist))))
(if account-vars
(mapc #'(lambda (var)
(set (car var) (cadr var)))
account-vars)
(error "No email account found"))))
;; ask for account when composing mail
(add-hook 'mu4e-compose-pre-hook 'my-mu4e-set-account)
Agar itu berfungsi, Anda juga akan memerlukan my-mu4e-account-alist
:
(defvar my-mu4e-account-alist
'(("private"
(user-mail-address "private@domain.net")
(user-full-name "My Name")
(mu4e-sent-folder "/private/Sent Items")
(mu4e-drafts-folder "/private/Drafts")
(mu4e-trash-folder "/private/Deleted Items")
(mu4e-refile-folder "/private/Archive"))
("work"
(user-mail-address "work@domain.net")
(mu4e-sent-folder "/work/Sent Items")
(mu4e-drafts-folder "/work/Drafts")
(mu4e-trash-folder "/work/Deleted Items")
(mu4e-refile-folder "/work/Archives"))))
(setq mu4e-user-mail-address-list
(mapcar (lambda (account) (cadr (assq 'user-mail-address account)))
my-mu4e-account-alist))
Anda dapat dengan mudah beralih di antara folder surat j
, selama semua maildir Anda adalah subdirektori dari mu4e-maildir
.
Saya sebenarnya menggunakan fungsi yang lebih rumit untuk mu4e-trash-folder
dan mu4e-refile-folder
menghindari memindahkan email dari satu maildir ke yang lain, tetapi informasi di atas harus memadai untuk menggunakan beberapa akun.
Saya menggunakan dua akun berbeda yang ingin saya campur sesedikit mungkin.
offlineimap dikonfigurasikan dengan dua akun, satu mengirimkan email ke ~/.maildir-work
yang lain ke ~/.maildir-home
.
Konfigurasi saya untuk mu4e menggunakan mekanisme konteks baru:
(setq mu4e-contexts
`( ,(make-mu4e-context
:name "home"
:match-func (lambda (_) (string-equal "home" (mu4e-context-name mu4e~context-current)))
:enter-func '()
:leave-func (lambda () (mu4e-clear-caches))
:vars '((mu4e-maildir . "~/.maildir-home")
(mu4e-mu-home . "~/.mu-home")
(mu4e-get-mail-command . "offlineimap -a Home")
...))
,(make-mu4e-context
:name "work"
:match-func (lambda (_) (string-equal "work" (mu4e-context-name mu4e~context-current)))
:enter-func '()
:leave-func (lambda () (mu4e-clear-caches))
:vars '((mu4e-maildir . "~/.maildir-work")
(mu4e-mu-home . "~/.mu-work")
(mu4e-get-mail-command . "offlineimap -a Work")
...))))
mu4e-maildir
dan mu4e-mu-home
variabel tidak seharusnya berubah tanpa berhenti mu4e pertama. Saya memposting sedikit lebih detail di sini di set up saya.
Saya menggunakan pengaturan yang sangat mirip dengan Magnus, dan hanya ingin menambahkan yang (mu4e-quit)
ada, dan berfungsi baik untuk membersihkan akun tanpa memulai ulang. Mekanisme aktual:
(defun mail-gmail ()
(interactive)
(setenv "MAILDIR" "/Users/foo/Maildir/gmail")
(setenv "MU_HOME" "/Users/foo/.mu/gmail")
(setq mu4e-maildir "/Users/foo/Maildir/gmail")
(setq user-mail-address "...")
(mu4e-quit))
mu4e-inbox-folder
variabel, dan ketika saya menekanji
saya mendapat email masuk dari semua akun saya, bukan hanya konteks pekerjaan atau pribadi.