Hallo,
gegeben sei folgende Funktion:
Aufruf über die FHEM Kommandozeile {ssmtpMail('stephan.name@gmail.com','Betreff','TestTestTest')}
#####E-Mailfunktion mit ssmtp
sub
ssmtpMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $returncode = system("echo '$text' | mail -s '$subject' '$rcpt'");
Log 1, "ssmtp RCP: $rcpt, Subject: $subject, Text: $text, Return: $returncode";
}
Müsste ich jetzt nicht in der Variablen $returncode den Return Code haben? Bzw. ich habe dort auch einen Wert und zwar -1. Falls das der tatsächliche Wert ist frage ich mich, warum ich nicht 0 zurück bekomme. Die Mail wird nämlich verschickt und im Mail Log sind auch keine Fehler.
Zum Gegentest habe ich folgendes externes Perl Skript genutzt:
#!/usr/bin/perl
$ret = system('echo text | mail -s subject stephan.nachname@gmail.com');
print $ret
Hier bekomme ich eine 0 - also erfolgreich - zurückgeliefert. pi@fhem:~$ sudo -u fhem ./test.pl 0
Warum nicht, wenn ich die Funktion in FHEM aufrufe?
Vielen Dank
Zitat von: stephanr am 25 Juni 2015, 22:40:31
... ich habe dort auch einen Wert und zwar -1.
Versuchs so:
sub
ssmtpMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
local $SIG{CHLD} = 'DEFAULT';
my $returncode = system("echo '$text' | mail -s '$subject' '$rcpt'");
Log 1, "ssmtp RCP: $rcpt, Subject: $subject, Text: $text, Return: $returncode";
}
Gruss
flurin
Klasse, das sieht gut aus. Vielen Dank!