summaryrefslogtreecommitdiff
path: root/email.el
diff options
context:
space:
mode:
authorrekado <rekado@elephly.net>2014-09-15 12:35:06 +0200
committerrekado <rekado@elephly.net>2014-09-15 12:35:06 +0200
commitc5bcfe28ad0824848ac649a9cea445c1ab54a98a (patch)
treed5cb1bb1d8690129d07e88e84da99d8d5b886b48 /email.el
parent827e10b360f8aada438b2941270a945e80bcd07c (diff)
add mail account switcher function
Diffstat (limited to 'email.el')
-rw-r--r--email.el22
1 files changed, 22 insertions, 0 deletions
diff --git a/email.el b/email.el
index 9a9d594..2f7efad 100644
--- a/email.el
+++ b/email.el
@@ -7,6 +7,28 @@
(setq mu4e-html2text-command "html2text -utf8 -width 72")
(setq mu4e-view-show-images t)
+(defvar my-mu4e-account-alist '())
+
+(defun my-mu4e-set-account ()
+ "Set the account for composing a message."
+ (let* ((account
+ (if mu4e-compose-parent-message
+ (let ((maildir (mu4e-message-field mu4e-compose-parent-message :maildir)))
+ (string-match "/\\(.*?\\)/" maildir)
+ (match-string 1 maildir))
+ (completing-read (format "Compose with account: (%s) "
+ (mapconcat #'(lambda (var) (car var))
+ my-mu4e-account-alist "/"))
+ (mapcar #'(lambda (var) (car var)) my-mu4e-account-alist)
+ nil t nil nil (caar my-mu4e-account-alist))))
+ (account-vars (cdr (assoc account my-mu4e-account-alist))))
+ (if account-vars
+ (mapc #'(lambda (var)
+ (set (car var) (cadr var)))
+ account-vars)
+ (error "No email account found"))))
+
+(add-hook 'mu4e-compose-pre-hook 'my-mu4e-set-account)
; set up email sending with msmtp
(setq mail-specify-envelope-from t)