shell Kommando ausführen { } (e-mail)

Begonnen von broadway, 18 Dezember 2012, 15:21:33

Vorheriges Thema - Nächstes Thema

broadway

                                                 

Hallo,

ich habe FHEM auf einer Linksys NSLU2 unter debian installiert.
Von der Konsole kann ich erfolgreich mails verschicken mit dem Befehl:

> sendEmail -f ich@gmail.com -t empfaenger@xy.de -u Betreff Test -m "Test
> Nachricht" -s smtp.gmail.com -o tls=yes -xu username -xp password


Nun habe ich in FHEM ein notify wie folgt erstellt:

> define emil notify emil { sendEmail -f ich@gmail.com -t empfaenger@xy.de
> -u Betreff Test -m "Test Nachricht" -s smtp.gmail.com -o tls=yes -xu
> username -xp password}


Leider funktioniert es nicht, im Log-File steht nach "trigger emil":

> emil return value: syntax error at (eval 63) line 1, near "sendEmail -f "


Hoffentlich hat jemand eine Lösung!

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Linksys NSLU2 debian + CUL | FHT80B, FS20, Elro

borsti67

                                                 

Verdopplung des @?


Am 18. Dezember 2012 15:21 schrieb broadway :

> Hallo,
>
> ich habe FHEM auf einer Linksys NSLU2 unter debian installiert.
> Von der Konsole kann ich erfolgreich mails verschicken mit dem Befehl:
>
>> sendEmail -f ich@gmail.com -t empfaenger@xy.de -u Betreff Test -m "Test
>> Nachricht" -s smtp.gmail.com -o tls=yes -xu username -xp password
>
>
> Nun habe ich in FHEM ein notify wie folgt erstellt:
>
>> define emil notify emil { sendEmail -f ich@gmail.com -t empfaenger@xy.de-u Betreff Test -m "Test Nachricht" -s
>> smtp.gmail.com -o tls=yes -xu username -xp password}
>
>
> Leider funktioniert es nicht, im Log-File steht nach "trigger emil":
>
>> emil return value: syntax error at (eval 63) line 1, near "sendEmail -f "
>
>
> Hoffentlich hat jemand eine Lösung!
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
cu/2
Borsti
---
FHEM 5.8 auf Synology DS211j (bis 11/17) | FHEM 6.0 auf Raspi Zero W (bis 11/20) | FHEM 6.2 als VM in Synology DS1815+ (ab 11/20)

broadway

                                                 

Am Dienstag, 18. Dezember 2012 15:25:02 UTC+1 schrieb Borsti67:
>
> Verdopplung des @?
>

Danke für die schnelle Antwort. Aber leider nein, Ergebnis:

2012.12.18 15:31:04 3: emil return value: syntax error at (eval 64) line 1,
> near "sendEmail -f "
>
Global symbol "@gmail" requires explicit package name at (eval 64) line 1.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Linksys NSLU2 debian + CUL | FHT80B, FS20, Elro

Guest

Originally posted by: <email address deleted>

Hi,

hab jetzt nur überflogen, aber sollte es nicht ich\@gmail.com lauten?
(laut perl)
lG
Martin


Am 18.12.2012 15:21, schrieb broadway:
> Hallo,
>
> ich habe FHEM auf einer Linksys NSLU2 unter debian installiert.
> Von der Konsole kann ich erfolgreich mails verschicken mit dem Befehl:
>
>     sendEmail -f ich@gmail.com -t empfaenger@xy.de -u Betreff Test -m
>     "Test Nachricht" -s smtp.gmail.com -o tls=yes -xu username -xp
>     password
>
>
> Nun habe ich in FHEM ein notify wie folgt erstellt:
>
>     define emil notify emil { sendEmail -f ich@gmail.com -t
>     empfaenger@xy.de -u Betreff Test -m "Test Nachricht" -s
>     smtp.gmail.com -o tls=yes -xu username -xp password}
>
>
> Leider funktioniert es nicht, im Log-File steht nach "trigger emil":
>
>     emil return value: syntax error at (eval 63) line 1, near
>     "sendEmail -f "
>
>
> Hoffentlich hat jemand eine Lösung!
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo nochmal,

ah, nein du versuchst einen Shell aufruf zu machen!
nicht {} sondern "" verwenden! ;-)
Sonst machst du einen Perl aufruf (laut command ref) und dort gibt es
deine Befehle nicht!
lG
Martin


