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
|
(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
|