(when (equal system-type 'darwin) (use-package mu4e :load-path "/opt/homebrew/share/emacs/site-lisp/mu/mu4e/")) (require 'mu4e) (setq mu4e-update-interval (* 10 60)) (setq mu4e-get-mail-command "mbsync -a") (setq mu4e-maildir-list "~/Mail/Inbox") (defun set-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'`smtpmail-smpt-server' is set to MAIL-ADDRESS FULL-NAME SIGNATURE and SERVER 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 :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-service . ,465) (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 '(("/Fastmail/Inbox" . ?i) ("/Fastmail/Sent" . ?s) ;; ("/Gmail/Trash" . ?t) ;; ("/Gmail/Drafts" . ?d) ;; ("/Gmail/[Gmail]/All Mail" . ?a )) (setq mu4e-contexts `(, (set-mu4e-context "Fastmail" "Thanos Apollo" "thanos@thanosapollo.com" "Thanos\nhttps://thanosapollo.com/public" "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 smtpmail-stream-type 'ssl) (provide 'email-module) ;;; email-module.el ends here