14 mar 2012

sendEmail: Enviar emails desde la línea de comandos

sendEmail es un programa, escrito en Perl, que nos permite enviar mensajes desde la línea de comandos.

sendEmail puede sernos tremendamente útil porque fue diseñado para ser usado en scripts bash, ficheros batch, programas perl y sitios web.

Además está publicado bajo licencia GPL y disponible para las siguientes plataformas: Linux, BSD, OS X, Windows 98, Windows NT, Windows 2000, y Windows XP.

Podemos instalarlo en Debian  desde los repositorios:

# apt-get install sendemail

Veamos un ejemplo en el que hacemos uso de una cuenta de gmail para enviar el correo:

# sendemail -f miusuario@gmail.com -t miusuario@gmail.com -xp mipassword -m "Informe de impresion" -s smtp.gmail.com:587 -o tls=yes -xu miusuario -u "Informe de impresion" -a /root/informe.txt

Veamos las opciones que hemos usado en el comando anterior:

-f miusuario@gmail.com nos permite indicar de dónde procede el mensaje (from)
-t miusuario@gmail.com nos permite indicar a quién va dirigido el mensa (to)

También podríamos enviar copias a otros destinatarios:

-cc otrousuario@gmail.com
-bcc otrousuariomas@gmail.com

Indicamos el password del usuario que envía el mensaje con el parámetro -xp mipassword:

-xp mipassword

Indicamos el asunto del mensaje con el parámetro -u Asunto:

-u "Informe de impresión"


Indicamos el mensaje con el parámetro -m Mensaje:

-m "Informe de impresión"


Y el servidor de correo que vamos a usar de "relay":

-s smtp.gmail.com:587

Indicamos los parámetros de autenticación:

-o tls=yes -xu miusuario

Y los archivos adjuntos:

-a /root/informe.txt


Crear metapaquetes en Debian

Un metapaquete es un paquete que tan sólo va a contener dependencias de otros paquetes, de tal forma que al instalar el metapaquete, se instalen los paquetes que hemos definido como dependencia.

Ésto puede sernos muy útil, por ejemplo, cuando queramos instalar una lista de paquetes de un plumazo. Crearíamos un metapaquete que contenga como dependencia los paquetes que queramos instalar y cuando instalemos el metapaquete se instalarán todos los demás.

En alguna ocasión he usado un metapaquete para instalar una versión más reciente de otro paquete que había en mi sistema y, que, por las restricciones que sea, no se permitía instalar.

Ejemplos de metapaquetes son el paquete gnome y kde, que instalan todo el software necesario para disponer de un entorno  gnome o un entorno kde.

Para crear nuestros metapaquetes en Debian, hacemos uso de una herramienta llamada equivs.

Como esta herramienta se encuentra disponible en los repositorios, instalarla será muy sencillo:
 # apt-get install equivs

Una vez instalada, dispondremos de dos utilidades:
  • equivs-control
  • equivs-build
equivs-control nos servirá para crear un esqueleto de archivo de configuración del metapaquete.

equivs-build creará el metapaquete a partir del archivo de configuración generado mediante equivs-control y modificado por nosotros.

Veamos cómo crear nuestro metapaquete paso a paso:

1) Creamos un archivo de configuración mediante equivs-control.
Para ello, tendremos que indicar cuál va a ser el nombre de nuestro paquete:

# equivs-control nombredelpaquete

2) Editamos el fichero de configuración creado:

# nano nombredelpaquete

Y tendremos algo como ésto:

### Commented entries have reasonable defaults.
### Uncomment to edit them.
Section: misc
Priority: optional
# Homepage:
Standards-Version: 3.6.2

Package:
Version:

Maintainer: Your Name

# Pre-Depends:
Depends:
# Recommends:
# Suggests:
# Provides:
# Replaces:
Architecture: all
# Copyright:

# Changelog:

# Readme:

# Extra-Files:
# Files:

Description:
 long description and info
 .
 second paragraph
 

En este archivo modificaremos, al menos, los valores que he indicado en negrita. Algunos de ellos no son obligatorios, pero proporcionan información acerca del paquete.

En la línea donde pone Package:  podríamos el nombre del paquete.
En la línea donde pone Version:  especificaríamos la versión del paquete.
En la línea Depends: especificaríamos la lista de paquetes que queremos que se instalen, separados por comas.
En la línea Architecture: especificaríamos la arquitectura para la que va el paquete.
El resto de campos darán información acerca de nuestro paquete.

Una observación: El apartado Files: nos permite añadir archivos, si queremos.

3) Creamos el metapaquete.
Una vez modificado el archivo de configuración y adaptado a nuestras necesidades, ejecutamos equivs-build seguido del nombre del fichero de configuración y se nos creará nuestro metapaquete.

# equivs-build nombredelpaquete