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/









