summaryrefslogtreecommitdiff
path: root/emacs/site-lisp/my-mail.el
blob: bcda232e473a4e2b90d1ef97510bbab38c3c4ec8 (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
(use-package mu4e
  :ensure nil
  :demand nil
  :init
  ;; 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)
    "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-refile-folder   . ,(concat dir-name "/archive"))
         (mu4e-compose-signature . ,signature)))))
  :custom
  (mu4e-change-filenames-when-moving t)
  (mu4e-get-mail-command "mbsync --all")
  :config
  ;;Fixing duplicate UID errors when using mbsync and mu4e
  (setq mu4e-contexts
        `(,(my/make-mu4e-context
  	    "thomasmulmer02" "Thomas Ulmer"
  	    "thomasmulmer02@gmail.com" "Thanks,
Thomas Ulmer")))
  
  (require 'smtpmail)
  (setq message-send-mail-function 'smtpmail-send-it)
  (setq smtpmail-default-smtp-server "smtp.gmail.com"
	smtpmail-smtp-server "smtp.gmail.com"
	smtpmail-smtp-service 587
	starttls-use-gnutls t
	smtpmail-starttls-credentials '(("smtp.gmail.com" 587 nil nil))
	smtp-auth-credentials (expand-file-name "~/.authinfo.gpg")))