From: Armaan Bhojwani Date: Tue, 15 Jun 2021 20:13:04 +0000 (-0400) Subject: Update mail setup X-Git-Url: https://git.armaanb.net/?p=config.org.git;a=commitdiff_plain;h=6117ae21d7443029d9948ac1882596fe3c479446 Update mail setup --- diff --git a/config.org b/config.org index 158b209..be4c70b 100644 --- a/config.org +++ b/config.org @@ -265,6 +265,7 @@ Define templates for lots of common structure elements. Mostly just used within ("el" . "src emacs-lisp") ("git" . "src conf :tangle ~/.gitconfig") ("gp" . "src conf :tangle ~/.gnupg/gpg.conf") + ("mb" . "src conf :tangle ~/.mbsyncrc") ("pi" . "src conf :tangle ~/.config/picom/picom.conf") ("sp" . "src conf :tangle ~/.spectrwm.conf") ("tm" . "src conf :tangle ~/.tmux.conf") @@ -316,13 +317,59 @@ Use elfeed for reading RSS. I have another file with all the feeds in it that I' :bind (:map elfeed-search-mode-map ("C-c C-o" . 'elfeed-show-visit))) #+end_src ** Email -Use mu4e for reading emails. +Use mu4e and mbsync for reading emails. + Contexts are a not very well known feature of mu4e that makes it super easy to manage multiple accounts. Much better than some of the hacky methods and external packages that I've seen. -*** TODO Switch to mbsync -=offlineimap= really crappy (slow and requires python2), and I need to replace it with =mbsync=. -*** TODO Include mbsync/offlineimap config -*** TODO Split up and document this config a bit -*** Setup +*** mbsync +**** General +#+begin_src conf :tangle ~/.mbsyncrc + Create Near + Expunge Both + SyncState * +#+end_src +**** Personal +#+begin_src conf :tangle ~/.mbsyncrc + IMAPStore personal-remote + Host imap.mailbox.org + User me@armaanb.net + PassCmd "pash show login.mailbox.org/me@armaanb.net | head -n 1" + + MaildirStore personal-local + Path ~/mail/personal/ + Inbox ~/mail/personal/Inbox + Subfolders Verbatim + + Channel personal-channel + Far :personal-remote: + Near :personal-local: + Patterns "INBOX*" "Drafts" "Archive" "Sent" "Trash" + + Group personal + Channel personal-channel +#+end_src +**** School +#+begin_src conf :tangle ~/.mbsyncrc + IMAPStore school-remote + SSLType IMAPS + Host imap.gmail.com + User abhojwani22@nobles.edu + PassCmd "pash show gmail-otp/abhojwani22@nobles.edu | head -n 1" + + MaildirStore school-local + Path ~/mail/school/ + Inbox ~/mail/school/Inbox + Subfolders Verbatim + + Channel school-channel + Far :school-remote: + Near :school-local: + Patterns * ![Gmail]* "[Gmail]/Sent Mail" "[Gmail]/All Mail" + + Group school + Channel school-channel +#+end_src +*** mu4e +**** Setup #+begin_src emacs-lisp (use-package smtpmail :straight (:type built-in)) @@ -336,7 +383,7 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m smtpmail-stream-type 'ssl smtpmail-smtp-service '465 mu4e-change-filenames-when-moving t - mu4e-get-mail-command "offlineimap -q" + mu4e-get-mail-command "mbsync -a" message-citation-line-format "On %a %d %b %Y at %R, %f wrote:\n" message-citation-line-function 'message-insert-formatted-citation-line mu4e-completing-read-function 'ivy-completing-read @@ -378,13 +425,13 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m (smtpmail-smtp-server . "smtp.mailbox.org"))))) (add-to-list 'mu4e-bookmarks '(:name "Unified inbox" - :query "maildir:\"/personal/INBOX\" or maildir:\"/school/INBOX\"" + :query "maildir:\"/personal/Inbox\" or maildir:\"/school/Inbox\"" :key ?b)) :hook ((mu4e-compose-mode . flyspell-mode) (message-send-hook . (lambda () (unless (yes-or-no-p "Ya sure 'bout that?") (signal 'quit nil)))))) #+end_src -*** Discourage Gnus from displaying HTML emails +**** Discourage Gnus from displaying HTML emails #+begin_src emacs-lisp (with-eval-after-load "mm-decode" (add-to-list 'mm-discouraged-alternatives "text/html")