Escribir un correo electrónico
Sí, desde Emacs también se pueden escribir ─y enviar─ correos electrónicos. Y esto te puede venir bien en cualquier momento como me ha sucedido a mí estos días que he estado fuera de casa. Lo que sucedió es que estaba en un lugar donde las conexiones no eran muy buenas... y torpe de mí, me dio por actualizar el ordenador creyendo que contaba con 4G. Sin embargo, algo debió ir mal en la actualización, o quizá tampoco fuera culpa de la conexión, el caso es que el programa que suelo utilizar para el correo electrónico, Thunderbird, dejó de funcionar.
El caso es que tenía que enviar un correo electrónico urgentemente,
por cuestiones de trabajo. Y no había posibilidad de enviarlo por el
método normal. El artículo de hoy va de uno de los paquetes que vienen
instalados por defecto con nuestro querido Emacs: gnus
. Un paquete
que al ver su descripción parece destinado tan sólo para leer news y
listas de correo, pero que también sirve para enviar correos.
Configuración mínima
La configuración que necesitas apenas son cuatro líneas de nuestro
fichero init.el
:
(setq send-mail-function 'smtpmail-send-it) (setq smtpmail-smtp-user "usuario@servidor.com") (setq smtpmail-smtp-server "smtp.servidor.com") (setq smtpmail-smtp-service 587)
Los nombres de las variables son suficientemente descriptivos.
Comprueba esos datos en tu servidor de corro, es posible que tu
proveedor utilice otro puerto y deberás poner el que corresponda en
smtpmail-smtp-service
para que funcione.
Una vez que hayas recargado el fichero init.el
con la información de
la configuración smtpmail
, ya se podrán enviar mensajes. Emacs
envía los mensajes utilizando el programa sendmail
por defecto,
aunque se pueden configurar otras herramientas. En mi caso, como lo
que utilizo es sendmail
no he tenido que configurar nada más.
También es posible leer el correo con gnus
configurando la variable:
(setq read-mail-command 'gnus)
Pero no vamos a entrar en eso de momento, nos conformamos con poder enviar un correo ante unas prisas. Haz pruebas y envía un par de correos de prueba a alguna cuenta propia. El procedimiento es el siguiente:
- Lanza
gnus
conM-x gnus
. Cuando aparezca el buffer de
gnus
pulsam
para escribir un nuevo mail. Aparecerá un buffer con el siguiente texto (o similar):To: Subject: From: Usuario <usuario@servidor.com> Gcc: nnfolder+archive:sent.2020-01 --text follows this line--
- En la línea
To:
escribe la dirección de correo a la que quieras enviar el mensaje. - En la línea
Subject:
escribe el asunto. - Debajo de la línea
--text follows this line--
escribe el contenido del mensaje. - Añade algún adjunto con
C-c C-a
. - Para enviarlo pulsa
C-c C-c
.
Todas esas acciones son accesibles también desde la barra de botones
que tiene gnus
para hacerlo.
Desde línea de comandos
¿Qué ocurre si tengo que enviar un correo electrónico y tampoco tengo Emacs para salir del apuro?
Si ese es el caso, es posible que tu sistema GNU/Linux tenga
instalado el paquete mailx
. En ese caso puedes utilizar el comando:
mailx -v -s "Esto es un correo de prueba" \ -S smtp="smtp.servidor.com:587" \ -S smtp-use-starttls \ -S smtp-auth=login \ -S smtp-auth-user="usuario@servidor.com" \ -S smtp-auth-password="la-contraseña-que-sea" \ -S ssl-verify=ignore \ -r "Fulanito <usuario@servidor.com>" \ -a ~/fichero.pdf \ correo@al-que-enviar.com < mensaje.txt
Lo he puesto en distintas líneas para que se aprecien las distintas
opciones. En ese caso se puede apreciar que en la última línea se
añade < mensaje.txt
que implica que el texto del mensaje lo hemos
escrito en ese fichero y volcamos su contenido al mailx
. Entenderlo
creo que es sencillo. Las opciones -S
establecen diferentes
variables, como el usuario y el password. La opción -r
establece
quién es el remitente y su correo, tal y como aparecerá en el
mensaje. La opción -s
establece el asunto del mensaje. La opción
-a
permite añadir adjuntos. Si no se carga con una pipeline el
contenido del mensaje, mailx
permite que lo escribamos de forma
interactiva; al pulsar C-d
termina la edición y envía el mensaje.
Conclusión
Se pueden enviar correos de muchas maneras: nuestro Emacs resulta una de ellas, pero no la única y nunca sabes cuándo vas a necesitar enviar un mensaje sin tener las herramientas gráficas más cómodas.