elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: [1]
1  Foros Generales / Dudas Generales / Enviar correo cada cierto tiempo Python en: 26 Abril 2019, 20:09 pm
Hola,

Estoy intentando enviar un correo cada cierto tiempo desde python. Mi situación es la siguiente:

Tengo una base de datos que recibe valores de sensores tales como temperatura, humedad, presión, etc. Por lo cual la base de datos se actualiza cada cierto tiempo, en mi caso se manda datos cada 1 minuto a la base de datos, lo que intento hacer es que cuando la temperatura pase de cierto valor, por ejemplo 26 °C se envié el correo pero se detenga por ejemplo 10 o 20 minutos y vuelva a mandar otro en el caso de que la temperatura se mantega arriba de 26. He logrado manda el correo, pero mi situación es que no se detiene y manda correos sin detenerse mientras el valor de la temperatura esta arriba de 26 °C.

Este es mi código:

Código:
dataSQL = []
sql_conn = MySQLdb.connect('localhost', 'root', 'pass', 'DB')
cursor = sql_conn.cursor()
cursor.execute("SELECT value,timestamp FROM sensorParser where sensor='TC'")
rows = cursor.fetchall()
for row in rows:
    dataSQL.append(list(row))
    labels = ['value','timestamp']
    df = pd.DataFrame.from_records(dataSQL, columns=labels)
    X = df['timestamp']
    Y = df['value'].astype(float)
 
 
    if (float(df['value'][0]) > 26):
        email = 'email1@gmail.com'
        password = 'pass'
        send_to_email = 'email2@gmail.com'
        subject = 'ALERTA!!!! SENSORES'
        message = 'Los valores de las variables criticas han superado el limite'
        file_location = 'C:\\Users\\User\\Desktop\\prograpython\\image.jpg'
 
        msg = MIMEMultipart()
        msg['From'] = email
        msg['To'] = send_to_email
        msg['Subject'] = subject
 
        msg.attach(MIMEText(message, 'plain'))
 
        filename = os.path.basename(file_location)
        attachment = open(file_location, "rb")
        part = MIMEBase('application', 'octet-stream')
        part.set_payload((attachment).read())
        encoders.encode_base64(part)
        part.add_header('Content-Disposition', "attachment; filename= %s" % filename)
 
        msg.attach(part)
 
        server = smtplib.SMTP('smtp.gmail.com', 587)
        server.starttls()
        server.login(email, password)
        text = msg.as_string()
        server.sendmail(email, send_to_email, text)
        server.quit()

Saludos.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines