Enviar un email automáticamente desde Orange Pi

Publicado el 19 de Junio de 2016

Puede 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.

Todos los comentarios serán validados antes de su publicación.

Nombre*

Email* Nunca será publicado ni compartido

Comentario*



Copyright © 2016. Todos los derechos reservados | Diseño JaviPSantos

Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-ley 13/2012. Si continúa navegando consideramos que acepta el uso de cookies.

OK | Más información