Por X o por Y motivos, a veces necesitamos programar el servidor de nuestra empresa para que haga determinada tarea, y deseamos saber si esta tarea la ejecutó sin problemas, para esto le programamos que si todo transcurrió sin problemas, nos notifique… pero… ¿cómo nos puede notificar el servidor?
Muy simple, le diremos mediante un script Python que nos envíe un email, de esta forma cuando revisemos el buzón, leeremos si el servidor no tuvo problemas para efectuar la orden.
El script se los dejo aquí: send-email.py
Para usarlo es muy simple, abran una terminal, en ella escriban lo siguiente y presionen [Enter]:
cd $HOME/ && wget http://paste.desdelinux.net/paste/?dl=89 && mv index.html\?dl\=89 send-email.py && chmod +s send-email.py
Les dejo el cómo sería el proceso:
%CODE1%
Una vez hecho esto, deben editar el script para ponerle los datos propios de ustedes, yo lo editaré poniendo mis datos, o sea, los datos de acá mi trabajo.
Abran el script (send-email.py) y cambien estos datos:
- tu-email@desdelinux.net por tu email (en este ejemplo -» kzkggaara@ipichcb.rimed.cu)
- Cuerpo del Mensaje por el contenido del email (en este ejemplo -» Este es un email de prueba)
- tu.mailserver.cu por su servidor de correo (en este ejemplo -» 192.168.1.2)
- tu-email por tu usuario (en este ejemplo -» kzkggaara)
- tu-password por tu password (en este ejemplo -» JAJA…sí…claro…LOL)
Me queda de la siguiente forma: send-email.py (Modificado)
Y listo, ya solo queda mandar el email… para esto pondremos lo siguiente:
- python send-email.py «Aquí ponemos el asunto» destinatario@dominio.com
O sea, debemos ejecutar el script y pasarle el parámetro «Asunto» (o sea, el asunto que llevará el email) y además a quién (dirección email) se le enviará.
Me enviaré yo mismo un correo, aquí les dejo el ejemplo:
%CODE2%
Y ya 😀
Como ven, algo bastante simple… pero nos puede ayudar en determinadas ocasiones 😉
Saludos
16 comentarios, deja el tuyo
es muy bueno.. pero quiero algo como esto que funcione para windows pero no lo encuentro 🙁
Para Windows… mmm … debes instalar Python en Windows amigo: http://www.python.org/getit/windows/
para windows hay una herramienta que se llama Cobian, es muy buena e intuitiva
como aptar el script para que envie con gmail (smtp)?
Tengo de igual forma la misma duda :/
Yo lo pude:
s = SMTP(‘smtp.gmail.com’)
s.starttls() # Si usas TLS
s.ehlo()
Sin embargo me da este error:
python send-email.py “Aquí ponemos el asunto” aquimi@correo.com
Traceback (most recent call last):
File «send-email.py», line 14, in
s = SMTP(‘smtp.gmail.com’)
File «/usr/lib/python2.6/smtplib.py», line 239, in __init__
(code, msg) = self.connect(host, port)
File «/usr/lib/python2.6/smtplib.py», line 295, in connect
self.sock = self._get_socket(host, port, self.timeout)
File «/usr/lib/python2.6/smtplib.py», line 273, in _get_socket
return socket.create_connection((port, host), timeout)
File «/usr/lib/python2.6/socket.py», line 561, in create_connection
raise error, msg
socket.error: [Errno 101] La red es inaccesible
Esta bueno, y ya después lo programas con cron y listo para rendir informes :D.
Sí! jeje, ahorra montón de tiempo automatizar las cosas con scipts 🙂
Gracias por el post¡¡, me resulta interesante y añadiendo la funcionalidad que Reedyseth cita tiene una utilidad más,. 😉 saludos compas¡¡
Gracias a tí por el comentario 😀
Saludos amigo.
Gaara, mi amigo, estoy seguro que este articulo esta muy bueno como destacan todos aquí pero YO – NO -PUE-DO-VER-LOS-E-JEM-PLOS-POR-MI-MAL-DI-TA-CO-NEC-CION
QUE HAGO PARA VERLOS, ME CORTO LA GARGANTA?
¿No puedes abrir este link? -» http://paste.desdelinux.net/89
Déjame preguntarte algo, se podría hacer un script para que un día determinado pueda enviar un mensaje en especifico a todos los usuarios de mi centro? Me imagino que s,i pero tu eres el especialista y de confirmarme esto, podrías ayudarme a hacer uno?
Sí, para hacer «algo» un día determinado debes usar crontab.
Luego, suponiendo que desees enviar un archivo .PDF (por ejemplo, nota.pdf) a tus usuarios, para enviar a 1 solo email sería:
mail -s "Este es el asunto del correo" direccionemail@loquesea.cu < nota.pdf
Ahora, para enviar eso pero no solo a una dirección, sino a muchas más… necesitarías tener en un archivo de texto las direcciones (separadas por un salto de línea), y luego usar un ciclo for. Por ejemplo, si tienes en direcciones.txt los emails, sería:
for i in `cat direcciones.txt`;
do
mail -s "Este es el asunto del correo" $i < nota.pdf
done
Gracias colega, el script funciona genial.
Dónd esta el script si me pueden ayudar
Pueden de favor compartir los ejemplos????