Mit dem Raspberry Pi eine E-Mail senden

Raspberry Pi

Nun möchte ich euch zeigen wie ihr mit dem Raspberry Pi E-Mails verschicken könnt.
Dies könnt ihr via Web oder via C-Programm machen. Dadurch bekommt ihr die Möglichkeit euch über den Status von z.B. GPIOs zu informieren.

-> Das Pythonskript:

Das Versenden der E-Mail wird von einem Pythonskript übernommen.
Dies ist (gegenüber C) die einfachste Möglichkeit um das Versenden von E-Mails zu realisieren (da die Funktion mail auf dem Pi wohl nicht funktioniert).
Daten die verschickt werden sollen, übergebe ich dann als Kommandozeilenparameter in das Pythonskript, welches bei mir unter /home/pi/Desktop/Autostart mit dem Namen Mail.py gespeichert ist.
Der erste Schritt ist das Einfügen der Accountdaten:

Für Empfaenger tragt ihr die E-Mailadresse ein zu der ihr die E-Mails schicken wollt und für Absender die Adresse von dem Account von der ihr die E-Mail abschicken wollt.
Ich habe mir extra für das Raspberry Pi einen neuen E-Mailaccount angelegt, von dem aus das Raspberry Pi die E-Mails abschickt.
Bei Passwort müsst ihr dann das Passwort eures Absendeaccounts eintragen.
Diese Adresse:

Müsst ihr in die Adresse des SMTP-Servers eures E-Mailanbieters umändern. Den Port dahinter könnt ihr so lassen wie er ist. Dieser sollte für alle Anbieter immer der selbe sein.
Anschließend könnt ihr in der Zeile

den Betreff eurer E-Mail eintragen.
Wie ich eben schon erwähnt habe, werden die Daten die verschickt werden sollen als Kommandozeilenparameter in das Pythonskript übergeben.
In dem Pythonskript werden die übergebenen Argumente mit Hilfe dieser Zeilen

zu einem String zusammengebaut und durch

in das Nachrichtenfeld der E-Mail kopiert. Natürlich kann die Zeile noch erweitert werden, sodass drei oder vier Argumente übergeben werden. Dafür fügt ihr einfach beliebig oft

ein. Ihr müsst nur das x durch die Argumentnummer ersetzen (alternativ habe ich auch noch ein Pythonskript, welches eine beliebige Anzahl an Argumenten einliest).
Wichtig ist, dass argv[0] (wie bei C) immer der Programmaufruf selber ist, sprich die eigentlich übergebenen Argumente fangen bei argv[1] an.
Das komplette Pythonskript könnt ihr euch am Ende der Seite downloaden.

-> Versenden einer E-Mail via Konsole:

Nachdem das Pythonskript nun einsatzbereit ist, können wir die erste E-Mail versenden um zu prüfen ob alles so funktioniert wie wir es uns vorstellen.
Dafür öffnen wir die Konsole und geben

ein. Die „5“ und die „10“ sind zwei willkürlich gewählte Argumente. Ihr müsst nur darauf achten, dass ihr immer genau so viele Argumente beim Programmaufruf übergebt wie das Pythonskript verarbeiten soll, da ansonsten Fehler entstehen.
Wenn alles geklappt hat, solltet ihr ein paar Sekunden später eine E-Mail bekommen die in etwa so aussieht:

E-Mail

-> Versenden einer E-Mail via C-Programm:

Da das Versenden einer E-Mail via Konsole nun funktioniert, können wir uns daran machen das ganze über ein C-Programm zu machen.
So wird es möglich den Status von GPIOs oder Sensoren via E-Mail mitgeteilt zu bekommen. Für meinen ersten Test verwende ich ein Programm welches den GPIO 17 abfragt und mir den Status per E-Mail zukommen lässt.
Das Programm heißt GPIO_read.c und ihr könnt es euch am Ende der Seite downloaden. Es ist eine modifizierte Version von meinem Programm GPIO_read.c aus dem Softwarebereich für das Raspberry Pi.
Was genau macht dieses Programm nun genau?
Das Programm besteht aus drei Teilen. Der erste Teil deklariert den GPIO als Eingang, der zweite Teil ließt den Pegel von dem GPIO aus und der dritte Teil versendet alles via Mail.
Der erste Teil sieht so aus:

