Frage:
Wie kann ich meinen Pi dazu bringen, E-Mails zu lesen, um ein Ereignis auszulösen?
mrhobbeys
2013-03-05 03:26:28 UTC
view on stackexchange narkive permalink

Wie kann ich meinen Pi dazu bringen, nach E-Mails zu suchen, die beim Empfang ein Ereignis auslösen?

Ich möchte beispielsweise, dass er nur E-Mails von [email protected] abhört und dann, basierend auf dem Thema, ignorieren oder darauf reagieren. Mein Betreff wäre so etwas wie "Befehl" oder "Skript" oder "Initiate Reverse SSH", und der Inhalt der E-Mail wäre so etwas wie wget http://www.myadress.com/filetodownload.exe oder script.sh oder ssh -r 192.168.1.2 .

Ich verwende derzeit Raspbian.

Ich denke, die flexibelste Lösung wäre, dafür ein kleines Python-Skript zu schreiben.
Ja, wie das Tutorial, das ich in meine Antwort aufgenommen habe.
Drei antworten:
#1
+5
Piotr Kula
2013-03-05 17:45:37 UTC
view on stackexchange narkive permalink

Sie haben einige Optionen.

PHP

Solange wir Python und .NET haben, müssen wir auch PHP haben. Und solange Sie eine LAMPE installiert haben, ist dies ziemlich einfach. Hier ist ein Beispiel dafür, wie PHP E-Mails von GMAIL erhält

  • PROS - Wahrscheinlicher für jeden, der Linux verwendet, da es viele Beispiele und Bibliotheken gibt.
  • CONS - Wenn Sie PHP nicht mögen, werden Sie es immer noch verwenden, aber stöhnen und stöhnen ...
  • MONO

    Nur weil Ich bin ein .NET-Entwickler. Ich musste dies testen und es funktioniert. Erstellen Sie einfach eine App in C # / VB und lassen Sie sie tun, was Sie brauchen. Kompilieren Sie es als Konsolenanwendung und führen Sie es mit Mono auf dem Pi aus. Und hier ist ein guter Ausgangspunkt.

  • PROS - Wenn Sie .NET mögen, können Sie viele Dinge mit dem Code in dieser einen Binärdatei tun. Xamarin und Raspberry Pi werden von / mit Microsoft Open Source unterstützt / arbeiten jetzt zusammen, was es für .NET'ies bequemer macht.
  • CONS - Wenn Sie .NET oder die Idee, MONO zu installieren, nicht mögen, dann nicht für dich.
  • p> BASH

    Sie können versuchen, Programme von Drittanbietern zu verwenden, um E-Mails abzurufen, und Bash verwenden, um Daten zu analysieren und andere Skripte aufzurufen.

    • PROS - Nicht sicher, aber eine Option
    • CONS - Kann etwas kompliziert sein und funktioniert nicht ohne alle Abhängigkeiten über den PC hinweg

    Postfix

    Wenn Sie Postfix installieren können, um E-Mails zu empfangen, können Sie es anweisen, die E-Mails an ein Skript zu senden - ein beliebiges Skript, Bash, PHP , Python oder Java, wenn Sie möchten.

    Dann kann Ihr Skript all diese Informationen einfach analysieren.

    • PROS - Einfach genug, wenn Sie Postfix (oder ein gleichwertiges) installieren können.
    • CONS - Wenn Sie keine statische IP haben, benötigen Sie Dyndns

    Remote-Server

    Das haben Sie offensichtlich gefragt. Sie möchten E-Mails abrufen. Dies klingt einfach genug, kann jedoch sehr komplex sein, wenn Sie versuchen, die E-Mail abzurufen und zu analysieren. Sie sind jedoch nicht allein, da hier ein gutes Tutorial ist, das Python zum Parsen Ihres GMAIL-RSS-Feeds verwendet.

    • PROS - Sie müssen keinen SMTP-Server wie ausführen Postfix hinter Dyndns
    • CONS - Ich würde es nicht so machen, weil das Abrufen der E-Mails, das Parsen und das Herstellen einer Verbindung zu Remote-Servern kompliziert erscheint (und keine Möglichkeit), dies zu tun. Anfällig für viele Fehler

    XMLHttpRequest

    Dies ist ein wenig experimentell und eine Kombination der beiden oben genannten. Mit vielen Kontrollfeldern (wenn Sie eine Domain mit einem Baisc-Hosting besitzen - wie justhost) können Sie ausgewählte E-Mails an ein Skript senden (wie oben beschriebenes Postfix). Sie analysieren es dann auf diesem Server und verwenden Curl, um Ihren Pi (auf DynDns, wenn Sie nicht statisch sind) mit bestimmten Befehlen und Authentifizierung aufzurufen.

    • PROS - Dezentralisierung und Modularität.
    • CONS - Experimentelle

    Socks5 / HTML5-Webnachrichten

    Wie in Ihrem Kommentar ist dies auch eine praktikable Option. Socks öffnet einen Socket zwischen Server und Browser und bleibt geöffnet, sodass Sie Nachrichten zwischen vielen Verbindungen sofort senden und empfangen können. Das Beispiel für den Node.JS-Chat ist ein guter Anfang. SignalR ist unglaublich! Andere Sprachen unterstützen auch Socken.

    Tipps

    • Denken Sie daran, bei allem, was Sie tun, eine grundlegende Authentifizierung hinzuzufügen. Sogar in Ihre E-Mails setzen Sie eine Zeile mit verschlüsseltem Text, die Ihre Himbeere entschlüsselt, damit sie Sie kennt und nicht einige Idioten, die Ihr System angreifen. Um die Sicherheit zu erhöhen, machen Sie es zu einem mutierenden Schlüssel, der beispielsweise einen Zeitstempel (TT-MM-JJ) enthält, sodass er jeden Tag anders verschlüsselt wird, Ihr Pi jedoch weiß, wie er ihn entschlüsselt.
    • Sie können automatisieren Ihre Skripte mit CRON
    Wollen Sie mit XMLHttpRequest sagen, dass mein Pi den Server kräuseln muss, um neue Skripte zu finden? Ich könnte das tun. Aber die Art und Weise, wie du geschrieben hast, macht mich ein wenig aufgeregt, als könnte ich den Pi vom Server aus aufrufen.
    Ja, natürlich :) Sie können es so nennen, wie Sie möchten. Das Aufrufen des Server-Formulars Pi wäre einfacher, da Sie eine statische IP-Adresse haben, aber auf andere Weise können Sie no-ip.org verwenden und Ports weiterleiten. Sie können vom Server aus "locken" oder von einem Client aus "AJAX". Es ist das gleiche Protokoll. Verwenden Sie einfach "JSON" als Datenformat. Sowohl PHP als auch JavaScript können die Daten mühelos serialisieren und in Objekte deserialisieren.
    Würde socks5 funktionieren? Ich habe mich mit socks5 befasst und bin mir bisher nicht sicher, ob ich damit mehrere Geräte an einen Server anschließen kann, um die Ereignisse auszulösen.
    Ja, socks5 funktioniert sehr gut, um mehrere Geräte zu verbinden. Suchen Sie nach einem Chat-Beispiel für Node.JS oder ähnlichem. Es funktioniert wirklich gut
    #2
    +2
    Nick Condon
    2013-03-05 19:09:43 UTC
    view on stackexchange narkive permalink

    Fetchmail befindet sich in den Raspbian-Repositorys. Sie können dies einrichten, um Ihre Umfrage in Ihren E-Mail-Konten zu überprüfen. Es wird nichts automatisch ausgeführt, aber Sie können den Inhalt Ihrer E-Mail in eine Textdatei ausgeben und dies von einem anderen Skript überprüfen lassen.

    Ich mache das - fetchmail ruft E-Mails von meinem ISP ab und leitet sie an procmail weiter, einen regelgesteuerten E-Mail-Filter. Einige meiner Regeln reagieren auf bestimmte Themen, indem sie Befehle ausführen. (Andere Regeln sortieren E-Mails einfach in Ordner). Wenn Sie einen MTA wie Postfix installieren, ist Procmail wahrscheinlich bereits aktiviert.
    #3
    +2
    Bengt
    2013-03-06 02:40:23 UTC
    view on stackexchange narkive permalink

    Eine einfache Lösung wäre die Verwendung eines ATOM-Feeds für den Posteingang von Google Mail. Wenn Sie dies abrufen, analysieren und filtern, können Sie auf per E-Mail gesendete Ereignisse reagieren.



    Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
    Loading...