miércoles, 16 de mayo de 2012

Tutorial de Batch desde 0: Como comprimir y enviar ficheros por mail



Hola a todos....

El capitulo de hoy es tal vez de los más interesantes ya que es el que nos permite automatizar una tarea repetitiva y recibir un log continuado a través del mail.

En el mundo laboral,en muchas ocasiones, podremos encontrarnos con la situación de tener una granja de servidores que se encargue de "vomitar" informes y nosotros tendremos que revisar periódicamente que estos informes se vayan generando.

La propuesta de código de hoy no es más que un programa que se encarga de coger estos resultados, comprimirlos y enviarlos por correo electrónico a donde queramos.

Vamos a ver el código batch:




echo off

:BUCLE
IF EXIST Resultados.txt GOTO RUN
GOTO BUCLE

:RUN
echo Batch de compresión de resultados
winrar a Resultados.rar resultados.txt

echo Batch de envio de correo electronico
sendEmail -s smtp.gmail.com:587 -f tudireccion@gmail.com -u "Titulo" -m "Este es el cuerpo del mail " -t direccionderecepcion@gmail.com -xu tuusario -xp tupasword -a Resultados.rar

DEL resultados.txt
DEL resultados.rar
GOTO BUCLE




En batch, cualquier palabra que empieze por : significia identificador de salto, es decir, un lugar hasta donde podremos saltar desde otra linea del batch.
IF es una operación del sistema operativo que nos permite operaciones condicionales dentro del batch

EXIST es una funcionalidad que nos dice si un fichero existe o no existe

GOTO es la instrucción usada para saltar a un identificador de salto definido.

DEL es una intruccion de cmd encargada de borrar archivos

winrar es un programa de windows que nos permite comprimir ficheros y que se puede usar desde linea de comandos. Podeis encontrarlo en  http://www.winrar.es/descargas/rar Para comprimir solo os interesa saber que "a" es para añadir ficheros a un rar y que primero pondremos el fichero de destino y despues  los ficheros a comprimir.

sendEmail es un programa que nos permite enviar emails. Lo podéis encontrar en http://caspian.dotconf.net/menu/Software/SendEmail/ . La sintaxis de este programa es sencilla:
-s : servidor de correo. Si queréis usar el de gmail es el smtp.gmail.com:587 pero realmente podéis usar el servidor que queráis.
-f : vuestra dirección de correo.
-t : dirección donde se enviará el correo
-u: Titurlo del correo
-m: Mensaje a enviar
-xu: nombre de usuario
-xp: pasword
-a : añadir ficheros adjuntos

Si lo provais vereis que el bat lo único que hace es esperarse a que aparezca un fichero llamado Resultados.txt, lo comprime y lo envía por correo. Posteriormente lo borra todo y sigue a la espera del próximo fichero de resultados.

Espero que os haya gustado y que os haya servido..

Nos vemos




2 comentarios :

  1. Buenas, lo e probado no me dan ningún error pero no se envían los correos, solo se elimina el archivo.

    ResponderEliminar
    Respuestas
    1. tienes el programa sendemail.exe en la raiz donde ejecutas el bat??

      Eliminar

Entradas populares