Oct 26 2014
Offlineimap + Mu + Mu4e en emacs: alternativas modernas a gnus y rmail
mu4e es un moderno cliente de correo basado en el indexador/buscador de emails mu. La principal ventaja de esta herramienta es la super eficiencia a la hora de leer los correos. Entre algunas de sus funcionalidades destaca:
- Completamente basado en busquedas: no hay directorios, solo peticiones.
- Documentacion completa con ejemplos de configuracion.
- La interfaz de usuario esta optimizada para velocidad con keybindings cortos para acciones.
- Es asincrono, por lo que las acciones no bloquean emacs.
- Soporte criptografico
- Se emplea el texto enriquecido a la hora de escribir emails mediante org-mode
- Permite el auto-completado basado en los mensajes previos.
- Es extensible.
Pasos para la instalacion:
Primero debemos descargar el codigo o bien de la web https://code.google.com/p/mu0/downloads/list o bien directamente del repositorio git:
$ git clone https://github.com/djcb/mu.git $ cd mu
Instalamos otros paquetes necesarios para la compilacion de mu4e o su uso:
$ sudo apt-get install libgmime-2.6-dev libxapian-dev gnutls-bin guile-2.0-dev html2text xdg-utils
Instalamos offlineimap y sqlite:
$ sudo apt-get install offlineimap sqlite
Configuramos, compilamos e instalamos mu (tambien se puede instalar por ejemplo desde los repositorios de debian con apt):
$ autoreconf -i $ ./configure $ make $ sudo make install
Configuramos offlineimap para que pueda acceder a emails de gmail, creamos un fichero llamado .offlineimaprc en nuestro directorio de usuario:
[general] # List of accounts to be synced, separated by a comma. accounts = Gmail maxsyncaccounts = 3 [Account Gmail] # Identifier for the local repository; e.g. the maildir to be synced via IMAP. localrepository = Gmail-local # Identifier for the remote repository; i.e. the actual IMAP, usually non-local. remoterepository = Gmail-remote # Status cache. Default is plain, which eventually becomes huge and slow. status_backend = sqlite [Repository Gmail-local] type = Maildir localfolders = ~/Maildir [Repository Gmail-remote] type = IMAP remotehost = imap.gmail.com remoteuser = <TU_EMAIL@gmail.com> remotepass = <TU_PASSWORD> ssl = yes maxconnections = 1 realdelete = no folderfilter = lambda foldername: foldername in ['INBOX', 'Dev'] # Necessary as of OfflineIMAP 6.5.4 sslcacertfile = /etc/ssl/certs/ca-certificates.crt
Checkeamos que podamos acceder a nuestro email mediante mu:
$ mu index
o bien podemos probar lanzando
$ offlineimap
El output que debemos ver es algo asi.
Ahora anadimos las siguientes lineas de configuracion a nuestro .emacs:
;;---------------------------------------------------------- ;; ---- BEGIN Email client ---- ;;---------------------------------------------------------- (add-to-list 'load-path "/usr/local/share/emacs/site-lisp/mu4e") (require 'mu4e) ;; Maildir (setq mu4e-maildir "~/Maildir") (setq mu4e-drafts-folder "/[Gmail].Drafts") (setq mu4e-sent-folder "/[Gmail].Sent Mail") (setq mu4e-trash-folder "/[Gmail].Trash") ;; Don't save message to Sent Messages, Gmail/IMAP takes care of this (setq mu4e-sent-messages-behavior 'delete) ;; Setup some handy shortcuts ;; you can quickly switch to your Inbox -- press ``ji'' ;; then, when you want archive some messages, move them to ;; the 'All Mail' folder by pressing ``ma''. (setq mu4e-maildir-shortcuts '( ("/INBOX" . ?i) ("/[Gmail].Sent Mail" . ?s) ("/[Gmail].Trash" . ?t) ("/[Gmail].All Mail" . ?a))) ;; Allow for updating mail using 'U' in the main view: (setq mu4e-get-mail-command "offlineimap") ;; Something about ourselves (setq user-mail-address "your_email@gmail.com" user-full-name "nickname (Your Name Here)" message-signature (concat "nickname (Your name here)\n" "Email: your_email@gmail.com\n" "Blog: your_blog.org\n" "Douban: your_website.com" "\n")) (require 'smtpmail) ;; For emacs-24 you can use: (setq message-send-mail-function 'smtpmail-send-it smtpmail-stream-type 'starttls smtpmail-default-smtp-server "smtp.gmail.com" smtpmail-smtp-server "smtp.gmail.com" smtpmail-smtp-service 587) ;; Don't keep message buffers around (setq message-kill-buffer-on-exit t) ;; Attaching files with M-x dired and then C-c <RET> C-a (require 'gnus-dired) ;; make the `gnus-dired-mail-buffers' function also work on ;; message-mode derived modes, such as mu4e-compose-mode (defun gnus-dired-mail-buffers () "Return a list of active message buffers." (let (buffers) (save-current-buffer (dolist (buffer (buffer-list t)) (set-buffer buffer) (when (and (derived-mode-p 'message-mode) (null message-sent-message-via)) (push (buffer-name buffer) buffers)))) (nreverse buffers))) (setq gnus-dired-mail-mode 'mu4e-user-agent) (add-hook 'dired-mode-hook 'turn-on-gnus-dired-mode) ;; Viewing inline images (setq mu4e-view-show-images t) ;; Use imagemagick, if available (when (fboundp 'imagemagick-register-types) (imagemagick-register-types))
Checkeamos que podemos acceder a nuestro email mediante mu4e en emacs:
Al pulsar la «U» vemos que se esta actualizando el email. Podemos tambien cargar un speedbar con M-x speedbar
Lectura de emails mediante «j i» para el jump inbox. Para escribir emails simplemente pulsamos «C» de compose y para enviarlos «C-c C-c»
Referencias:
http://wenshanren.org/?p=111
http://www.emacswiki.org/
http://www.djcbsoftware.nl/
https://github.com/djcb/mu/
http://www.djcbsoftware.nl/
http://www.djcbsoftware.nl/
http://emacs-fu.blogspot.fi/
http://zmalltalker.com/linux/
http://www.djcbsoftware.nl/
http://www.djcbsoftware.nl/
http://www.djcbsoftware.nl/
http://www.djcbsoftware.nl/
http://www.djcbsoftware.nl/
http://www.emacswiki.org/