diff options
| author | Ravi R Kiran <aine.marina@gmail.com> | 2016-06-16 01:52:06 (GMT) |
|---|---|---|
| committer | Ravi R Kiran <aine.marina@gmail.com> | 2016-06-16 01:52:06 (GMT) |
| commit | ac1994b920ebfafc323fcf3d2855142a94d43e6a (patch) | |
| tree | d0b3c54512dd93242d9c37c31d0d6c8743f0c284 /lisp/ravi-init-mu.el | |
| parent | 6ca2d39f02644f85d47384c7938552129e147648 (diff) | |
| download | dotemacs-ac1994b920ebfafc323fcf3d2855142a94d43e6a.zip dotemacs-ac1994b920ebfafc323fcf3d2855142a94d43e6a.tar.gz dotemacs-ac1994b920ebfafc323fcf3d2855142a94d43e6a.tar.bz2 | |
Use mu4e contexts and fix smtp port
Diffstat (limited to 'lisp/ravi-init-mu.el')
| -rw-r--r-- | lisp/ravi-init-mu.el | 74 |
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)) |
