Domanda:
Come posso fare in modo che il mio Pi controlli / legga le e-mail per attivare un evento?
mrhobbeys
2013-03-05 03:26:28 UTC
view on stackexchange narkive permalink

Come posso fare in modo che il mio Pi controlli le email che, una volta ricevute, attivano un evento?

Ad esempio, potrei volere che ascolti solo le email di [email protected] e quindi, in base all'argomento, ignorarlo o agire su di esso. Il mio oggetto sarebbe qualcosa come "comando" o "script" o "inizia ssh inverso", e il contenuto dell'email sarebbe qualcosa come wget http://www.myadress.com/filetodownload.exe o script.sh o ssh -r 192.168.1.2 .

Attualmente sto usando Raspbian.

Penso che la soluzione più flessibile sarebbe scrivere un piccolo script Python per questo.
Sì, come il tutorial che ho incluso nella mia risposta.
Tre risposte:
#1
+5
Piotr Kula
2013-03-05 17:45:37 UTC
view on stackexchange narkive permalink

Hai alcune opzioni.

PHP

Finché abbiamo Python e .NET dobbiamo anche avere PHP. E fintanto che hai installato una LAMPADA, questo è abbastanza semplice. Ecco un esempio di PHP che riceve email da GMAIL

  • PRO - Scelta più probabile per chiunque utilizzi Linux in quanto ci sono molti esempi e librerie.
  • CONTRO - Se non ti piace PHP, lo userai comunque ma gemerai e gemerai ...

MONO

Puramente perché Sono uno sviluppatore .NET, ho dovuto testarlo e funziona. Crea semplicemente un'app in C # / VB e lascia che faccia ciò di cui hai bisogno. Compilalo come applicazione console ed eseguilo usando mono sul Pi. Ed ecco un buon punto di partenza.

  • PRO - Se ti piace .NET puoi fare un sacco di cose con il codice in quel binario. Xamarin e Raspberry Pi sono supportati / collaborano da / con Microsoft Open Source ora rendendolo più conveniente per .NET'ies.
  • CONTRO - Se non ti piace .NET o l'idea di installare MONO, allora no per te.

Puoi provare a utilizzare programmi di terze parti per ricevere la posta e utilizzare bash per analizzare i dati e chiamare altri script.

  • PRO - Non sono sicuro ma è un'opzione
  • CONTRO - Può essere un po 'complicato e non funzionerà su PC senza tutte le dipendenze

Postfix”

Se riesci a installare postfix per ricevere le email, puoi dirgli di scaricare le email su uno script - qualsiasi script, bash, php , pitone o java se ti piace.

Quindi il tuo script può analizzare facilmente tutte queste informazioni.

  • PRO - Abbastanza facile se riesci a installare postfix (o equivalente)
  • CONTRO - Se non hai un IP statico, allora hai bisogno di dyndns

Server remoto

Questo è ovviamente quello che hai chiesto. Vuoi recuperare l'email. Sembra abbastanza facile ma può essere piuttosto complesso nel tentativo di ottenere l'email e analizzarla. Ma non sei solo perché ecco un buon tutorial che utilizza python per analizzare il tuo feed RSS GMAIL.

  • PRO - Non è necessario eseguire un server SMTP come postfisso dietro dyndns
  • CONTRO - Non lo farei in questo modo perché ricevere le e-mail, analizzarle, connettersi a server remoti sembra complicato (e non un modo) per farlo. È soggetto a molti errori

XMLHttpRequest

Questo è un po 'sperimentale e una combinazione dei due precedenti. La quantità di pannelli di controllo (se possiedi un dominio con un hosting baisc - come justhost) ti consentirà di scaricare le email selezionate su uno script (come il suffisso sopra). Quindi lo analizzi su quel server e usi curl per chiamare il tuo Pi (su DynDns se non hai static) con comandi e autenticazione specifici.

  • PRO- Decentralizzazione e modularità.
  • CONTRO - Sperimentale

Messaggi Web Socks5 / HTML5

Come nel tuo commento, anche questa è un'opzione praticabile. Socks apre un socket tra il server e il browser e rimane aperto consentendo di inviare e ricevere messaggi istantaneamente, tra molte connessioni. L'esempio di chat di Node.JS è un buon punto di partenza. SignalR è fantastico! E anche altre lingue supportano alcuni tipi di calzini.

Suggerimenti

  • Ricorda di aggiungere alcune autenticazioni di base in qualsiasi cosa tu faccia. Anche nelle tue e-mail metti una riga con testo crittografato che il tuo lampone decodificherà in modo che sappia che sei tu e non alcuni idioti che attaccano il tuo sistema. Per aumentare la sicurezza, rendila una chiave mutante che ad esempio incorpori un timestamp (gg-mm-aa) in modo che ogni giorno venga crittografata in modo diverso ma il tuo Pi saprà come decrittografarla.
  • Puoi automatizzare i tuoi script utilizzando CRON
Con XMLHttpRequest, stai dicendo che il mio pi curl il server per trovare nuovi script. Potrei cron per farlo. Ma il modo in cui hai scritto mi eccita un po 'come se potessi chiamare il pi dal server ..?
Sì, certo :) Puoi chiamarlo come preferisci. Chiamare il server dal Pi sarebbe più semplice perché hai un ip statico ma nell'altro modo puoi usare no-ip.org e inoltrare le porte. puoi `curl` dal server o` AJAX` da un client. È lo stesso protocollo. Usa semplicemente "JSON" come formato dati. Sia PHP che JavaScript possono serializzare e deserializzare i dati in oggetti senza sforzo.
Socks5 funzionerebbe? Ho esaminato calzini5 e finora non sono chiaro se mi consentirebbe di connettere più dispositivi a un server per attivare gli eventi.
Sì socks5 funzionerà molto bene per collegare più dispositivi. Cerca l'esempio di chat Node.JS o qualcosa di simile. Funziona davvero bene
#2
+2
Nick Condon
2013-03-05 19:09:43 UTC
view on stackexchange narkive permalink

Fetchmail si trova nei reposititori raspbian. Puoi configurarlo per controllare il tuo sondaggio sui tuoi account di posta elettronica. Non eseguirà nulla automaticamente, ma puoi inviare il contenuto della tua posta in un file di testo e fare in modo che qualche altro script lo controlli.

Lo faccio - fetchmail riceve la posta dal mio ISP e la passa a procmail, che è un filtro di posta basato su regole. Alcune delle mie regole rispondono a determinati argomenti eseguendo comandi. (Altre regole ordinano semplicemente la posta in cartelle). Se installi un MTA come postfix, probabilmente ha già abilitato procmail.
#3
+2
Bengt
2013-03-06 02:40:23 UTC
view on stackexchange narkive permalink

Una soluzione semplice sarebbe utilizzare feed ATOM per la posta in arrivo di Gmail di Google. Ottieni, analizza e filtra e puoi rispondere agli eventi inviati tramite email.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...