summaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorRavi R Kiran <aine.marina@gmail.com>2016-06-16 01:52:06 (GMT)
committerRavi R Kiran <aine.marina@gmail.com>2016-06-16 01:52:06 (GMT)
commitac1994b920ebfafc323fcf3d2855142a94d43e6a (patch)
treed0b3c54512dd93242d9c37c31d0d6c8743f0c284 /lisp
parent6ca2d39f02644f85d47384c7938552129e147648 (diff)
downloaddotemacs-ac1994b920ebfafc323fcf3d2855142a94d43e6a.zip
dotemacs-ac1994b920ebfafc323fcf3d2855142a94d43e6a.tar.gz
dotemacs-ac1994b920ebfafc323fcf3d2855142a94d43e6a.tar.bz2
Use mu4e contexts and fix smtp port
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ravi-init-mu.el74
1 files changed, 20 insertions, 54 deletions
diff --git a/lisp/ravi-init-mu.el b/lisp/ravi-init-mu.el
index a16842d..b30bc7c 100644
--- a/lisp/ravi-init-mu.el
+++ b/lisp/ravi-init-mu.el
@@ -22,7 +22,7 @@
;; Set up mu4e conditionally
;; - actual account information should be in local.el
-;; - requires definitions of ravi/mu4e-account-alist
+;; - requires definition of ravi/setup-mu4e-locals
;;; Code:
@@ -31,8 +31,6 @@
(defvar ravi/use-mu-for-email nil
"Use mu for email")
-(defvar ravi/mu4e-account-alist nil
- "An alist containing account information for all accounts")
(defvar ravi/mu4e-update-interval 1800 ; 30 minutes
"Basic update interval; all other update intervals are multiples")
@@ -46,7 +44,6 @@
:init
(progn
(add-to-list 'Info-additional-directory-list (ravi/emacs-file "site-lisp/mu/mu4e"))
- (unless ravi/mu4e-account-alist (error "Email account list not found"))
(defun ravi/switch-to-mu4e ()
(interactive)
(let ((buf (or (and (boundp 'mu4e~headers-buffer-name)
@@ -67,50 +64,19 @@
(setq send-mail-function 'smtpmail-send-it)
(setq message-send-mail-function 'smtpmail-send-it)
- ;; Set up defaults from first account on the list
- ;; user-full-name
- ;; smtp-local-domain
- ;; user-mail-address
- ;; smtpmail-smtp-user
- ;; smtpmail-smtp-server
- ;; mu4e-sent-folder
- ;; mu4e-trash-folder
- ;; mu4e-refile-folder
- (let* ((account (caar ravi/mu4e-account-alist))
- (account-vars (cdr (assoc account ravi/mu4e-account-alist))))
- (if account-vars
- (mapc #'(lambda (var)
- (set (car var) (cadr var)))
- account-vars)
- (error "No email account found")))
-
- ;; Choose correct SMTP identity wisely
- (defun ravi/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))
- (if (= (length ravi/mu4e-account-alist) 1)
- (caar ravi/mu4e-account-alist)
- (completing-read (format "Compose with account: (%s) "
- (mapconcat #'(lambda (var) (car var))
- ravi/mu4e-account-alist "/"))
- (mapcar #'(lambda (var) (car var)) ravi/mu4e-account-alist)
- nil t nil nil (caar ravi/mu4e-account-alist)))))
- (account-vars (cdr (assoc account ravi/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 'ravi/mu4e-set-account)
+ ;; Set up accounts
+ (when (fboundp 'ravi/setup-mu4e-locals)
+ (ravi/setup-mu4e-locals))
(setq mu4e-compose-dont-reply-to-self t)
- (defun ravi/set-self-addresses ()
- (setq mu4e-user-mail-address-list (list user-mail-address)))
- (add-hook 'mu4e-compose-pre-hook 'ravi/set-self-addresses)
+ (setq mu4e-user-mail-address-list
+ (delq nil
+ (mapcar (lambda (context)
+ (when (mu4e-context-vars context)
+ (cdr (assq 'user-mail-address (mu4e-context-vars context)))))
+ mu4e-contexts)))
+
+ (setq smtpmail-smtp-service 587)
;; Use async method of sending email, if possible
(use-package async
@@ -131,16 +97,17 @@
;; Poll accounts only as often as necessary
(defvar ravi/mu4e-get-mail-attempts 0
"Number of attempts so far to get mail")
- (defun ravi/check-whether-to-get-mail-for-account (account-info)
- (let* ((account-interval (assq 'ravi/account-update-interval account-info))
- (account-update-interval (if account-interval (cadr account-interval) 1)))
+ (defun ravi/check-whether-to-get-mail-for-account (context)
+ (let* ((account-interval (when (mu4e-context-vars context)
+ (assq 'ravi/account-update-interval (mu4e-context-vars context))))
+ (account-update-interval (if account-interval (cdr account-interval) 1)))
(if (= (% ravi/mu4e-get-mail-attempts account-update-interval) 0)
- (concat " " (car account-info))
+ (concat " " (cdr (assq 'ravi/account-name (mu4e-context-vars context))))
"")))
(defun ravi/get-mu4e-get-mail-command ()
"Figure out arguments to mbsync"
(let ((ravi/all-channels (mapconcat 'ravi/check-whether-to-get-mail-for-account
- ravi/mu4e-account-alist "")))
+ mu4e-contexts "")))
(setq ravi/mu4e-get-mail-attempts (1+ ravi/mu4e-get-mail-attempts))
(if (= (length ravi/all-channels) 0)
"true" ;; do nothing command
@@ -148,7 +115,8 @@
)))
(add-hook 'mu4e-update-pre-hook
(lambda ()
- (setq mu4e-get-mail-command (ravi/get-mu4e-get-mail-command))))
+ (setq mu4e-get-mail-command (ravi/get-mu4e-get-mail-command))
+ (message "Get mail command: %s" mu4e-get-mail-command)))
;(message "%d: '%s'" ravi/mu4e-get-mail-attempts (ravi/get-mu4e-get-mail-command))
;; Default update command if something goes wrong
(setq mu4e-get-mail-command "mbsync -a -q -q")
@@ -170,8 +138,6 @@
(use-package mu4e-maildirs-extension
:config
(progn
- (setq mu4e-maildirs-extension-count-command-format
- (concat mu4e-mu-binary " find %s maildir:%s --fields 'i' | wc -l"))
(setq mu4e-maildirs-extension-custom-list
(-remove (lambda (f) (s-contains? "/[Gmail]" f t)) (mu4e-get-maildirs)))
(mu4e-maildirs-extension))