emacs, lisp, software libre

Gmail desde Emacs Gnus

Recientemente he configurado mi emacs para poder leer el correo de gmail. Básicamente es lo que viene en http://www.emacswiki.org/emacs/GnusGmail. Pero en este artículo trataré de explicarlo paso a paso y en castellano.

Gnus viene instalado con emacs, que en ubuntu 11.04 se instala de la siguiente forma:
sudo apt-get install emacs23

La configuración del .emacs para descargar correo es

;; GNUS ;;

(setq gnus-select-method '(nnimap "gmail"
(nnimap-address "imap.gmail.com")
(nnimap-server-port 993)
(nnimap-stream ssl)))

(add-hook 'gnus-group-mode-hook 'gnus-topic-mode)

;; Threads are nice!
(setq gnus-summary-thread-gathering-function
'gnus-gather-threads-by-subject)

Aparte en .authinfo es necesario meter la siguiente línea:
machine imap.gmail.com login correo@gmail.com password mipassword port 993

Ahora ya deberíamos poder descargar correo en emacs con M-x gnus. Lo primero que deberemos hacer es suscribirnos a algún grupo con la letra U. Una vez suscrito pulsamos enter en el grupo y ya podemos acceder.

Lo siguiente es poder enviar correo si usamos el smtp de gmail nuestros correos quedarán almacenados en el servidor automáticamente. La configuración es la siguiente:


;; SMTP ;;

(setq message-send-mail-function 'smtpmail-send-it
smtpmail-starttls-credentials '(("smtp.gmail.com" 587 nil nil))
smtpmail-auth-credentials '(("smtp.gmail.com" 587 "correo@gmail.com" nil))
smtpmail-default-smtp-server "smtp.gmail.com"
smtpmail-smtp-server "smtp.gmail.com"
smtpmail-smtp-service 587
smtpmail-local-domain "ubuntu")

(setq user-full-name "David Arroyo Menéndez")
(setq user-mail-address "correo@gmail.com")

No obstante, primero deberemos instalar starttls, en debian/ubuntu apt-get install gnutls-bin

Otra funcionalidad que considero vital es que autocomplete la dirección de correo electrónico. Para ello es necesario 2 modos de emacs: bbdb + google-contacts y algo de software python + gdata. En debian/ubuntu podemos hacer apt-get install python-gdata bbdb y ya solo nos faltará descargar y descomprimir en tu directorio emacs el proyecto googlecontacts.

Mi configuración en el .emacs de bbdb y google-contacts es la siguiente:


;;;; BBDB ;;;;

(setq bbdb-default-country "Spain"
bbdb-north-american-phone-numbers-p nil
bbdb-default-area-code "91"
bbdb-quiet-about-name-mismatches t
bbdb-file "~/.bbdb")

(require 'bbdb)
(bbdb-initialize)
(add-hook 'gnus-startup-hook 'bbdb-insinuate-gnus)
(add-hook 'gnus-startup-hook 'bbdb-insinuate-message)
(add-hook 'message-setup-hook 'bbdb-define-all-aliases)

;;;; Google Contacts ;;;;

(setq load-path (append load-path (list (expand-file-name "~/emacs/google"))))
(require 'google-contacts)

(setq google-contacts-user "davidam") ;;; GOOGLE USER
(setq google-contacts-code-directory "~/emacs/google/code") ;;; PATH TO THE PYTHON CODE
(setq google-contacts-directory "/tmp") ;;; TEMPORARY DIRECTORY
(setq google-contacts-auto-update t ) ;;; DEFINE IF THE CONTACTS ARE DOWNLOADED AFTER EVERY MODIFICATION

Y así automáticamente podemos autocompletar con TAB al escribir un correo desde GNUS.

Actualización (29/09/2011): Al hilo de este artículo he publicado cómo utilizar Múltiples cuentas de smtp en GNUS con msmtp

Actualización (21/10/2011): Otro artículo relacionado: Gnus + Gmail + Offlineimap y así poder leer correo de gmail en gnus también cuando se está desconectado.

Estándar

7 thoughts on “Gmail desde Emacs Gnus

  1. Pingback: Múltiples cuentas de smtp en GNUS con msmtp « Blog de David Arroyo Menéndez

  2. Pingback: Gnus + Gmail + Offlineimap « Blog de David Arroyo Menéndez

  3. Hola, disculpa ya hice todo el proceso y funciono lo de enviar, pero el problema es que no se como leerlo, cuando dices que cree el grupo de noticas, como hago para que en ese grupo llegue mi correo, no me sirve nada, no hayo como leerlo :(

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s