Dort wird ein Device mit einem Namen, der unter der Variable Device_Direction gespeichert ist, geöffnet.
Die direction-Datei eines GPIOs legt fest ob der Pin als Ausgang (dann steht in der Datei out) oder als Eingang (dann steht in der Datei in) geschaltet ist.
Das O_RDWR gibt an, dass es sich sowohl um einen lesenden wie auch um einen schreibenden Zugriff handelt.
Der Index der geöffneten Datei wird unter fd gespeichert und in der zweiten Zeile wird das Wort in in die durch fd indexierte Datei geschrieben. Die 2 gibt an, dass zwei Bytes geschrieben werden.
Als letztes wird die, durch fd indexierte Datei, wieder geschlossen.

Der zweite Teil des Programmes

funktioniert quasi genau so, außer das hier nicht die direction-Datei beschrieben sondern die value-Datei gelesen wird.
Die value-Datei beinhaltet den aktuellen Pegel des Pins, sprich eine 1 für High oder eine 0 für Low.
Der Inhalt der Datei wird unter Input gespeichert. Da die read() Funktion an der Stelle einen Zeiger besitzt, muss die Adresse der Variable, wo der Inhalt drin gespeichert werden soll, angegeben werden (gekennzeichnet durch ein &).

Der letzte Teil des Programmes befasst sich mit dem Versenden der E-Mail.
Als erstes wird von der Variable Input der Wert 48 subtrahiert:

Damit wandel ich den ASCII Wert der Zahl 1 und“0 in den Binärwert 1 und 0 um.
Im nächsten Schritt wird das Ergebnis per Konsole ausgegeben:

In der Konsole steht nachher entweder eine 0 oder eine 1, je nachdem welcher Zustand der GPIO angenommen hat.
Die letzten beiden Zeilen sorgen dafür, das dass Pythonskript ausgeführt wird:

Die erste Zeile erzeugt einen String und speichert ihn unter Buffer.
Der String beinhaltet den Pfad von Python auf dem Pi (/usr/bin/python), sowie den Pfad des Pythonskripts (/home/pi/Desktop/Autostart/Mail.py).
Den Pfad von Python bekommt ihr raus, indem ihr

in die Konsole eingebt. Das %s und das %d bedeutet, dass ein weiterer String  (GPIO17) und eine weitere Dezimalzahl (der Inhalt der Variable Input) folgen.
Unter „lenght“ wird die Länge des fertigen Strings gespeichert.
Für das aktuelle Programm ist das nicht ganz so wichtig, aber ich habe es lieber schon mal berücksichtigt.
Der fertige String (wie er unter Buffer gespeichert wird) sieht am Ende z.B. so aus:

In der nächsten Zeile sorgt der Befehl system() dafür, dass der angegebene Befehl ausgeführt wird.
In unserem Fall ist es also der Befehl um das Pythonskript auszuführen. Im Grunde beinhaltet der String nichts anderes als unsere Konsoleneingabe von eben (nur das anstelle der Zahlen, GPIO17 und der Inhalt der Variable Input als Kommandozeilenparameter übergeben werden).
Wenn ihr das Programm nun kompiliert und mittels

ausführt, sollte entweder eine 0 oder eine 1 in der Konsole auftauchen und derselbe Status sollte dann noch einmal in der E-Mail stehen die ihr ein paar Sekunden später erhaltet.

 

Dokumentation:

 

-> Zurück zu den Basteleien mit dem Raspberry Pi

48 thoughts on “Mit dem Raspberry Pi eine E-Mail senden
  1. Hallo,
    Bin etwas Neuling habe nun endlich meine Rasberry bekommen Super ding und das für den Preis.
    Lese schon länger bei dir . Super wie du was zeigst habe das mit dem email PY gemacht klappt super echt ! Weiter so mal schauen ob ich auch was an ein online sms anbieter senden kann.
    Aber das 1wire ist sehr intressant bin schon seit jahren da bei fing mit fli4linux an nun über Pollin AVR-NETIO und ethersex Firmware klappt super
    so das wollt ich mal sagen und DANKE
    Gruß Jürgen

  2. Ich habe ne Frage bezüglich des Mail Versands.

    Ich habe einen Kontakt der durchschaltet wenn ein Grenzwert überschritten wird.

    Ich möchte dass bei durchschaltung des Kontakts eine Mail mit Standartext versendet wird.
    Geht dass??? Wenn ja wie am besten (auch mit Anschluss am Pii => Ich bin absoluter neuling)

    Danke

    • Hey,

      du kannst einfach eine If-Abfrage machen ob ein Pin auf High oder Low liegt (je nachdem wie du ihn schalten willst wenn dein Kontakt durchschaltet) und dann eine E-Mail schicken.
      Zum Abfragen von dem GPIO kannst du das Modul RPi.GPIO nehmen und das E-Mail Programm kannst du dann mittels „os.system()“ ausführen.
      Hilft dir das weiter :)?
      Wenn nicht, schreib mir ruhig eine E-Mail.

      Gruß
      Daniel

      • danke für die schnelle Antwort!

        Wie schon geagt ich bin ein !!!absoluter!! neuling sprich ich starte von 0 weg, habe technische Begabung und möchte mich in diese Thema einarbeiten.
        Der schwierigste Punkt : wo fange ich an.!!

    • Hey,

      eventuell geht auch dies.
      Ich habe es leider nur noch nicht ausprobiert und kann dir leider nicht sagen wie es geht.

      Gruß
      Daniel

      • Suche schon die ganze Zeit nach einer simplen Möglichkeit Mails mit dem Pi zu verschicken und dann denke ich mir, schau doch mal beim Kampi vorbei und siehe da, besser gehts doch gar nicht (Das ist ja ein Krampf mit Exim und Sendmail).
        Da ich mir einen kleinen Asterisk Server aufgesetzt habe interessiert mich natürlich auch der Dateiversand meiner Voicemails, hast Du da mittlerweile evtl. eine Idee wie man Anhänge mit Deinem Phyton Skript verschicken kann?

          • Hallo Kampi,
            danke für Dein Feedback. was ich noch gefunden habe ist folgendes: https://code.google.com/p/python-simplemail/

            Damit habe ich es auch geschafft Anhänge zu verschicken.
            Leider fehlt mir hier das Know How das ganze jetzt mit Parametern für mein Asterisk System zu adaptieren.

            Dein Code ist mir vom lesen und vom Verständnis her weitaus lieber, vielleicht hast Du da ja bald was in petto. :)

            Gruß
            Oliver

          • Hey Oliver,

            mmh das sieht doch ganz gut und recht einfach aus.
            Wie hast du dir das mit der Parametrierung vorgestellt?

            Gruß
            Daniel

          • Hallo Oliver,

            mmh ich kann mich irren, aber es könnte fast sein, dass du bei dem Eintrag „mailcmd“ einfach nur das Python Programm aufrufen musst.
            Sachen die in der E-Mail verschickt werden sollen kannst du dann ja einfach als Parameter mit anhängen (Dateien z.B….einfach den Pfad angeben).

            Gruß
            Daniel

  3. hi! ,

    ich bin neuling…habe das script getestet und bekomme folgenden fehler:

    Traceback (most recent call last):
    File „/usr/local/bin/Mail.py“, line 23, in
    Wert = str(sys.argv[1])
    IndexError: list index out of range

    was mache ich falsch?

    • Hey,

      wie hast du das Programm den aufgerufen? Hast du zwei Parameter verwendet, wie im Beispiel:

      $ python /home/pi/Desktop/Autostart/Mail.py 5 10

      ?

      Gruß
      Daniel

  4. Hallo Kampi,

    warum muss das Mail.py Skript im Pfad /home/pi/Desktop/Autostart/ abgelegt werden bzw. wieso funktioniert es nicht direkt im /home/pi/?

    Bei der Einbindung direkt in /home/pi/ bekommt man diverse Fehlermeldungen. Warum?

    File „mail.py“, line 1, in
    import smtplib
    File „/usr/lib/python2.7/smtplib.py“, line 46, in
    import email.utils
    File „/home/pi/email.py“, line 6, in
    ImportError: No module named mime.text

    Gruß Herry

      • Ich weiß nicht ob es jmd schon geschrieben hat oder so, aber ich hatte den gleichen Fehler und es war mein Problem, das mein Script email.py hieß ^^ das war der Fehler. Nach dem umbennen hats geklappt. Vlt hilfts jmd ^^

  5. Hallo Kampi,
    Erst mal danke für die Anleitung. E-Mail über Python klappt bei mir .
    Habe nun Mono installiert um den E-Mail Versand mit C# zu testen. Das C# Programm funktioniert auf meinem Windows PC. Auf dem Raspberry bekomme ich aber Fehlermeldungen z.B. Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates (Mono.Security.X509.X509CertificateCollection certificates) [0x00000] in :0

    sind es evtl. fehlende Zertifikate auf dem Raspberry. ?
    Warum geht es aber mit Python ?

    Danke
    Gruß
    Armin

    • Hey Arnim,

      ich weiß nicht genau wo der Unterschied zwischen dem C# Programm und dem Python Programm ist.
      Hast du das C# Programm auf dem Pi neu kompiliert oder direkt von deinem Windowsrechner übertragen?
      Da die beiden Rechner sich in der Architektur unterscheiden, musst du das Programm auf dem Pi neu kompilieren.

      Gruß
      Daniel

      • Hallo Daniel,
        diese Zeile ist auf dem Raspberry zusätzlich nötig damit es mit C# funktioniert. Auf meinem PC funktioniert das C# Programm auch ohne diese Zeile.
        ServicePointManager.ServerCertificateValidationCallback = delegate(object s,X509Certificate certificate,X509Chain chain, SslPolicyErrors sslPolicyErrors){ return true; };

        Anbei noch das vollständige Programm

        using System;
        using System.Text;
        using System.Net.Mail;
        using System.Net.Security;
        using System.Net;
        using System.Security.Cryptography.X509Certificates;
        namespace ConsoleApplication1
        {
        class Program
        {
        static void Main(string[] args)
        {
        MailMessage Email = new MailMessage();
        MailAddress Sender = new MailAddress(„AbsenderAdresse@xx.de“); //Absender
        Email.From = Sender;
        Email.To.Add(„xxx@yyy“); // Empfänger hinzufügen
        Email.Subject = „Mail von Raspberry Pi“; // Betreff hinzufügen
        Email.Body = „hi hi es funzt“; // Nachrichtentext hinzufügen
        string ServerName = „smtp.1und1.de“; // hier entsprechend dem Provider eintragen (Beispiel 1und1)
        string Port = „587“;
        SmtpClient MailClient = new SmtpClient(ServerName, int.Parse(Port)); // Postausgangsserver definieren
        MailClient.EnableSsl = true;
        MailClient.Credentials = new System.Net.NetworkCredential(„AbsenderAdresse@xx.de“, „MeinPasswort“) as ICredentialsByHost; ; // Anmeldeinformationen setzen*/
        ServicePointManager.ServerCertificateValidationCallback = delegate(object s,X509Certificate certificate,X509Chain chain, SslPolicyErrors sslPolicyErrors){ return true; };
        MailClient.Send(Email); // Email senden
        }
        }
        }

  6. Hallo Kampi,
    danke für deine ganzen Tipps zum Thema RaspberryPi. Habe hier einige Anregungen und Lösungen zu meinen Problemen gefunden…heute auch wegen dem neuerdings von GMX auferlegten Zwang eine TLS oder SSL-Verschlüsselung beim Postversand zu verwenden. In diesem Kapitel oben habe ich nichts darüber gefunden, zum Glück habe ich mir das von die zur Verfügung gestellte Script auch angesehen und dort die Passage
    smtpserver.starttls() gefunden … woanders hätte ich mich bestimmt dusselig gesucht.

    Mach bitte weiter…ist sehr informativ deine Elektroecke.
    Thomas

    • Hallo Thomas,

      danke für das Kompliment und den Tipp. Ich denke der ein oder andere wird dies auch eventuell benötigen.

      Gruß
      Daniel

  7. Hallo Daniel,

    habe schon des öfteren deine super Tutorials verfolgt und eingesetzt und bin jedesmal auf die gewünschte Lösung meiner Projekte gekommen, außer bei diesem E-Mail Tutorial.

    Mein Vorhaben: Ich möchte, den E-Mail Versand nicht über die Kommandozeile starten sondern eine Email verschicken lassen, sobald sich ein GPIO Eingang auf bsplsw. HIGH ändert. Wie liese sich dies realisieren, dass dein Email Skript startet sobald der Pin HIGH ist?

    den GPIO Eingang frage ich mich folgendem Python Skript ab:

    from RPi import GPIO
    import time
    from time import sleep
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

    while True:
    try:
    pin_status11 = GPIO.input(11)
    if pin_status11 == GPIO.HIGH:
    print (time.asctime()
    >>HIER SOLLTE DIE EMAIL VERSENDET WERDEN<<

    except KeyboardInterrupt:
    GPIO.cleanup()

    GPIO.cleanup()

    Danke und schönen Gruß,

    Markus

      • danke für den Link, habe mir den Inhalt durchgelesen und versucht zu verstehen, doch leider nicht so richtig umsetzen können.

        Könntest du mir in meinem vorhanden Skript evtl. ein Beispielbefehl mit os.system() einbauen?

        Das würde mir sicher helfen.

        Danke schonmal

        Gruß
        Markus

        • Hallo Markus,

          das ist im Grunde ganz simpel:

          from RPi import GPIO
          import time
          from time import sleep
          GPIO.setmode(GPIO.BOARD)
          GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

          while True:
          try:
          pin_status11 = GPIO.input(11)
          if pin_status11 == GPIO.HIGH:
          print (time.asctime()
          os.system(„python /home/pi/Desktop/Autostart/Mail.py 5 10“)

          except KeyboardInterrupt:
          GPIO.cleanup()

          GPIO.cleanup()

          Damit wird das Mailprogramm geöffnet und eine E-Mail mit dem Text „5“ und „10“ gesendet.

          Gruß
          Daniel

          • Hallo, Ich möchte wie Markus, den E-Mail Versand nicht über die Kommandozeile starten sondern eine Email verschicken lassen, sobald sich ein GPIO Eingang auf bsplsw. HIGH ändert. Wie binde ich die Datei nun ein, damit sie automatisch mit dem Pi gestartet wird und wie müssen die root Rechte dazu aussehen? Danke im voraus! Gruß Gerd (Anfänger)

  8. Hallo Kampi,
    es ist einfach Klasse, Dein Skript in meinen Raspi kopiert, meine Daten angepasst, gestartet und funktioniert auf den ersten Klapps.
    Nun möchte ich aber von FHEM z.B. bei „Batterie leer“ eine Mail senden – wie stelle ich denn hier eine Verbindung her ?
    Bin schon etwas älter (68) und brauche etwas Hilfe.
    Freue mich auf eine Antwort.
    Gruß Peter

    • Hallo Peter,

      mit FHEM kenne ich mich leider gar nicht aus.
      Aber die erste Frage die ich mir stelle: Wie bekommt der Raspi mit, dass die Batterie leer ist? Hast du da eine Erweiterung oder was ähnliches?

      Gruß
      Daniel

      • Hallo Kampi,
        die Meldung „Batterie leer“ wird ind FHEM erzeugt. Mittlerweile kann ich aus FHEM mit folgendem Kommando :
        define AC_03_UPuebw DOIF ([AC_Relais_03:state] eq „on“) ({ system(„python /home/pi/Desktop/Autostart/Mail.py Umwaelzpumpe an“) } DOELSE { system(„python /home/pi/Desktop/Autostart/Mail.py Umwaelzpumpe aus“) })
        attr AC_03_UPuebw wait 3

        richtig schön eine email senden.
        Allerdings such ich noch die Möglichkeit für andere Alarmsignale eine SMS an mein Handy zu senden. Mit Mail.py hat es nicht funktioniert da ich nicht weiss wo man das „Subjekt“ (Passwort in Betreff) in dem Mail.py script einfügen soll.
        Gruß Peter

        • Hallo Kampi,
          wollte mitteilen, dass ich nun mit sendmail alles im Griff habe, kann sowohl email wie auch sms absetzen und empfangen.
          Noch einmal danke für das Interesse und es gibt bestimmt noch weitere Möglichkeiten zur Unterstützung, denn der Raspi stachelt zu weiteren Untaten an.
          Beste Grüße aus dem Nordschwarzwald
          von Peter

          • Hallo Peter,

            freut mich das du es alleine geschafft hast :)
            Falls du weitere Fragen hast, schreib mir ruhig direkt eine E-Mail.

            Gruß
            Daniel

  9. Hallo Kampi, bitte nicht wegen der email adresse zurückschrecken !! ;) ist zur probe vom versenden ^^
    ich sitze gerade mit einem kollegen aus der schule am versenden der emails und bekommen ständig diese fehlermeldung:

    NameError: name ‚datum‘ is not defined

    dieser Fehler tritt auch bei ‚msg‘ auf.

    lg Peter ;)

  10. Hallo Kampi,
    ich finde deine Scripte super hilfreich. Habe schon eingies von dir lernen können.
    Leider bekomme ich bei dem E-Mai script einige Fehler ausgespuckt.
    Und zwar habe ich Pythonscript für zwei Argumente übernommen und wollte mal Testen ob ich eine Email erhalte. Folgender Fehler wird mir angezeigt:

    Traceback (most recent call last):
    File „/home/pi/Desktop/mail.py“, line 11, in
    smtpserver = smtplib.SMTP(’smtp.web.de‘, 587)
    File „/usr/lib/python2.7/smtplib.py“, line 249, in _init_
    (code, msg) = self.connect(host, port)
    File „/usr/lib/python2.//smtplib.py“, line 309, in connect
    self.sock = self._get_socket(host, port, self.timeout)
    File „/usr/lib/python2.7/smtplib.py“, line 284, in _get_socket
    return socket.create_connection((port, host), timeout)
    File „/usr/lib/lib/python2.7/socket.py“, line 571, in create_connection
    raise err
    socket.error: [Errno 110] Connection timed out

    So das war die Fehlermeldung

    Wir benutzen das Raspbian Wheezy Version May 2015. Kann es sein das wir ein zu neues Python benutzen? oder Woran könnte das Problem liegen?
    Außerdem benutzen wir zwei E-Mail Adressen von web.de, diser passt auch mit dem Port 587 zusammen.
    Außerdem haben wir das ganze “/home/pi/Desktop/mail.py“ hierrüber laufen, wobei das doch keinen unterschied macht ob wir den Ordner von dir mit Autostart ansprechen oder nicht.
    Wir wollten ersteinmal Probieren ob die Mail funktioniert, sind aber an der Fehlermeldung gerade überfordert.

    Danke für deine Bemühungen

    • Hallo Kevin,

      das sieht mir nach einem Verbindungsproblem aus. Sicher das die URL des Servers stimmt, weil die Zeile vom Interpreter als Fehlerhaft angemerkt wird.

      Gruß
      Daniel

  11. Hallo Kampi,

    Ich habe es wie von Dir beschrieben prorammiert und main Raspi sendet mir wurderbar Mails.
    Nur eine Frage: Ich bin nicht in der Lage ( ich schreibe in C ) es dem Programm beizubringen bzw. einen Text so in den Buffer zu setzten, dass die Ausgabe in meiner Mail dann auch einen gewünschten Zeilenumbruch setzt.
    ( Wie z.B:
    Hallo
    Gunnar
    )
    Kann Du mir da vielleicht einen Tipp geben ?

  12. Ja, habe ich.
    Im einem String geht das auch mit \n.
    Nur wenn das dann über die folgende Befehlkette kommt erscheint nur das Hallo !

    sprintf(Buffer, „/usr/bin/python /home/pi/Desktop/Autostart/Mail.py %s „, „Hallo \n Gunnar“);
    system(Buffer);

    -> Ergebnis in der Mail ist nur : Hallo

  13. Hallo, erstmal danke für die Top-Seiten welche mir Raspi-Einsteiger schon viel geholfen haben. Nur jetzt habe ich ein Problem. Will ich nach dieser Anleitung eine mail verschicken (per python-Script) erhalte ich folgenden Fehler:
    „socket.gaierror: [Errno -2] Name or service not known“
    Ist laut Google nicht so selten, aber dort alles in Englisch mit dem ich nicht so klar komme ;-(
    Hast du dazu ggf. einen Hinweis in welcher Richtung ich da suchen muss?
    Danke Jürgen

    • Update! Es funktioniert wieder. Bin da tatsächlich in meine eigene Falle getappt. Habe die letzten 3 Monate ausschließlich per PuTTY und WinSCP den Raspi bearbeitet. Aber immer nur im lokalen Netz! Und so nicht bemerkt das der Raspi nicht online geht. Warum auch immer. System neu aufgesetzt und es funktioniert. Sogar ddclient geht wieder;-)
      Grüße Jürgen

  14. Hallo Leute, ich hätte eine Frage:
    Ich habe ein „C-Programm“ geschrieben, dort funktioniert das Versenden der Ausgabe ohne Probleme. Nun würde ich jedoch das „print“ eines Python-Programms versenden. Kann mir jemand helfen, wie ich ich das Programm umbauen muss,damit es eine E-Mail versendet?
    Dabei sieht das Programm so aus:
    import RPi.GPIO as GPIO
    import time

    SENSOR_PIN = 23
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(SENSOR_PIN, GPIO.IN)
    def mein_callback(channel):
    # Hier kann alternativ eine Anwendung/Befehl etc. gestartet werden.
    print(‚Es gab eine Bewegung!‘)
    try:
    GPIO.add_event_detect(SENSOR_PIN , GPIO.RISING, callback=mein_callback)
    while True:
    time.sleep(100)
    except KeyboardInterrupt:
    print „Beende…“
    GPIO.cleanup()

    „Es gab eine Bewegung“ soll dabei per E-Mail versendet werden.

    Danke und lg

      • Hallo,

        vielen Dank für deine Hilfe, jetzt funktionierts!

        Musste einfach die Zeile „os.system(„python Mail.py Es gab eine Bewegung!“)“ hinzufügen.

        Nochmals danke!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload CAPTCHA.