Cómo enviar correo desde la terminal mediante un script

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:

 

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:

 

Y ya :D

Como ven, algo bastante simple… pero nos puede ayudar en determinadas ocasiones ;)

Saludos


KZKG^Gaara

KZKG^Gaara: Usuario de GNU/Linux y administrador de red desde hace algunos años. Intento mantenerme en el lado oscuro de la fuerza, pues es donde está lo divertido de la vida. Administrador y Fundador de todo esto que ven, pero uno más dentro de la familia.


13 comentarios en “Cómo enviar correo desde la terminal mediante un script

Deja un comentario

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

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current ye@r *

  1. es muy bueno.. pero quiero algo como esto que funcione para windows pero no lo encuentro :(

    1/12
  2. como aptar el script para que envie con gmail (smtp)?

    3/12
    • 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

      12/12
  3. Esta bueno, y ya después lo programas con cron y listo para rendir informes :D.

    4/12
  4. Gracias por el post¡¡, me resulta interesante y añadiendo la funcionalidad que Reedyseth cita tiene una utilidad más,. ;-) saludos compas¡¡

    6/12
  5. 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?

    8/12
  6. 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?

    9/12
    • 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

      11/12

Deja un comentario

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

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current ye@r *