e-Mail Nachricht senden

  • Hallo zusammen,

    ich möchte mir gerne eine mail-Nachricht bei einen bestimmten Ereignis senden lassen.

    Dazu habe ich mir mailnotify.sh installiert.

    http://www.gtkdb.de/index_36_2296.html


    Mit dem Befehl:

    pi@raspberrypi:~ $ mailnotify.sh "Test" "Dies ist eine Testnachricht."

    Aug 24 11:52:45 raspberrypi sendEmail[16663]: Email was sent successfully!

    wird mir auch die Nachricht erfolgreich gesendet.


    Wie, oder mit welchen PlugIn könnte ich mir in HomeKit einen Schalter einbauen der diesen Befehl (mailnotify.sh "Test" "Dies ist eine Testnachricht.") ausführt?

    DANKE schon mal für die Antworten..!

  • Das sollte mit dem cmdswitch2-Plugin funktionieren.


    Viel Erfolg!

  • Funktioniert leider nicht....

    aber danke für die Antwort.


    hier die config:


    "platform": "cmdSwitch2",

    "name": "CMD",

    "switches": [{

    "name": "test",

    "on_cmd": "mailnotify.sh 'Test' 'Dies ist eine Testnachricht.'",

    "off_cmd": "mailnotify.sh 'Test' 'Dies ist eine Testnachricht.'"


    Das Problem ist das Anführungszeichen "

    Hab ich mit einfachen Anführungszeichen ' ersetzt


    leider kein erfolg...

  • leider ohne erfolg..

    "on_cmd": "mailnotify.sh \"Test\" \"Dies ist eine Testnachricht\"",

    "off_cmd": "mailnotify.sh \"Test\" \"Dies ist eine Testnachricht\""

    Einmal editiert, zuletzt von septine ()

  • leider ohne erfolg..

    "on_cmd": "mailnotify.sh \"Test\" \"Dies ist eine Testnachricht\"",

    "off_cmd": "mailnotify.sh \"Test\" \"Dies ist eine Testnachricht\""

    Ich hab das Plugin mal vor eine halben Ewigkeit genutzt und kann es gerade bei mir selbst nicht testen. Bist du sicher, dass es an den Anführungszeichen liegt? Was passiert, wenn du den Schalter betätigst? Gibt es eine Fehlermeldung im Log?


    Ansonsten versuch doch bitte mal folgendes:


    "on_cmd": "sh /usr/local/bin/mailnotify.sh 'Test' 'Dies ist eine Testnachricht'"


    Den Pfad unter welchem dein Skript zu finden ist musst du gegebenenfalls anpassen.

  • Geht auch nicht, mit einem Backslash davor ebenfalls nicht.


    Im log sind auch keine Fehler.


    am_unix(sudo:session): session opened for user root by (uid=0)

    [8/24/2019, 1:56:46 PM] [CMD] Test is turned on.

    [8/24/2019, 1:56:52 PM] [CMD] Test is turned off.

  • Also wenn ich im Terminal den Befehl mit einfache Anführungsstrichen eingebe:

    pi@raspberrypi:~ $ mailnotify.sh 'Test' 'Dies ist eine Testnachricht'

    Aug 24 14:09:58 raspberrypi sendEmail[26685]: Email was sent successfully!


    wird die mail gesendet.


    Aber im PlugIn nicht


    "on_cmd": "mailnotify.sh 'Test' 'Dies ist eine Testnachricht.'",

    "off_cmd": "mailnotify.sh 'Test' 'Dies ist eine Testnachricht.'"

  • So, das war eine nette Knobelaufgabe. Um es kurz zu machen: das Skript hat wohl einen Fehler. Macht aber nichts, denn ich habe eine Lösung.


    Ich habe das Script um einige Debug-Messages erweitert, damit ich sehen konnte, was da wirklich passiert. Immer wenn ich mailnotify.sh "Test" "Dies ist eine Testnachricht." aufgerufen habe, hat meine Erweiterung in eine Datei geschrieben, welcher Befehl am Ende vom Script augeführt wird. Das Skript mailnotify.sh baut diesen Befehl nämlich nur zusammen.


    Der Befehl lautet:

    sendEmail -f fromAdress -t destAddress -u "subject" -m "message body" -s smtpserver -xu username -xp password -o tls=yes


    Das Skript mailnotify.sh macht dann daraus etwas mit echten Mailadressen und Passwort und anderem Zeugs, nämlich so:

    sendEmail -f [email protected] -t [email protected] -u "Test" -m "Dies ist eine Testnachricht." -s smtp.dummbatz.de -xu sschuste -xp geheim2 -o tls=yes


    Und dieser Befehl wird dann losgesendet und zack: eine Email ist auf dem Weg. Kennst du, hast du ja selber auf der Shell getestet.


    Ich habe dann erst homebridge-cmdswitch2 getestet (ging nicht) und dann das, was ich normalerweise nutze, nämlich homebridge-cmdtrigger (ging auch nicht). Führt man den Befehl auf der Shell aus, geht's. Nimmt man irgendein Plugin, geht's nicht. Ich habe die Plugins so konfiguriert:


    Code
    "command": "/usr/local/bin/mailnotify.sh \"Test\" \"Dies ist eine Testnachricht.\"",


    Wenn man dann in Home die Schaltfläche drückt, dann kommt als Befehl in mailnotify.sh heraus (ich verkürze es mal):

    sendEmail -f sschuste@d .... -xu sschuste -xp geheim2 -o tls=no


    Wenn man es auf der Shell eingibt (ebenfalls verkürzt):

    sendEmail -f sschuste@d .... -xu sschuste -xp geheim2 -o tls=yes


    Und das macht den Unterschied aus: während der Befehl auf der Shell ein korrektes tls=yes enthält, ist es beim Aufruf per Home ein tls=no. WTF??? Das Ergebnis zumindest ist, das der Mailserver, über den die Mail versendet werden soll, diese ablehnt, und daher kommt auch nie eine an.


    Ich habe dann mailnotify.sh abgeändert.


    sudo nano /usr/local/bin/mailnotify.sh


    Ziemlich weit unten findet man dieses Zeugs:


    Hier muss eine Zeile geändert werden, nämlich if [ ${USETLS} == 1 ]; then

    und zwar in if [ ${USETLS} = 1 ]; then

    aus dem == wird ein =


    Damit klappt's dann sowohl auf der Shell als auch in Home. Bitte erwartet keine Erklärung, weil ich keine habe.


    Stefan