Python: Enviar email con los resultados

gmailpythonsimple

Merodeando por Internet encontré una página con contenido muy interesante «Pythin, GIS and Stuff», en ella vi un código que ya había pensado en buscar y es la opción de poder enviar un email con los resultados a nuestra cuenta desde el propio script. Y esto se hace de una forma muy sencilla. He simplificado un poco el de su web para que podáis pegar y copiar directamente sea cual sea la plataforma que vais a usar (en su web ejemplo de uso con ArcGIS).

Al ser una librería de Python, este código funciona desde cualquier sitio donde lo ejecutes, puedes agregarlo a scripts de OGR/GDAL desde editores externos,o a tus scripts en gvSIG, PyQGIS o ArcPy. En todos funciona perfectamente por lo que he podido probar.

Lo único que necesitamos introducir es la información una cuenta Gmail, la contraseña, y la cuenta destinatario. (Cuidado si le mandáis a alguien el script con eliminar la contraseña).

La función aceptará dos variables, el mensaje (una variable tipo string) y una variable booleana (True/False) por si queremos modificar el contenido de alguna forma, en este caso solo indica un supuesto de si se han procesado bien o mal los cálculos, cambiando el encabezado del email.

·

pythonemail

·

Además se ha añadido que la variable se cargue con los datos de un txt que hallamos podido crear. Esto se puede eliminar, solamente dejando que se asigne el valor de una variable string normal, asignar directamente a strResult un valor.

Copiando y pegando este bloque de código solamente deberéis de usarlo llamandolo de la forma:

sendResultEmail(strResult, success)

·

import smtplib

def sendResultEmail(msgContents, success_TF):
    '''sendResultEmail(msgContents, success_TF)'''

    #Info
    to = 'email@gmail.com'
    send_username = 'email@gmail.com'
    send_password = '*****'
    smtpserver = smtplib.SMTP("smtp.gmail.com",587)

    if success_TF:
        subject = 'Resultados de la prueba de email: script SUCCESS.'
    else:
        subject = 'Resultados de la prueba de email: script FAILURE.'
    smtpserver.ehlo()
    smtpserver.starttls()
    smtpserver.ehlo
    smtpserver.login(send_username, send_password)
    header = 'To:' + to + '\n' + 'From: ' + send_username + '\n' + 'Subject:' + subject + '\n'
    msg = header + '\nArcpy results: \n' + msgContents + '\n'
    smtpserver.sendmail(send_username, to, msg)
    smtpserver.close()

outTxt = "c:/gvsig/uni/dataInfo.txt"
txtFile = open(outTxt, "r")
strResult = txtFile.read()
txtFile.close()
success = True

sendResultEmail(strResult, success)

3 comentarios sobre “Python: Enviar email con los resultados

Agrega el tuyo

  1. Qué buena aportación.

    Justo en navidades estuve pensando cómo hacer esto, para hacer un sorteo del típico amigo invisible y mandarle a cada uno por correo quién le había tocado. Al final no me dio tiempo, pero me quedé con la duda de cómo enviar un correo desde el código.

    Muchas gracias.

    Un saludo.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Blog de WordPress.com.

Subir ↑

A %d blogueros les gusta esto: