mu4e-여러 계정


22

mu4eEmacs에서 이메일을 사용 하고 있으며 현재 하나의 메일 계정으로 만 구성되어 있으며 다른받은 편지함을 볼 수 있도록 키를 설정했습니다. 여러 이메일 계정을 관리하기 위해 mu4e를 사용하는 방법이 궁금합니다.

답변:


17

두 개의 계정으로 mu4e를 사용하고 있습니다. 각 계정에는 고유 한 maildir이 있습니다.

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

매뉴얼에는 계정을 선택하는 예제 기능이 있습니다.

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

그것이 작동하려면 다음이 필요합니다 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))

j모든 maildir이 하위 디렉토리 인 경우을 사용하여 메일 폴더간에 간단히 전환 할 수 있습니다 mu4e-maildir.

실제로 한 maildir에서 다른 maildir로 이메일을 이동하는 것을 피하기 위해 보다 정교한 기능을 사용 mu4e-trash-folder하고 mu4e-refile-folder있지만 위의 정보는 여러 계정을 사용하기에 충분해야합니다.


mu4e가 어떤받은 편지함을 표시하는지 어떻게 알 수 있는지 고심하고 있습니다. 아무 없다 mu4e-inbox-folder변수는, 내가 누를 때 ji나는 들어오는에서 메일을받을 모든 내 계좌뿐 아니라 직장이나 개인 문맥을.
AstroFloyd

6

가능한 한 적게 섞고 싶은 두 개의 다른 계정을 사용하고 있습니다.

offlineimap 은 두 개의 계정으로 구성되며 하나 ~/.maildir-work는 다른 계정으로 메일을 배달합니다 ~/.maildir-home.

mu4e에 대한 내 구성 은 새로운 컨텍스트 메커니즘을 사용합니다.

(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-maildirmu4e-mu-home변수는 첫 번째 mu4e을 종료하지 않고 변경 있어야되지 않습니다. 설정에 대한 자세한 내용을 여기 에 게시 했습니다.
kostajh

실제로, 나는 전환 할 때 Emacs를 다시 시작해야했습니다. 저에게는 여전히 그만한 가치가 있습니다.
Magnus

2

Magnus와 매우 유사한 설정을 사용하고 있으며 추가하고 싶었지만 (mu4e-quit)다시 시작하지 않고 계정을 정리하는 데 효과적입니다. 실제 메커니즘 :

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