(require 'mu4e) (setq mu4e-update-interval (* 10 60)) (setq mu4e-get-mail-command "mbsync -a") (setq mu4e-maildir-list "~/Mail/Inbox") ;; 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 server) "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-trash-folder . ,(concat dir-name "/Starred")) (mu4e-refile-folder . ,(concat dir-name "/Archive")) (smtpmail-smtp-server . , server) (mu4e-compose-signature . ,signature))))) ;;Fixing duplicate UID errors when using mbsync and mu4e (setq mu4e-change-filenames-when-moving t) (setq mu4e-maildir-shortcuts '(("/Gmail/Inbox" . ?i) ("/Fastmail/Inbox" . ?s) ;; ("/Gmail/Trash" . ?t) ;; ("/Gmail/Drafts" . ?d) ;; ("/Gmail/[Gmail]/All Mail" . ?a )) (setq mu4e-contexts `(,(my-make-mu4e-context "Gmail" "Thanos Apollo" "apollothanosmd@gmail.com" "Thanos\n https://thanosapollo.co" "smtp.gmail.com") ,(my-make-mu4e-context "Fastmail" "Thanos Apollo" "thanos@thanosapollo.com" "Thanos" "smtp.fastmail.com"))) (setq smtpmail-smtp-service 465 smtpmail-stream-type 'ssl smtpmail-smtp-server "smtp.fastmail.com") (setq message-send-mail-function 'smtpmail-send-it)