Pregunta:
¿Cómo puedo hacer que mi Pi revise / lea el correo electrónico para activar un evento?
mrhobbeys
2013-03-05 03:26:28 UTC
view on stackexchange narkive permalink

¿Cómo puedo hacer que mi Pi busque correos electrónicos que, cuando se reciben, desencadenan un evento?

Por ejemplo, es posible que desee que solo escuche correos electrónicos de me@myadress.com y luego, según el tema, ignorarlo o actuar en consecuencia. Mi asunto sería algo así como "comando" o "script" o "iniciar ssh inverso", y el contenido del correo electrónico sería algo como wget http://www.myadress.com/filetodownload.exe o script.sh o ssh -r 192.168.1.2 .

Actualmente estoy usando Raspbian.

Creo que la solución más flexible sería escribir un pequeño script de Python para eso.
Sí, como el tutorial que incluí en mi respuesta.
Tres respuestas:
Piotr Kula
2013-03-05 17:45:37 UTC
view on stackexchange narkive permalink

Tienes algunas opciones.

PHP

Mientras tengamos Python y .NET también debemos tener PHP. Y siempre que tenga una LÁMPARA instalada, esto es bastante sencillo. Aquí hay un ejemplo de PHP que recibe correos electrónicos de GMAIL

  • PROS - Una opción más probable para cualquiera que use Linux, ya que hay muchos ejemplos y bibliotecas.
  • CONTRAS - Si no le gusta PHP, todavía lo usará, pero gime y gruñe ...

MONO

Simplemente porque Soy un desarrollador de .NET, tuve que probar esto y funciona. Simplemente cree una aplicación en C # / VB y deje que haga lo que necesite. Compílelo como una aplicación de consola y ejecútelo usando mono en el Pi. Y aquí hay un buen punto de partida.

  • PROS - Si te gusta .NET puedes hacer muchas cosas con el código en ese binario. Xamarin y Raspberry Pi son compatibles / trabajan juntos por / con Microsoft Open Source, lo que lo hace más conveniente para .NET'ies.
  • CONTRAS: si no le gusta .NET o la idea de instalar MONO, entonces no para ti.

Puede probar y usar programas de terceros para obtener correo y usar bash para analizar datos y llamar a otros scripts.

  • PROS - No estoy seguro, pero es una opción
  • CONTRAS - Puede ser un poco complicado y no funcionará en PC sin todas las dependencias

Postfix×

Si puede instalar postfix para recibir correos electrónicos, puede decirle que voltee los correos electrónicos en un script: cualquier script, bash, php , Python o Java si lo desea.

Entonces su script puede analizar toda esta información fácilmente.

  • PROS- Bastante fácil si puede instalar postfix (o equivalente)
  • CONTRAS - Si no tiene una IP estática, entonces necesita dyndns

Servidor remoto

Esto es obviamente lo que preguntaste. Quieres recuperar el correo electrónico. Esto suena bastante fácil, pero puede resultar bastante complejo al intentar obtener el correo electrónico y analizarlo. Pero no está solo porque aquí hay un buen tutorial que usa Python para analizar su fuente RSS de GMAIL.

  • PROS - No necesita ejecutar un servidor SMTP como postfix detrás de dyndns
  • CONTRAS - No lo haría así porque obtener los correos electrónicos, analizarlos, conectarse a servidores remotos parece complicado (y no hay una única forma) de hacerlo. Propenso a muchos errores

XMLHttpRequest

Esto es un poco experimental y una combinación de los dos anteriores. Una gran cantidad de paneles de control (si posee un dominio con algún alojamiento baisc, como justhost) le permitirá volcar los correos electrónicos seleccionados en un script (como postfix anterior). Luego lo analiza en ese servidor y usa curl para llamar a su Pi (en DynDns si no tiene estática) con comandos y autenticación específicos.

  • PROS- Descentralización y modularidad.
  • CONTRAS - Experimental

Mensajes Web Socks5 / HTML5

Como en su comentario, esta también es una opción viable. Socks abre un conector entre el servidor y el navegador y permanece abierto, lo que le permite enviar y recibir mensajes al instante, entre muchas conexiones. El ejemplo de Node.JS Chat es un buen lugar para comenzar. ¡SignalR es increíble! Y otros idiomas también admiten algún tipo de calcetines.

Consejos

  • Recuerde agregar alguna autenticación básica en todo lo que haga. Incluso en sus correos electrónicos ponga una línea con texto encriptado que su frambuesa descifrará para que sepa que es usted y no algunos idiotas atacando su sistema. Para aumentar la seguridad, conviértala en una clave mutante que, por ejemplo, incorpore una marca de tiempo (dd-mm-aa) para que cada día se cifre de manera diferente, pero su Pi sabrá cómo descifrarla.
  • Puede automatizar sus scripts usando CRON
Con XMLHttpRequest, ¿estás diciendo que mi pi haga rizar el servidor para encontrar nuevos scripts? Podría cron para hacer eso. Pero la forma en que escribiste eso me emociona un poco como si pudiera llamar al pi desde el servidor ...?
Sí, por supuesto :) Puede llamarlo como desee. Llamar al servidor desde Pi sería más fácil porque tiene una IP estática, pero de otra manera puede usar no-ip.org y reenviar puertos. puede "curl" desde el servidor o "AJAX" desde un cliente. Es el mismo protocolo. Simplemente use `JSON` como formato de datos. Tanto PHP como JavaScript pueden serializar y deserializar los datos en objetos sin esfuerzo.
¿Funcionarían socks5? He estado buscando socks5 y hasta ahora no tengo claro si me permitiría conectar varios dispositivos a un servidor para activar los eventos.
Yea socks5 funcionará muy bien para conectar varios dispositivos. Busque el ejemplo de chat de Node.JS o algo similar. Funciona muy bien
Nick Condon
2013-03-05 19:09:43 UTC
view on stackexchange narkive permalink

Fetchmail está en los repositorios raspbian. Puede configurarlo para verificar su encuesta en sus cuentas de correo electrónico. No se ejecutará automáticamente nada, pero puede enviar el contenido de su correo a un archivo de texto y hacer que otro script lo verifique.

Hago esto: fetchmail recibe correo de mi ISP y lo pasa a procmail, que es un filtro de correo basado en reglas. Algunas de mis reglas responden a ciertos temas ejecutando comandos. (Otras reglas simplemente clasifican el correo en carpetas). Si instala un MTA como postfix, probablemente ya tenga habilitado procmail.
Bengt
2013-03-06 02:40:23 UTC
view on stackexchange narkive permalink

Una solución simple sería utilizar feed ATOM para la bandeja de entrada de Gmail de Google. Obtenga, analice y filtre eso y podrá responder a los eventos enviados por correo electrónico.



Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...