DebianMail Perl Warnungen

Begonnen von Burny4600, 31 Juli 2016, 11:40:48

Vorheriges Thema - Nächstes Thema

Burny4600

Habe im Log immer DebianMail Perl Warnungen obwohl der Mail Versand funktioniert.

2016.07.31 11:32:29 1: sendEmail RCP: xxxxxx@xxx-xxxxx.at
2016.07.31 11:32:29 1: sendEmail Subject: FHEM - Solaranlage R1 keine Strömung: R1A
2016.07.31 11:32:29 1: PERL WARNING: Use of uninitialized value $text in concatenation (.) or string at ./FHEM/99_myUtils.pm line 45.
2016.07.31 11:32:29 1: sendEmail Text:
2016.07.31 11:32:29 1: PERL WARNING: Use of uninitialized value $attach in concatenation (.) or string at ./FHEM/99_myUtils.pm line 46.
2016.07.31 11:32:29 1: sendEmail Anhang:
2016.07.31 11:32:29 1: PERL WARNING: Use of uninitialized value $text in concatenation (.) or string at ./FHEM/99_myUtils.pm line 48.
2016.07.31 11:32:29 1: PERL WARNING: Use of uninitialized value $attach in concatenation (.) or string at ./FHEM/99_myUtils.pm line 48.
2016.07.31 11:32:30 1: sendEmail returned: Reading message body from STDIN because the '-m' option was not used.If you are manually typing in a message:  - First line must be received within 60 seconds.  - End manual input with a CTRL-D on its own line.Jul 31 11:32:29 ccs-ht-rasp01 sendEmail[1620]: Message input complete.Jul 31 11:32:30 ccs-ht-rasp01 sendEmail[1620]: Email was sent successfully!
2016.07.31 11:32:30 1: sendEmail RCP: xxxxxx@xxx-xxxxx.at
2016.07.31 11:32:30 1: sendEmail Subject: FHEM - Solaranlage R4 keine Strömung: R4A
2016.07.31 11:32:30 1: sendEmail Text:
2016.07.31 11:32:30 1: sendEmail Anhang:
2016.07.31 11:32:31 1: sendEmail returned: Reading message body from STDIN because the '-m' option was not used.If you are manually typing in a message:  - First line must be received within 60 seconds.  - End manual input with a CTRL-D on its own line.Jul 31 11:32:31 ccs-ht-rasp01 sendEmail[1622]: Message input complete.Jul 31 11:32:31 ccs-ht-rasp01 sendEmail[1622]: Email was sent successfully!

Kann ich um diese Perl Warnung zu verhindern daran etwas ändern.
##############################################
# $Id: 2016-06-15 10:31:44 V1.0 CCS $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.


1;


######## DebianMail  Mail auf dem RPi versenden ###################
# lokales Email Gerät zur Versendung der Alarme
# 2016.05.15
#

sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $attach = shift;
my $ret = "";
my $sender = "ccs-ht-rasp01\@xxx-xxxxx.local";
my $konto = "ccs-ht-rasp01#xxx-xxxxx.local";
my $passwrd = "xxxxxxxx";
my $provider = "192.xxx.xxx.xxx:4587";
# my $provider = "smtp.provider.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=no -o message-charset=utf-8);
$ret =~ s,[\r\n]*,,g;    # remove CR from return-string
Log 1, "sendEmail returned: $ret";
}
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

betateilchen

Die Meldung tritt immer dann auf, wenn Du DebianMail ohne Nachrichteninhalt und/oder ohne Anhang aufrufst.

Entweder, Du baust die Verwendung von $text und $attach in qx() einfach aus, wenn Du sicher bist, dass Du nie einen Nachrichteninhalt oder einen Anhang verschicken wirst.

Oder Du sorgst dafür, dass die Variablen gefüllt sind - und sei es mit "nix".


sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
    $text //= "";
my $attach = shift;
    $attach //= "";

...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Burny4600

Wei müsste ich den Aufbau machen damit ich einen Text befülle?
Derzeit habe ich die Meldung so aufgebaut.

([R1A] eq "ALARM")
({DebianMail
('xxxxxx@xxx-xxxxx.at', 'FHEM - Solaranlage R1 keine Strömung: $DEVICE')}, setreading R1A $DEVICE ALARM)
DOELSEIF
([R1A] eq "OK")
(setreading R1A $DEVICE OK)

DebianMail habe ich nach einer Anleitung aufgebaut.
Das dürfte aber dann nicht komplett gewesen sein.
Hast du eine vollständige Anleitung für mich?
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

betateilchen

Die Änderungen habe ich doch schon in meiner letzten Antwort gepostet?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Burny4600

Ich habe dich schon verstanden, nur wenn ich eine Nachricht wirklich generieren möchte past es doch in der Grundkonfiguration.
Wenn ich einen Text senden möchte muss die Weiterleitung wahrscheinlich so aussehen.
('xxxxxx@xxx-xxxxx.at', 'FHEM-Meldung', 'FHEM - Solaranlage R1 keine Strömung: $DEVICE', '')}, setreading R1A $DEVICE ALARM)

Aufbau Mailversand dürfte im vollem Umfang dan so aussehen.
('Empfängeremail', 'Betreff', 'Nachricht', 'Attachement')}, setreading R1A $DEVICE ALARM)
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess