summaryrefslogtreecommitdiff
path: root/.emacs.d/snippets/email-module.el
blob: bb5559f43ec8956947359fa6c57886e5de94f953 (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
(require 'mu4e)

(setq mu4e-update-interval (* 10 60))
(setq mu4e-get-mail-command "mbsync -a")
(setq mu4e-maildir-list "~/Mail/Inbox")
;; assumed Maildir layout
  ;; ~/Maildir/Account0/{Inbox,Sent,Trash}
  ;; ~/Maildir/Account1/{Inbox,Sent,Trash}
  ;; where Account0 is context name
  (defun my-make-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' is set to MAIL-ADDRESS
  FULL-NAME and SIGNATURE 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
       ;; this matches maildir /Arkham and its sub-directories
       :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-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
      '(("/Gmail/Inbox"             . ?i)
        ("/Fastmail/Inbox" . ?s)
        ;; ("/Gmail/Trash"     . ?t)
        ;; ("/Gmail/Drafts"    . ?d)
        ;; ("/Gmail/[Gmail]/All Mail"  . ?a
	 ))

(setq mu4e-contexts
      `(,(my-make-mu4e-context
  	  "Gmail" "Thanos Apollo"
  	  "[email protected]" "Thanos\n https://thanosapollo.co"
	  "smtp.gmail.com")
	,(my-make-mu4e-context
	  "Fastmail" "Thanos Apollo"
	  "[email protected]" "Thanos"
	  "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)