jueves, 9 de abril de 2009

Mandar correos desde la consola de linux

A veces programamos una tarea y no tenemos tiempo de verificar que dicha tarea se cumplio sin ningun error una buena solucion para esto seria programar que el servidor nos mandara un correo con la confirmacion de que la tarea se llevo a cabo sin errores o que dio errores y que errores dio.

Primero que nada instalamos el paquete y lo configuramos

apt-get --reinstall install exim4 exim4-config mailx
dpkg-reconfigure exim4-config

Como lo que nos interesa, de momento, solo es enviar e-mails, y no queremos convertirnos en una fuente de spam, activamos lo mínimo:

- Elegimos NO para no dividir la configuración en pequeños archivos
- Elegimos enviar los correos mediante un SMARTHOST y recibir via SMTP
- Como nombre del sistema elegimos el de nuestra máquina, si queremos.
- Como no vamos a recibir correo dejamos 127.0.0.1 como receptor de SMTP
- Dejamos en blanco otros destinos como correos aceptados
- Dejamos en blanco las máquinas a las que renviamos correo
- En el nombre del smarthost ponemos smtp.gmail.com::587
- En el nombre del correo saliente ponemos en de nuestra máquina, otro que queramos o ninguno.
- NO limitamos las consultas de DNS salientes

Editamos la cuenta de Gmail que hará el relay:

vim /etc/exim4/passwd.client

Añadimos:

gmail-smtp.l.google.com:TuNombreDeCuenta@gmail.com:TuPassword
*.google.com:TuNombreDeCuenta@gmail.com:TuPassword
smtp.gmail.com:TuNombreDeCuenta@gmail.com:TuPassword

/etc/init.d/exim4 restart

Y listo!

Una buena manera de empesar seria por ejemplo esta

cat archivo | mail -s "Asunto" correo@dominio.com

Aqui le estamos diciendo que haga un cat del archivo llamado archivo y lo mande por correo, tambien se le podria decir que mande el resultado de un comando un ejemplo serai el siguiente

df -h | mail hgeorge123@gmail.com -s "Espacio en el disco"

En la linea anterior le estamos diciendo que ejecute la sentencia df -h y el resultado lo mande por correo, si quieren mandar un archivo adjunto aqui les dejo el ejemplo de como deberia de funcionar.

mutt -s "Título del mensaje" -a /ruta/documento.pdf usuario@dominio.com < /ruta/archivodetexto.txt

En este caso, el usuario que posee el correo electrónico usuario@dominio.com recibirá un correo titulado “Título del mensaje”, el texto de este correo será el contenido de archivodetexto.txt, y se incluirá un PDF, documendo.pdf como archivo adjunto.

No hay comentarios:

Publicar un comentario