1(require 'mu4e) 2 3(setq mu4e-get-mail-command "mbsync -a") 4 5(setq sendmail-program "msmtp") 6(setq message-sendmail-f-is-evil t) 7(setq message-sendmail-extra-arguments '("--read-envelope-from")) 8(setq message-send-mail-function 'message-send-mail-with-sendmail) 9 10(let ((full-name "Ryan Gibb") 11 (signature "Ryan Gibb")) 12 (setq mu4e-contexts 13 `(, 14 (let ((mail-address "ryan@freumh.org") 15 (dir-name (concat "/ryan@freumh.org"))) 16 (make-mu4e-context 17 :name (concat "1 " mail-address) 18 :match-func 19 `(lambda (msg) 20 (when msg 21 (string-match-p 22 ,(concat "^" dir-name) 23 (mu4e-message-field msg :maildir)))) 24 :vars 25 `((user-mail-address . ,mail-address) 26 (user-full-name . ,full-name) 27 (mu4e-sent-folder . ,(concat dir-name "/Sent")) 28 (mu4e-drafts-folder . ,(concat dir-name "/Drafts")) 29 (mu4e-trash-folder . ,(concat dir-name "/Trash")) 30 (mu4e-refile-folder . ,(concat dir-name "/Archive")) 31 (mu4e-compose-signature . ,signature) 32 (mu4e-maildir-shortcuts . 33 ,'((:maildir "/ryan@freumh.org/Inbox" :key ?i) 34 (:maildir "/ryan@freumh.org/Sent" :key ?s) 35 (:maildir "/ryan@freumh.org/Drafts" :key ?d) 36 (:maildir "/ryan@freumh.org/Archive" :key ?a) 37 (:maildir "/ryan@freumh.org/Trash" :key ?t))) 38 ))) 39 ,(let ((mail-address "ryangibb321@gmail.com") 40 (dir-name (concat "/ryangibb321@gmail.com"))) 41 (make-mu4e-context 42 :name (concat "2 " mail-address) 43 :match-func 44 `(lambda (msg) 45 (when msg 46 (string-match-p 47 ,(concat "^" dir-name) 48 (mu4e-message-field msg :maildir)))) 49 :vars 50 `((user-mail-address . ,mail-address) 51 (user-full-name . ,full-name) 52 (mu4e-sent-folder . ,(concat dir-name "/[Gmail]/Sent Mail")) 53 (mu4e-drafts-folder . ,(concat dir-name "/[Gmail]/Drafts")) 54 (mu4e-trash-folder . ,(concat dir-name "/[Gmail]/Bin")) 55 (mu4e-refile-folder . ,(concat dir-name "/[Gmail]/All Mail")) 56 (mu4e-compose-signature . ,signature) 57 (mu4e-maildir-shortcuts . 58 ,'((:maildir "/ryangibb321@gmail.com/Inbox" :key ?i) 59 (:maildir "/ryangibb321@gmail.com/[Gmail]/Sent Mail" :key ?s) 60 (:maildir "/ryangibb321@gmail.com/[Gmail]/Drafts" :key ?d) 61 (:maildir "/ryangibb321@gmail.com/[Gmail]/All Mail" :key ?a) 62 (:maildir "/ryangibb321@gmail.com/[Gmail]/Spam" :key ?x) 63 (:maildir "/ryangibb321@gmail.com/[Gmail]/Bin" :key ?t))) 64 ))) 65 ,(let ((mail-address "ryan.gibb@cl.cam.ac.uk") 66 (dir-name (concat "/ryan.gibb@cl.cam.ac.uk"))) 67 (make-mu4e-context 68 :name (concat "3 " mail-address) 69 :match-func 70 `(lambda (msg) 71 (when msg 72 (string-match-p 73 ,(concat "^" dir-name) 74 (mu4e-message-field msg :maildir)))) 75 :vars 76 `((user-mail-address . ,mail-address) 77 (user-full-name . ,full-name) 78 (mu4e-sent-folder . ,(concat dir-name "/Sent")) 79 (mu4e-drafts-folder . ,(concat dir-name "/Drafts")) 80 (mu4e-trash-folder . ,(concat dir-name "/Trash")) 81 (mu4e-refile-folder . ,(concat dir-name "/Archive")) 82 (mu4e-compose-signature . ,signature) 83 (mu4e-maildir-shortcuts . 84 ,'((:maildir "/ryan.gibb@cl.cam.ac.uk/Inbox" :key ?i) 85 (:maildir "/ryan.gibb@cl.cam.ac.uk/Sent" :key ?s) 86 (:maildir "/ryan.gibb@cl.cam.ac.uk/Drafts" :key ?d) 87 (:maildir "/ryan.gibb@cl.cam.ac.uk/Archive" :key ?a) 88 (:maildir "/ryan.gibb@cl.cam.ac.uk/Spam" :key ?x) 89 (:maildir "/ryan.gibb@cl.cam.ac.uk/Trash" :key ?t))) 90 ))) 91 ,(let ((mail-address "misc@freumh.org") 92 (dir-name (concat "/misc@freumh.org"))) 93 (make-mu4e-context 94 :name (concat "4 " mail-address) 95 :match-func 96 `(lambda (msg) 97 (when msg 98 (string-match-p 99 ,(concat "^" dir-name) 100 (mu4e-message-field msg :maildir)))) 101 :vars 102 `((user-mail-address . ,mail-address) 103 (user-full-name . ,full-name) 104 (mu4e-sent-folder . ,(concat dir-name "/Sent")) 105 (mu4e-drafts-folder . ,(concat dir-name "/Drafts")) 106 (mu4e-trash-folder . ,(concat dir-name "/Trash")) 107 (mu4e-refile-folder . ,(concat dir-name "/Archive")) 108 (mu4e-compose-signature . ,signature) 109 (mu4e-maildir-shortcuts . 110 ,'((:maildir "/misc@freumh.org/Inbox" :key ?i) 111 (:maildir "/misc@freumh.org/Sent" :key ?s) 112 (:maildir "/misc@freumh.org/Drafts" :key ?d) 113 (:maildir "/misc@freumh.org/Archive" :key ?a) 114 (:maildir "/misc@freumh.org/Trash" :key ?t))) 115 ))) 116 117 ))) 118 119(setq mu4e-context-policy 'pick-first) 120 121; Fixing duplicate UID errors when using mbsync and mu4e 122(setq mu4e-change-filenames-when-moving t) 123 124; (setq mu4e-use-fancy-chars t) 125; (setq mu4e-attachment-dir "~/download") 126(setq mu4e-view-show-images t) 127 128(setq mu4e-bookmarks 129 '((:name "Unified Inbox" 130 :query "maildir:/ryan@freumh.org/Inbox OR maildir:/ryangibb321@gmail.com/Inbox OR maildir:/ryan.gibb@cl.cam.ac.uk/Inbox" 131 :favorite t 132 :key ?i) 133 (:name "Unread messages" 134 :query "flag:unread AND NOT flag:trashed AND NOT maildir:\"/ryangibb321@gmail.com/[Gmail]/All Mail\"" 135 :key ?u) 136 (:name "Today's messages" 137 :query "date:today..now" 138 :key ?t) 139 (:name "Last 7 days" 140 :query "date:7d..now" 141 :hide-unread t 142 :key ?w) 143 (:name "Messages with images" 144 :query "mime:image/*" 145 :key ?p))) 146 147(setq mu4e-headers-fields 148 '((:maildir . 40) 149 (:human-date . 12) 150 (:flags . 6) 151 (:mailing-list . 10) 152 (:from-or-to . 22) 153 (:thread-subject . nil))) 154 155(setq mu4e-search-show-threads nil) 156 157; (with-eval-after-load "mm-decode" 158; (add-to-list 'mm-discouraged-alternatives "text/html") 159; (add-to-list 'mm-discouraged-alternatives "text/richtext")) 160(setq shr-color-visible-luminance-min 80) 161 162(setq mail-user-agent 'mu4e-user-agent) 163(setq message-dont-reply-to-names 'mu4e-personal-or-alternative-address-p) 164 165(setq mu4e-search-include-related nil) 166 167(evil-collection-define-key 'normal 'mu4e-main-mode-map (kbd "c") 'mu4e-search-query) ; should probably upsteam 168(evil-collection-define-key 'normal 'mu4e-main-mode-map (kbd "i") 'mu4e-update-index) 169 170(setq mu4e-split-view nil) 171