[gelöst] DebianMail Nonblockung HASH(0x...)

Begonnen von Rampler, 30 Juni 2021, 07:12:38

Vorheriges Thema - Nächstes Thema

Rampler

Hallo FHEM Fans,
ich nutze seit kurzem die Nonblockung Version von DebianMail.
Funktioniert soweit auch richtig gut, allerdings bekomme ich nach jedem Aufruf eine HASH(0x...) Meldung.
Mails werden einwandfrei verschickt.

###############################################################################################
# $Id: 99_myUtils.pm 99999 2017-03-28 15:43:17Z  $
###############################################################################################
package main;

use strict;
use warnings;
use POSIX;
use Blocking;

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

}
##############################################################################################
# DebianMail - NONBLOCKING
#  {setKeyValue("myEmailKonto",'user@domain');;setKeyValue("myEmailPasswrd",'password')}
##############################################################################################

sub DebianMail {

my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $hash->{NAME_MAIL} = "Debianmail";
my $name = $hash->{NAME_MAIL};

#$hash->{helper}{RUNNING_PID} = BlockingCall("DebianMailnbl_send", $name."|".$rcpt."|".$subject."|".$text);
$hash->{helper}{RUNNING_PID} = BlockingCall("DebianMailnbl_send", $name."|".$rcpt."|".$subject."|".$text."|","", "", "", "");
}

#Mailfunktion nonblocking           

sub DebianMailnbl_send {
my ($string) = @_;
my ($name, $rcpt, $subject, $text) = split("\\|", $string);
my $ret = "";
my $sender = "FHEM\@zuhause.de";
my $konto = getKeyValue("myEmailKonto");
my $passwrd = getKeyValue("myEmailPasswrd");;
my $provider = "smtp.1und1.de:587";

Log 1, "SendEmail: $rcpt - $subject";
 
$ret .= qx(sendemail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=auto -o message-charset=utf-8);
$ret =~ s,[\r\n]*,,g;    # remove CR from return-string
if ( $ret =~ /ERROR/ )
{Log 1, "sendEmail returned: $ret";}
}
1;


Nicht das das super wichtig wäre, würde mich aber dennoch interressieren woher das HASH(0x...) nach jedem Aufruf kommt.
Aufgerufen wird es so: {DebianMail('name@Online.de', 'FHEM Test', 'test')}
Ausgegebn wird dann ein: HASH(0x5419d90)
VG Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Beta-User

Na ja, das ist das implizite return-Verhalten von Perl-Subroutinen-Aufrufen. Es wird einfach das Ergebnis der letzten Zeile zurückgegeben, und das ist hier halt anscheinend eine hash-Referenz.
Eine zusätzliche Zeile mit einem simplen "return;" würde abhelfen.

PS: "use POSIX;" sollte raus!
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Rampler

You saved my day....
Ein return; brachte Abhilfe. Posix habe ich ausgebaut.
DANKE !!

VG Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Beta-User

 :) Immer wieder gerne.
[gelöst]  ;) ?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors