summaryrefslogtreecommitdiff
path: root/.emacs.d/snippets/email-module.el
blob: 494bd7be60daaf8a2edc6e364c580d4618a43e98 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68


(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"
	  "[email protected]" "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