Beim erstmaligen versenden einer Email kommt eine Fehlermelung

Begonnen von Thoffi1978, 16 Mai 2016, 09:32:33

Vorheriges Thema - Nächstes Thema

Thoffi1978

Hallo,

wenn nach einem Neustart von FHEM eine Email verschickt wird kommt es immer zu einer Fehlermeldung.
Ab der zweiten Email dann nicht mehr.
Wieso kommt es zur Fehlermeldung?

Hier der Code zum versenden der Email:
{ DebianMail('Adresse@Empfänger.de', 'Fhem Pi', 'laeuft')}

Hier die Fehlermeldung:
2016.05.16 09:26:22 1: PERL WARNING: Use of uninitialized value $attach in concatenation (.) or string at ./FHEM/99_myUtils.pm line 69.
2016.05.16 09:26:22 1: sendEmail Anhang:
2016.05.16 09:26:22 1: PERL WARNING: Use of uninitialized value $attach in concatenation (.) or string at ./FHEM/99_myUtils.pm line 71.
2016.05.16 09:26:24 1: sendEmail returned: May 16 09:26:24 raspberrypi sendEmail[12584]: Email was sent successfully!


Hier die line´s aus der myUtlis:
62 my $sender = "fhem\@xxxxxxx";
63 my $konto = "xxxxxxxx\@";
64 my $passwrd = "xxxxxxx";
65 my $provider = "xxxxxxx";
66 Log 1, "sendEmail RCP: $rcpt";
67 Log 1, "sendEmail Subject: $subject";
68 Log 1, "sendEmail Text: $text";
69 Log 1, "sendEmail Anhang: $attach";;
70
71 $ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -a '$attach' -s '$provider' -xu  '$konto' -xp '$passwrd' -o tls=auto -o message-charset=utf-8);
72 $ret =~ s,[\r\n]*,,g;    # remove CR from return-string
73 Log 1, "sendEmail returned: $ret";
74 }
75
76 1;


Vielen Dank
Hoffi

MadMax-FHEM

Du hast kein attach (attachment) daher ist $attach in der Funktion uninitialized...
Das wird hier "angemosert"...

Entweder ein Attachment dazu, Variable initialisieren oder Funktion ändern (oder mit der einmal Warnung leben)...

Mail geht ja wahrsch. trotzdem raus...
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Thoffi1978

Die Mail geht trotzdem raus.

Was mich nur wundert ist, dass es nur beim ersten Mailversand diese Fehlermeldung gibt. Ab dem Zweiten nicht mehr.

Hoffi

dev0

Diese Warnungen (kein Fehler) werden nur einmal ausgegeben. Das ist einfach so ;)

franky08

#4
Weil nach dem ersten versenden die Variable dann initialisiert ist, da du ja einmal einen Anhang versendet hast.

P.S. Wenn dich das stört, dann initialisiere die Variable doch vor der ersten Verwendung, einfach oben in den Code

my $attach = "";
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

Thoffi1978

#5
@ franky08:   Jetzt kommt es zu folgender Meldung nach einen Restart von Fhem:
1: PERL WARNING: "my" variable $attach masks earlier declaration in same scope at ./FHEM/99_myUtils.pm line 62.


99_myUtils:
57 my $rcpt = shift;
58 my $subject = shift;
59 my $text = shift;
60 my $attach = shift;
61 my $ret = "";
62 my $attach = "";
63 my $sender = "fhem\@xxxxx.xxx";
64 my $konto = "xxxxx\@";
65 my $passwrd = "xxxx";
66 my $provider = "xxxx.xxx.xxx";

MadMax-FHEM

Du musst die Variable VOR der ersten Verwendung (Zuweisung per shift) initialisieren.
Bei Zuweisung dann das 'my' weglassen...
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)