jueves, 4 de abril de 2013

Como enviar un E-mail desde el Shell

Hace unos días se me presento la siguiente situación, Como enviar un E-mail desde el shell y que este contenga un archivo adjunto?.
después de tanta pruebas ahora lo quiero compartir con todos ustedes.

Les mostrare como enviar un correo desde el shell de linux,con archivo adjunto,con un script que verificara si los archivos existen, y que lo mueva de lugar una vez lo envié.

Nota.:He realizado todo esto en CentOS 6.3 para Fedora debe ser el mismo principio.


Manos a la obra.

Paso 1: Debemos de instalar sharutils

# yum -y install sharutils

Paso 2: Preparamos nuestra estructura para el script

# touch /usr/src/send_mail
# mkdir /usr/src/enviado
# vim /usr/src/send_email

Agregamos lo siguiente a nuestro archivo.

#!/bin/bash
FILE=$1
cd /usr/src/
if
(ls -1 *.xls)>0
then
(echo "This file XLS was sent from Shell."
for i in `ls -1 *.xls $FILE`
do
file_name=`basename $i`
uuencode $i $file_name
done
)| mail -s "Cuerpo del Email" "$TO_ADD"
mv *.xls enviado/
fi

Vamos a explicar.:

FILE=$1 = variable que utilizaremos para guardar los archivos encontrado.
cd /usr/src/ = Es la ruta donde estará los archivos. no necesariamente debemos poner nuestro script en este directorio.

===============================
if
(ls -1 *.xls)>0
then
(echo "This file XLS was sent from Shell."
for i in `ls -1 *.xls $FILE`
do
file_name=`basename $i`
uuencode $i $file_name
done
)| mail -s "Cuerpo del Email" "$TO_ADD"
mv *.xls enviado/
fi
===============================
 

Toda esta parte se encargara de.:
 

1.: Buscara los archivos *.xls solo tomara el nombre y se lo asignara a la variable 0, Si no existen archivos no hará nada.
2.: Le agregara el asunto al correo cual dirá (This file XLS was sent from Shell.)
3.: Iniciara un contador el cual verificara cuantos archivos existen y se lo pasara a la variable (FILE). La linea que hace esto es (for i in `ls -1 *.xls $FILE`).
4.: Formateara los datos de la variable para poder ser enviado. (uuencode $i $file_name).
5.: Esta linea enviara el correo (| mail -s "Cuerpo del Email" "$TO_ADD")
6.: Y por ultimo moverá todo los archivos enviado (mv *.xls enviado/)

Paso 3.: Agregamos privilegio de ejecución al archivo.

# chmod a+x /usr/src/send_mail

Para ejecutarlo solo debemos ./send_mail

Listo!!!

No hay comentarios.:

Publicar un comentario