93 lines
3.5 KiB
EmacsLisp
93 lines
3.5 KiB
EmacsLisp
;;; +mail.el -*- lexical-binding: t; -*-
|
|
|
|
(setq +mu4e-personal-addresses '("me@maxschlueter.com"
|
|
"maxsc@fsfe.org"))
|
|
|
|
(set-email-account! "mailbox.org"
|
|
'((mu4e-sent-folder . "/mailbox.org/Sent")
|
|
(mu4e-drafts-folder . "/mailbox.org/Drafts")
|
|
(mu4e-trash-folder . "/mailbox.org/Trash")
|
|
(mu4e-refile-folder . "/mailbox.org/Archive")
|
|
(smtpmail-smtp-user . "me@maxschlueter.com")
|
|
(mu4e-maildir-shortcuts
|
|
(:maildir "/mailbox.org/Inbox" :key ?i)
|
|
(:maildir "/mailbox.org/Sent" :key ?s)
|
|
(:maildir "/mailbox.org/Drafts" :key ?d)
|
|
(:maildir "/mailbox.org/Trash" :key ?t)
|
|
(:maildir "/mailbox.org/Archive" :key ?a))
|
|
(mu4e-compose-signature . nil))
|
|
t)
|
|
|
|
(after! mu4e
|
|
;; Recommended msmtp config from doom module documentation
|
|
(setq sendmail-program (executable-find "msmtp")
|
|
send-mail-function #'smtpmail-send-it
|
|
message-sendmail-f-is-evil t
|
|
message-sendmail-extra-arguments '("--read-envelope-from")
|
|
message-send-mail-function #'message-send-mail-with-sendmail)
|
|
;; fix https://github.com/hlissner/doom-emacs/issues/3294
|
|
(setq mu4e-attachment-dir "~/Downloads")
|
|
|
|
;; Sign sent email automatically
|
|
;; (add-hook 'message-send-hook 'mml-secure-message-sign-smime)
|
|
|
|
(setq mml-secure-openpgp-encrypt-to-self t)
|
|
|
|
;; Render buttons to verify&decrypt messages
|
|
(setq mm-decrypt-option 'always
|
|
mm-verify-option 'always
|
|
gnus-buttonized-mime-types '("multipart/encrypted" "multipart/signed"))
|
|
|
|
(defun max/mu4e-view-import-attachment-calendar (msg attnum)
|
|
(let* ((att (mu4e~view-get-attach msg attnum))
|
|
(index (plist-get att :index))
|
|
(docid (mu4e-message-field msg :docid))
|
|
(mtype (plist-get att :mime-type))
|
|
(fname (plist-get att :name))
|
|
(fpath (concat (mu4e~get-attachment-dir fname mtype) "/" fname)))
|
|
(if (string= "text/calendar" mtype)
|
|
(progn (mu4e~proc-extract 'save docid index mu4e-decryption-policy fpath)
|
|
(let ((org-caldav-inbox (max/org-caldav-get-inbox)))
|
|
(org-caldav-import-ics-to-org fpath)))
|
|
(mu4e-error "Invalid mime-type for a calendar event: `%s'" mtype))))
|
|
;; XXX
|
|
(add-to-list 'mu4e-view-attachment-actions
|
|
'("cImport in calendar" . max/mu4e-view-import-attachment-calendar) t)
|
|
(add-to-list 'mu4e-bookmarks
|
|
(make-mu4e-bookmark
|
|
:name "All Inboxes"
|
|
:query "maildir:/mailbox.org/Inbox"
|
|
:key ?i)))
|
|
|
|
;; Autoload this command so that the mbsync service can update the index
|
|
(autoload #'mu4e-update-index "mu4e" nil t)
|
|
|
|
(defun max/=mu4e ()
|
|
"Start email client and view all inboxes."
|
|
(interactive)
|
|
(require 'mu4e)
|
|
(+workspace-switch +mu4e-workspace-name t)
|
|
(mu4e~start (lambda () (mu4e-headers-search (mu4e-get-bookmark-query ?i)))))
|
|
|
|
(map! "<f2>" #'max/=mu4e)
|
|
|
|
(add-to-list 'org-capture-templates `("m" "email" entry (file+headline ,(expand-file-name "newgtd/actionable.org" org-directory) "Actions")
|
|
"* NEXT Reply to [[mu4e:msgid:%:message-id][%:fromname - %:subject]] :email:\n%U\n"))
|
|
|
|
(defun max/mu4e-org-capture ()
|
|
"Invoke the email capture template for msg at point"
|
|
(interactive)
|
|
(org-capture nil "m"))
|
|
|
|
(map! :after mu4e
|
|
:map mu4e-headers-mode-map
|
|
:vne "l" #'max/mu4e-org-capture)
|
|
|
|
(use-package! jl-encrypt
|
|
:config
|
|
(setq mml-secure-insert-signature 'encrypted))
|
|
|
|
(after! mu4e-alert
|
|
(when IS-MAC
|
|
(mu4e-alert-set-default-style 'notifier)))
|