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:

%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

Deja tu comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   jondarlek dijo

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

    1.    KZKG^Gaara dijo

      Para Windows… mmm … debes instalar Python en Windows amigo: http://www.python.org/getit/windows/

    2.    john dijo

      para windows hay una herramienta que se llama Cobian, es muy buena e intuitiva

  2.   carlos t. dijo

    como aptar el script para que envie con gmail (smtp)?

    1.    elwuilmer dijo

      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

  3.   Reedyseth dijo

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

    1.    KZKG^Gaara dijo

      Sí! jeje, ahorra montón de tiempo automatizar las cosas con scipts 🙂

  4.   Luweeds dijo

    Gracias por el post¡¡, me resulta interesante y añadiendo la funcionalidad que Reedyseth cita tiene una utilidad más,. 😉 saludos compas¡¡

    1.    KZKG^Gaara dijo

      Gracias a tí por el comentario 😀
      Saludos amigo.

  5.   Neo61 dijo

    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?

    1.    KZKG^Gaara dijo

      ¿No puedes abrir este link? -» http://paste.desdelinux.net/89

  6.   Neo61 dijo

    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?

    1.    KZKG^Gaara dijo

      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

  7.   David Vela dijo

    Gracias colega, el script funciona genial.

  8.   Frank dijo

    Dónd esta el script si me pueden ayudar

  9.   Areli dijo

    Pueden de favor compartir los ejemplos????