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