(use-package mu4e :ensure nil :demand nil :init ;; assumed Maildir layout ;; ~/Maildir/Account0/{Inbox,Sent,Trash} ;; ~/Maildir/Account1/{Inbox,Sent,Trash} ;; where Account0 is context name (defun my/make-mu4e-context (context-name full-name mail-address signature) "Return a mu4e context named CONTEXT-NAME with :match-func matching folder name CONTEXT-NAME in Maildir. The context's `user-mail-address', `user-full-name' and `mu4e-compose-signature' is set to MAIL-ADDRESS FULL-NAME and SIGNATURE respectively. Special folders are set to context specific folders." (let ((dir-name (concat "/" context-name))) (make-mu4e-context :name context-name ;; we match based on the maildir of the message ;; this matches maildir /Arkham and its sub-directories :match-func `(lambda (msg) (when msg (string-match-p ,(concat "^" dir-name) (mu4e-message-field msg :maildir)))) :vars `((user-mail-address . ,mail-address) (user-full-name . ,full-name) (mu4e-sent-folder . ,(concat dir-name "/sent")) (mu4e-drafts-folder . ,(concat dir-name "/drafts")) (mu4e-trash-folder . ,(concat dir-name "/trash")) (mu4e-refile-folder . ,(concat dir-name "/archive")) (mu4e-compose-signature . ,signature))))) :custom (mu4e-change-filenames-when-moving t) (mu4e-get-mail-command "mbsync --all") :config ;;Fixing duplicate UID errors when using mbsync and mu4e (setq mu4e-contexts `(,(my/make-mu4e-context "thomasmulmer02" "Thomas Ulmer" "thomasmulmer02@gmail.com" "Thanks, Thomas Ulmer"))) (require 'smtpmail) (setq message-send-mail-function 'smtpmail-send-it) (setq smtpmail-default-smtp-server "smtp.gmail.com" smtpmail-smtp-server "smtp.gmail.com" smtpmail-smtp-service 587 starttls-use-gnutls t smtpmail-starttls-credentials '(("smtp.gmail.com" 587 nil nil)) smtp-auth-credentials (expand-file-name "~/.authinfo.gpg")))