Am 18.12.2012 15:34, schrieb Martin Thomas Schrott:
> Hi,
>
> hab jetzt nur überflogen, aber sollte es nicht ich\@gmail.com lauten?
> (laut perl)
> lG
> Martin
>
>
> Am 18.12.2012 15:21, schrieb broadway:
>> Hallo,
>>
>> ich habe FHEM auf einer Linksys NSLU2 unter debian installiert.
>> Von der Konsole kann ich erfolgreich mails verschicken mit dem Befehl:
>>
>>     sendEmail -f ich@gmail.com -t empfaenger@xy.de -u Betreff Test -m
>>     "Test Nachricht" -s smtp.gmail.com -o tls=yes -xu username -xp
>>     password
>>
>>
>> Nun habe ich in FHEM ein notify wie folgt erstellt:
>>
>>     define emil notify emil { sendEmail -f ich@gmail.com -t
>>     empfaenger@xy.de -u Betreff Test -m "Test Nachricht" -s
>>     smtp.gmail.com -o tls=yes -xu username -xp password}
>>
>>
>> Leider funktioniert es nicht, im Log-File steht nach "trigger emil":
>>
>>     emil return value: syntax error at (eval 63) line 1, near
>>     "sendEmail -f "
>>
>>
>> Hoffentlich hat jemand eine Lösung!
>> --
>> To unsubscribe from this group, send email to
>> fhem-users+unsubscribe@googlegroups.com
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Asuries

                                                     

Hi broadway,

ähnliche Probleme hatte ich auch mit sendemail.
Mit hat das Wiki echt gut geholfen:
http://www.fhemwiki.de/wiki/E-Mail_senden
Unter Raspberry Pi findest Du die Lösung.
Ich habe das ganz dann noch erweitert, so das ggfl. noch Anhänge in Form
von JPGs
von der Webcam mit versendet werden oder einfach nur ne Mail wenn ein
definierter Zustand
erreicht ist....

Gruß
Stefan

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Es gibt immer Leute die meinen, sie seien schlauer als ich. Das Schlimmste ist, sie sind es auch.

broadway

                                                 

@Stefan: Ja, das Beispiel habe ich gesehen. Bevor ich eine Prozedur
einbinde, sollte aber erstmal der statische send-Befehl funktionieren.
Warum ist der Befehl dort noch mit qx() eingepackt?

@Martin: Mit "" kommt schonmal das shell Kommando an, danke. Jetzt bekomme
ich als Meldung im Log:

> sh: sendEmail: not found

obwohl der gleiche Befehl bei Eingabe auf der Konsole funktioniert. Habe @
durch \@ ersetzt, hat auch nicht geklappt.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Linksys NSLU2 debian + CUL | FHT80B, FS20, Elro

Asuries

                                                     

Hi,

Das qx steht für quoted executable. Die darin eingeschlossene Zeichenkette wird von Perl einfach in einen Kommandozeilenaufruf umgesetzt.
Ich fuchse mich auch erst seit ein paar Wochen in Perl rein, und lerne durch try & error aber das wird schon. :)
Gerade bei einfachen Dingen wie diesen ist der lernerfolg ziemlich groß!
Nur damit ich es auch verstehe: Warum willst Du den Statischen Sendemail Befehl zum laufen bekommen.
Über die Variante aus dem Wiki ist es meines Erachtens viel einfacher und es läuft! ;)

Gruss
Stefan

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Es gibt immer Leute die meinen, sie seien schlauer als ich. Das Schlimmste ist, sie sind es auch.

Guest

Originally posted by: <email address deleted>

Meiner Meinung nach musst du den kompletten Pfad (am Besten Absolut) zu dem Skript angeben.
Ich glaube, dass die Pfade der Path-Variablen nicht durchsucht werden...

Grüße Reinerlein


Am Dienstag, 18. Dezember 2012 20:09:46 UTC+1 schrieb broadway:
> @Stefan: Ja, das Beispiel habe ich gesehen. Bevor ich eine Prozedur einbinde, sollte aber erstmal der statische send-Befehl funktionieren. Warum ist der Befehl dort noch mit qx() eingepackt?
>
>
>
> @Martin: Mit "" kommt schonmal das shell Kommando an, danke. Jetzt bekomme ich als Meldung im Log:sh: sendEmail: not found
> obwohl der gleiche Befehl bei Eingabe auf der Konsole funktioniert. Habe @ durch \@ ersetzt, hat auch nicht geklappt.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

broadway

                                                 

Am Dienstag, 18. Dezember 2012 22:32:32 UTC+1 schrieb Stefan:
>
> Nur damit ich es auch verstehe: Warum willst Du den Statischen Sendemail
> Befehl zum laufen bekommen.
> Über die Variante aus dem Wiki ist es meines Erachtens viel einfacher und
> es läuft! ;)


Es sah mir zunächst zu kompliziert aus, aber es war ja ganz einfach
einzubinden. Es klappt! Beim direkten Befehl machen die ganzen
Sonderzeichen Probleme.


Am Mittwoch, 19. Dezember 2012 14:27:21 UTC+1 schrieb Reinerlein:
>
> Meiner Meinung nach musst du den kompletten Pfad (am Besten Absolut) zu
> dem Skript angeben.
> Ich glaube, dass die Pfade der Path-Variablen nicht durchsucht werden...
>

Du hattest Recht! Tausend Dank, es funktioniert einwandfrei. Der Befehl in
der Prozedur muss lauten:

$ret .= qx(*/usr/local/bin/*sendEmail -f '$sender' -t '$rcpt' -u '$subject'
-m '$text' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=yes);

 

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Linksys NSLU2 debian + CUL | FHT80B, FS20, Elro