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.