Hallo
Irgenwie will das DebianMail aus dem Wiki für den RPi nicht bei mir.
Und ich habe keine Idee woran das liegen könnten.
Leider steht außer :
2013.12.07 18:24:28 3: read_s0_aussen: value 2.7
2013.12.07 18:25:09 1: reload: Error:Modul 99_myUtils deactivated:
2013.12.07 18:29:25 1: ECMD S0 (192.168.30.120:2701) reappeared
genau nichts( also die Leerzeile) als Grund im Log.
meine 99_myUtils sieht genau so aus :
sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $ret = "";
my $sender = "xxxxx\@t-online.de";
my $konto = "xxxxx\@t-online.de";
my $passwrd = "xxxxxxxxxxxxxxx";
my $provider = "securesmtp.t-online.de";
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=yes);
$ret =~ s,[\r\n]*,,g;
Log 1, "sendEmail returned: $ret";
};
Jemand eine Idee wo ich suchen kann ?
(Das senden per SendEmail auf der Kommandozeile funktioniert)
Gruß Ronald
Hallo,
ZitatJemand eine Idee wo ich suchen kann ?
Klar 8)
Schau mal hier:
$ret =~ s,[\r\n]*,,g;
Log 1, "sendEmail returned: $ret";
};
An die letzte } gehört kein ; dafür muss ganz am Schluss deiner 99_myUtils.pm das stehen 1;
Grüße
ZitatAn die letzte } gehört kein ;
Ok, das war nur ein Versuch von mir. Im Wiki ist das auch nicht drinn, aber ich weiß das Perl empfindlich auf fehlende ; reagiert.
Zitatdafür muss ganz am Schluss deiner 99_myUtils.pm das stehen 1;
Den Satz verstehe ich leider nicht ganz.
Heißt das meine 99_Utils.pm muss so enden ? :
$ret =~ s,[\r\n]*,,g;
Log 1, "sendEmail returned: $ret";
}
1;
Wenn ich das mache dann bekomme ich das ( und keine Meldung im Log):
fhem> reload 99_myUtils.pm
Undefined subroutine &main::myUtils_Initialize called at fhem.pl line 1818.
fhem>
Gruß Ronald
Hallo,
meine SUB in der 99_myUtils.pm sieht so aus:
######## DebianMail Mail auf dem RPi versenden ############
sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $ret = "";
my $sender = "xxx.yyy\@zzz.de";
my $konto = "abc.def\@zzz.de";
my $passwrd = "passwort";
my $provider = "smtp.zzz.de";
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=no);
$ret =~ s,[\r\n]*,,g; # remove CR from return-string
Log 1, "sendEmail returned: $ret";
}
Und ganz am Ende meiner 99_myUtils.pm habe ich das
1;
Das ist aber im Wiki auch so beschrieben.
Grüße
Danke für die Hilfe, ich habe Deinen Code kopiert, meine Daten in den 4 Zeilen geändert und :(
Gleiches Ergebnis :
fhem> reload 99_myUtils.pm
Undefined subroutine &main::myUtils_Initialize called at fhem.pl line 1818.
fhem>
Allerdings scheint das ein "kosmetischer Fehler" zu sein.
Wie es aussieht will er eine Routine "myUtils_Initialize" o.ä. aufrufen, die nicht existiert.
Die Funktion "DebianMail" wird aber offenbar angelegt, denn ich kann diese aufrufen.
fhem> {DebianMail('xxxxxx@t-online.de','Subjekt','TestText')}
fhem>
Und im Log steht dann :
2013.12.07 19:54:42 1: sendEmail RCP: xxxxxxx@t-online.de
2013.12.07 19:54:42 1: sendEmail Subject: Subjekt
2013.12.07 19:54:42 1: sendEmail Text: TestText
2013.12.07 19:54:45 1: sendEmail returned: Dec 07 19:54:45 rasp sendEmail[28836]: Email was sent successfully!
Und die Mail kommt an :) :)
Ich habe noch mal den Wiki-Artikel studiert. Einen Hinweis auf das "1;" konnte ich nicht finden.
Vielen Dank Ronald
Edit :
Ok, ich habe mal den Wiki-Eintrag zu "99_myUtils.pm" gefunden ....
Hallo,
ZitatOk, ich habe mal den Wiki-Eintrag zu "99_myUtils.pm" gefunden ....
Diesen habe ich auch gemeint ;D
Ok, und ich muss noch an meiner Kommunikation feilen :o
Aber damit sollte doch auch die Fehlermeldung behoben werden können oder nicht?
Grüße
Danke geht jetzt wie es soll.
Gruß Ronald
Zitat von: sky64 am 07 Dezember 2013, 20:05:15
Ich habe noch mal den Wiki-Artikel studiert. Einen Hinweis auf das "1;" konnte ich nicht finden.
Redest Du von diesem Wiki-Artikel: http://www.fhemwiki.de/wiki/99_myUtils_anlegen?
Da finde ich
4. Die Zeile 1; muss immer die letzte Programmzeile sein. Wenn Sie also eigene
Routinen in Ihre Programmsammlung einfügen, tragen Sie diese zwischen dem Ende der
Initialize-Routine und der abschließenden Zeile 1; ein.
Gruß, Peter
Hallo,
erst nein dann ja 8)
Ich meinte den von dir verlinkten - diesen hat der TE aber anschliessend gefunden.
Nun funktioniert seine Routine auch so wie ich das gelesen habe.
Grüße
Ok, das war dann wohl ein "nicht sinnvolles" nachträgliches verändern eines Eintrags ins Forum.
auch Grüße :)