Enviar un email automáticamente desde Orange Pi
Publicado el 19 de Junio de 2016Puede ser muy útil para nuestros proyectos saber lo antes posible cuando un evento se dispara. En este caso, vamos a ver como enviar un email automáticamente desde Orange Pi con Python usando una cuenta de Google. Posibles usos: disparo de un sensor de presencia, detección de movimiento en cámara de seguridad, o simplemente cada cierto tiempo, enviando... no sé... el valor de cierta variable usando cron.
Primero vamos a crear un archivo en la carpeta donde tengas el proyecto que quieras que envíe el email, por ejemplo, email.py. El código es bastante sencillo:
import time import smtplib test = 1 #esta variable es solo para probar el funcionamiento PARA = 'email-receptor@email.aqui' # Pon tu email receptor aqui GMAIL_USER = 'email-emisor@email.aqui' # Pon tu email emisor aqui GMAIL_PASS = 'pon-tu-ConTraseÑa-aqui' # Pon tu contraseña aqui ASUNTO = 'Email enviado desde OrangePi' MENSAJE = 'Cuerpo del Mensaje de alerta' def send_email(): print("Enviando Email") smtpserver = smtplib.SMTP("smtp.gmail.com",587) smtpserver.ehlo() smtpserver.starttls() smtpserver.login(GMAIL_USER, GMAIL_PASS) header = 'Para:' + PARA + '\n' + 'Desde: ' + GMAIL_USER header = header + '\n' + 'Asunto:' + ASUNTO + '\n' print header msg = header + '\n' + MENSAJE + ' \n\n' smtpserver.sendmail(GMAIL_USER, PARA, msg) smtpserver.close() while True: if test == 1 : send_email() test = 2 #Evitamos que se envie mas de 1 mensaje time.sleep(0.5)
En principio con esto debería funcionar. Por supuesto cambia todos los emails y contraseñas por las tuyas.
Ejecuta el script con:
sudo python email.py
Si algo falla, antes de nada, te recomiendo la lectura de la ayuda de cuentas de Google pulsando aquí. Lo más seguro es que debas acceder desde la propia Pi a tu cuenta y luego acceder a la Gestión de aplicaciones menos seguras y activar el acceso. Después de eso todo debería funcionar correctamente. Esta opción no es segura porque podría facilitar el acceso a tu cuenta a otra persona. Puedes crear una cuenta únicamente para el envío de estos correos y si alguien consigue acceder a ella, descartarla y crear otra...
Para utilizar el Script, puedes adaptarlo a tus necesidades o simplemente copiar todo el código hasta justo antes del while True: y pegarlo en tu código. Cuando quieras disparar el envío del email, sólo llama a la función send_email( ). He decidido poner un bucle while para que se vea donde y como funcionaría una posible detección de eventos, por ejemplo leyendo un sensor. En lugar de:
if test == 1
deberíamos poner el código para leer un sensor:
if gpio.input(sensor) == 1:
definiendo antes el sensor por supuesto... En caso de no querer ejecutar un bucle, sólo habría que llamar a send_email( ), o sencillamente escribir el código en un archivo y llamarlo cada vez que lo necesitemos. Sencillo ¿verdad?.
Espero que te haya sido de utilidad, no dudes en escribir un comentario si ves algún error o si puedo ayudarte.
Utiliza este espacio si quieres añadir algún comentario adicional o si tienes alguna duda.
No olvides añadir tu distribución y tu placa.
Todos los comentarios serán validados antes de su publicación.
Copyright © 2024 desde 2016. Todos los derechos reservados | Diseño JaviPSantos