about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--init.el1
-rw-r--r--init/mail.el45
-rw-r--r--init/settings.el1
3 files changed, 46 insertions, 1 deletions
diff --git a/init.el b/init.el
index aedee7b5dd5e..5cbf5cd92fad 100644
--- a/init.el
+++ b/init.el
@@ -37,6 +37,7 @@
                    haskell-setup
                    rust-setup
                    lisp-setup
+                   mail-setup
                    )))
 
 (add-hook 'after-init-hook 'load-other-settings)
diff --git a/init/mail.el b/init/mail.el
new file mode 100644
index 000000000000..0d5fdc45374f
--- /dev/null
+++ b/init/mail.el
@@ -0,0 +1,45 @@
+(require 'notmuch)
+
+(global-set-key (kbd "C-c m") 'notmuch-hello)
+(global-set-key (kbd "C-c C-e n") 'notmuch-mua-new-mail)
+
+(setq notmuch-cache-dir "~/.cache/notmuch")
+(make-directory notmuch-cache-dir t)
+
+;; Mark things as read when archiving them:
+(setq notmuch-archive-tags '("-inbox" "-unread" "+archive"))
+
+;; Cache addresses for completion:
+(setq notmuch-address-save-filename (concat notmuch-cache-dir "/addresses"))
+
+;; Don't spam my home folder with drafts:
+(setq notmuch-draft-folder notmuch-cache-dir)
+
+;; Show me saved searches that I care about:
+(setq notmuch-saved-searches
+      '((:name "inbox" :query "tag:inbox" :key "i")
+        (:name "gitlab" :query "tag:gitlab" :key "g")
+        (:name "sent" :query "tag:sent" :key "t")
+        (:name "drafts" :query "tag:draft" :key "d")))
+(setq notmuch-show-empty-saved-searches t)
+
+;; Mail sending configuration
+(setq notmuch-always-prompt-for-sender t)
+(setq notmuch-mua-user-agent-function
+      (lambda () (format "Emacs %s; notmuch.el %s" emacs-version notmuch-emacs-version)))
+
+;; Ensure sender is correctly passed to msmtp
+(setq mail-specify-envelope-from t
+      message-sendmail-envelope-from 'header
+      mail-envelope-from 'header)
+
+;; Store sent mail in the correct folder per account
+(setq notmuch-maildir-use-notmuch-insert nil)
+(setq notmuch-fcc-dirs '(("mail@tazj.in" . "tazjin/Sent")
+                         ;; Not a mistake, Office365 apparently
+                         ;; renames IMAP folders (!) to your local
+                         ;; language instead of providing translations
+                         ;; in the UI m(
+                         ("vincent@aprila.no" . "aprila/Sende element")))
+
+(provide 'mail-setup)
diff --git a/init/settings.el b/init/settings.el
index d445765d4e1d..00ede17e91fe 100644
--- a/init/settings.el
+++ b/init/settings.el
@@ -1,5 +1,4 @@
 (require 'uniquify)
-(require 'notmuch)
 
 ;; Make ivy go!
 (ivy-mode 1)