Hallo zusammen,
ich weis, dass das Thema schon oft hier behandelt worden ist.
Habe schon Stunden in div. Foren verbracht, alle Versuche scheitern aber... (keine Email kommt an)
Woran liegt es? Danke für Eure Hilfe
Ich erhalte den Fehler in der LOG
2017.02.23 17:28:00 1: sendEmail RCP: xxxxxx.xxxxxx@t-online.de
2017.02.23 17:28:00 1: sendEmail Subject: Subject
2017.02.23 17:28:00 1: sendEmail Text: Text
2017.02.23 17:28:00 1: sendEmail Anhang:
sh: 1: sendEmail: Text file busy
2017.02.23 17:28:00 1: sendEmail returned:
Nachfolgen der Code in der 99_myUtils.pm
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $attach = shift;
my $ret = "";
my $sender = "xxxxxx.xxxxxx\@t-online.de";
my $konto = "xxxxxx.xxxxxx\@t-online.de";
my $passwrd = "xxxxxxxxx";
my $provider = "smtp.securesmtp.t-online.de:587";
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
Log 1, "sendEmail Anhang: $attach";;
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -a '$attach' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=yes -o message-charset=utf-8);
$ret =~ s,[\r\n]*,,g; # remove CR from return-string
Log 1, "sendEmail returned: $ret";
}
Zum testen habe ich der fhem.cfg nachfolgenden Code (Ausnahmsweise aus der fhem.cfg kopiert)
define Sonstiges at *17:28:00 {\
DebianMail('xxxxxx.xxxxxx@t-online.de','Subject','Text');;\
}
funktioniert denn dein sendEmail auf der Kommandozeile?
Ich denke, das ist weniger ein FHEM Problem, sondern ein generelles Linux Problem. Google sagt mir auf die Schnelle, dass hier wohl mehrere Prozesse versuchen auf das selbe File zugreifen wollen...
Grüße,
Oli
Hallo,
das sendEmail auf der Kommandozeile funktioniert..
Was kann ich evt. noch tun?
Gruß Himi
Berechtigungen des FHEM users geprüft?
Du übergibst nur 3 Parameter an DebianMail, es erwartet aber als 4. Parameter ein Attachment. Vielleicht liegt es daran.
Übergib einfach einmal irgendeine Datei wie z.B. "/etc/hosts".
Gruß
Helmut
habe eine Datei angehängt.
hat aber den gewünschten Erfolg nicht gebracht.
in der LOG steht jetzt...
2017.02.23 18:35:00 1: sendEmail RCP: xxxxxx.xxxxxx@t-online.de
2017.02.23 18:35:00 1: sendEmail Subject: Subject
2017.02.23 18:35:00 1: sendEmail Text: Text
2017.02.23 18:35:00 1: sendEmail Anhang: /etc/hosts
sh: 1: sendEmail: Text file busy
2017.02.23 18:35:00 1: sendEmail returned:
Was ist mit den Berechtigungen? Hilft ein sudo sendEmail?
Edit: vorausgestzt, der fhem user ist ein sudoer
habe nach einem Tipp im Forum nachfolgende Berechtigung vergeben
sudo usermod -A -G tty pi
sowie
sudo usermod -A -G tty fhem
und dann
cd /opt
sudo chmod -R a+w fhem
damit sollte fhem alle benötigten Rechte haben.
Und mach noch ein:
sudo addgroup fhem dialout
und vielleicht
sudo addgroup fhem audio
somit hat fhem auch Zugriff um Mails zu verschicken und evtl. Sound auszugeben.
Jetzt steht im LOG
2017.02.23 18:52:00 1: sendEmail RCP: xxxxxx.xxxxxx@t-online.de
2017.02.23 18:52:00 1: sendEmail Subject: Subject
2017.02.23 18:52:00 1: sendEmail Text: Text
2017.02.23 18:52:00 1: sendEmail Anhang: /etc/hosts
/usr/bin/sendEmail: 1: /usr/bin/sendEmail: #!/usr/bin/perl: not found
/usr/bin/sendEmail: 38: /usr/bin/sendEmail: use: not found
/usr/bin/sendEmail: 39: /usr/bin/sendEmail: use: not found
/usr/bin/sendEmail: 40: /usr/bin/sendEmail: use: not found
/usr/bin/sendEmail: 47: /usr/bin/sendEmail: Syntax error: "(" unexpected
2017.02.23 18:52:00 1: sendEmail returned:
habe ich mich jetzt verrannt?
Zitat von: KernSani am 23 Februar 2017, 18:46:30
Was ist mit den Berechtigungen? Hilft ein sudo sendEmail?
Edit: vorausgestzt, der fhem user ist ein sudoer
Hi,
So ein Quatsch: sendEmail braucht kein sudo!
Auf den ersten Blick stehen da zu viele ;;;;;;; :o
Log 1, "sendEmail Anhang: $attach";;
Den Aufruf würde ich so machen:
define Sonstiges at *17:28:00 { DebianMail('xxxxxx.xxxxxx@t-online.de','Subject','Text','');;}
Gruß Otto
Zitat von: Otto123 am 23 Februar 2017, 19:09:05
Hi,
So ein Quatsch: sendEmail braucht kein sudo
Das ist mir klar, es könnte aber helfen, das Problem einzugrenzen, wenn's mit sudo funktioniert. Eine komplettes Umschiessen der Berechtigungen habe ich nicht erwartet
Zitat von: KernSani am 23 Februar 2017, 19:23:38
Das ist mir klar, es könnte aber helfen, das Problem einzugrenzen, wenn's mit sudo funktioniert. Eine komplettes Umschiessen der Berechtigungen habe ich nicht erwartet
Ja, aber jetzt ist der Arme völlig falsch abgebogen ;D
Die Sub ist einfach nicht tolerant gegen Fehler jeder Art. Übergabe Parameter einfach weglassen ist nicht. Das war der erste Fehler, der Eigentliche wird die zwei ;; hinter dem Log Eintrag sein - denke ich.
Gruß Otto
hab es mal bei mir eingerichtet, wie oben schon erwähnt ist hier ein ; zuviel
Log 1, "sendEmail Anhang: $attach";;
der Rest ist in Ordnung, bei mir funktioniert es auch ohne Attachment
wenn du in der fhem-eingabezeile folgendes eingibst, ändert sich dann etwas am Fehlerbild?
{ DebianMail('xxxxxx.xxxxxx@t-online.de','Test','Test-Text');; }
Hattest du im Vorfeld noch andere Fehler? z. B. invalid SSL_version oder sowas in der Art? musstest du im Vorfeld andere configs/files ändern/korrigieren?
VG
klaso
Zitat von: Otto123 am 23 Februar 2017, 21:12:22
Ja, aber jetzt ist der Arme völlig falsch abgebogen ;D
Ich bin mir gerade etwas unsicher, ob
sudo usermod -A -G tty pi
und
sudo usermod -aG tty pi
das Selbe sind... Ansonsten hat der TE gerade ein Problem mit dem pi user... (und ich ein schlechtes Gewissen)
Habe die Funktion Cut+Paste in die Utils genommen und auch das at-Kommando getestet. Funktioniert bei mir problemlos.
Gruß
Helmut
Danke für Eure Mithilfe :)
habe nochmals alles auf Anfang gesetzt und bin dann exakt wie im Wiki https://wiki.fhem.de/wiki/E-Mail_senden (https://wiki.fhem.de/wiki/E-Mail_senden)
beschrieben vorgegangen.
Die Eingabe in der Kommandozeile
{ DebianMail('xxxxxx.xxxxxx@t-online.de','Test','Test-Text');; }
hat auch keine Veränderung gebracht.
Habe immer noch den Fehler im LOG
2017.02.24 17:14:15 3: MaxCube device opened
2017.02.24 17:14:26 1: sendEmail RCP: xxxxxx.xxxxxx@t-online.de
2017.02.24 17:14:26 1: sendEmail Subject: Test-Betreff
2017.02.24 17:14:26 1: sendEmail Text: Test-Text
2017.02.24 17:14:26 1: sendEmail Anhang:
sh: 1: sendEmail: Text file busy
2017.02.24 17:14:26 1: sendEmail returned:
An der 99_myUtils.pm habe ich nichts mehr verändert.
Zitat von: Himi am 24 Februar 2017, 17:34:39
An der 99_myUtils.pm habe ich nichts mehr verändert.
Aber das hast Du in der 99_myUtils geändert ?
Log 1, "sendEmail Anhang: $attach";;
Gruß Otto