mu4e - birden fazla hesap


22

mu4eEmacs'ta e-posta için kullanıyorum ve şu anda yalnızca bir posta hesabı için yapılandırılmış ve farklı gelen kutusunu görüntülemek için anahtarı ayarlıyorum. Mu4e'nin birden fazla e-posta hesabını yönetmek için nasıl kullanılacağını merak ediyorum?

Yanıtlar:


17

Mu4e'yi iki hesapla kullanıyorum. Her hesabın kendi maildir'i var:

~/Mail
|
+---- work
|
`---- private

Kılavuz bir hesap seçmek için örnek bir fonksiyonla birlikte gelir:

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

Bunun çalışması için ayrıca 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))

Tüm posta jdizinleriniz alt dizinleri olduğu sürece, posta klasörleri arasında kolayca geçiş yapabilirsiniz mu4e-maildir.

Aslında için daha ayrıntılı bir işlevi kullanıyorum mu4e-trash-folderve mu4e-refile-folderbaşka üzerinden bir maildir gelen e-postaları hareketli önlemek için, ancak Yukarıdaki bilgiler birden fazla hesap kullanmak yeterli olacaktır.


Mu4e'nin hangi gelen kutusunun gösterileceğini bildiğini anlamak için mücadele ediyorum. mu4e-inbox-folderDeğişken yok ve jibastığımda yalnızca iş veya özel bağlamdan değil, tüm hesaplarımdan gelen postaları alıyorum.
AstroFloyd

6

Mümkün olduğunca az karıştırmak istediğim iki farklı hesap kullanıyorum.

offlineimap iki hesap içine postayı teslim biriyle yapılandırıldığı ~/.maildir-workiçine diğeri ~/.maildir-home.

Mu4e için yapılandırmam yeni içerik mekanizmasını kullanıyor:

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

Bu örneği çalıştırmakta zorlanıyorum. Başına dokümanlarmu4e-maildir ve mu4e-mu-homedeğişkenler ilk mu4e çıkmadan değiştirilebilir olması gerekiyordu değildir. Ben biraz daha detay yayınlanmıştır burada benim sette yukarı.
kostajh

Gerçekten de, geçiş yaparken Emacs'ı yeniden başlatmak için başvurmak zorunda kaldım. Benim için hala buna değer.
Magnus

2

Magnus’a çok benzeyen bir kurulum kullanıyorum ve sadece (mu4e-quit)mevcut olanları eklemek istedim ve hesapları yeniden başlatmadan temizlemek için gayet iyi çalışıyor. Gerçek mekanizması:

(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))
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.