Como enviar un email desde un script bash con swaks

como enviar un email desde la termina o desde un script bash con swaksVimos en el post anterior como enviar un correo desde la linea de comando con swaks, sin embargo esto puede ser algo complicado, por esto resulta conveniente crear un script con el que puedas enviar un correo de forma sencilla y que también te sirva para crear scripts que puedan enviar un correo si algun evento de importancia ocurre en tu servidor o equipo. Aquí te explico como enviar un email desde un script en bash paso a paso.

Como enviar un email desde un script bash con swaks

Enviar un email con swaks no es otra cosa que poner un comando con los parámetros indicados aunque son muchos y resulta algo complejo, así que puedes crear un script para facilitar ese comando y lo haremos de la siguiente forma.

Prerequisitos

Debes tener instalado el paquete swaks, si es que no lo tienes, puedes instalarlo siguiendo los pasos en este post:

 

Creando el script mandarmail.sh

Los que necesitamos es un script que nos permita indicar los parámetros básicos, por ejemplo, a que cuenta de email lo vamos a enviar, el título del correo y el mensaje que queremos transmitir. Lo anterior se puede definir en un script que se use así:

mandarmail.sh "Titulo del correo" "correo@destino.com" "mensaje"

Esta forma es mas simple y podemos quitar lo complejo se los parámetros de swaks, para implementar este script podemos crear un archivo .sh al que le daremos permisos de ejecución y incluiremos en el el código para recibir los parámetros y luego ejecutar el swaks con los parámetros necesarios para realizar el envío del correo.

Crea un archivo que se llame mandarmail.sh con el siguiente comando:

touch mandarmail.sh

Luego edita el archivo

nano mandarmail.sh

y agrega los comandos para recibir los parámetros y configura el comando swaks con ellos, puedes incluir estos comandos y remplazar los datos necesarios.

#!/bin/bash

SUBJECT=$1
RECEIVER=$2
TEXT=$3

SERVER_PORT="tu_servidor_smtp.com:587"
SENDER="tu_email@tu_dominio.com"
USER="tu_email@tu_dominio.com"
PASSWORD="tu_contraseña"

swaks --to $RECEIVER --from $SENDER --server $SERVER_PORT --auth LOGIN --auth-user $USER --auth-password $PASSWORD -tls --data "Date: %DATE%\nTo: %TO_ADDRESS%\nFrom: %FROM_ADDRESS%\nSubject: $SUBJECT %DATE%\nX-Mailer: swaks v$p_versionjetmore.org/john/code/swaks/\n%NEW_HEADERS%\n $TEXT \n"

Debes indicar en el script los datos de tu cuenta de email con la que vas a hacer el envío, para esto debes remplazar los datos que están en color verde y por ahí la información correcta, para que tu script funcione.

Una vez que tengas este código en el archivo grábalo con Ctrl+O y sal del editor nano con Ctrl+X. Luego da permiso de ejecución al script con el siguiente comando:

chmod +x mandarmail.sh

y ahora pruebalo mandando un correo de prueba a alguna de tus cuentas de email.

./mandarmail.sh "Prueba de script mandarmail.sh" "tu-email@algo.com" "Texto de prueba del script mandarmail.sh"

Si todo funciona correcto recibirás el correo en la bandeja de entrada de tu cuenta de email a la que enviaste la prueba.

Una vez que tengas este script puedes ubicarlo en alguna ruta que esté incluida en el PATH del sistema para que puedas ejecutarlo desde cualquier usuario o script, y con esto podrás incluir ese comando en algun otro script que necesites o tal vez en algún cron para que te envié un correo cuando algo pase en tu servidor.

Espero que este pequeño script te sea de utilidad, tanto como lo ha sido para mi. No olvides que esta es una forma de hacerlo, pero me gustaría saber como lo haces tu. Déjame tus dudas o comentarios abajo.

Tu Servidor y Amigo

Luis Armando Medina

Sígueme en Twitter: @larmedina
Sígueme en Facebook: dame un like LuisMedinaMLM

This entry was posted in Ubuntu and tagged , , , , . Bookmark the permalink.

10 Responses to "Como enviar un email desde un script bash con swaks"

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


*