/ lisp / backpack-email-utils.el
backpack-email-utils.el
 1  ;; -*- lexical-binding: t; -*-
 2  (cl-defmacro backpack/mu4e-easy-context
 3      (&key
 4       c-name maildir mail smtp
 5       (sent-action 'sent)
 6       (name user-full-name)
 7       (sig (format "Sent from GNU Emacs %s" emacs-version)))
 8    (let
 9        ((inbox      (concat "/" maildir "/Inbox"))
10         (sent       (concat "/" maildir "/Sent"))
11         (trash      (concat "/" maildir "/Trash"))
12         (refile     (concat "/" maildir "/Archive"))
13         (draft      (concat "/" maildir "/Drafts")))
14      `(with-eval-after-load "mu4e-context"
15         (make-mu4e-context
16  	:name ,c-name
17  	:match-func
18  	(lambda (msg)
19            (when msg
20  	    (string-match-p
21  	     (concat "^/" ,maildir "/")
22  	     (mu4e-message-field msg :maildir))))
23  	:vars '((user-mail-address		.	,mail)
24  		(user-full-name			.	,name)
25  		(mu4e-sent-folder		.	,sent)
26  		(mu4e-drafts-folder		.	,draft)
27  		(mu4e-trash-folder		.	,trash)
28  		(mu4e-refile-folder		.	,refile)
29  		(mu4e-compose-signature		.	(concat ,sig))
30  		(mu4e-sent-messages-behavior	.	,sent-action)
31  		(message-signature		.	,sig)
32  		(mu4e-maildir-shortcuts		.
33  						((,inbox	.	?i)
34  						 (,sent		.	?s)
35  						 (,trash	.	?t)
36  						 (,refile	.	?a)
37  						 (,draft	.	?d))))))))
38  
39  (provide 'backpack-email-utils)