Hallo Zusammen,
ich habe jetzt eine FOSCAM C1 mit dem IPCAM Modul eingerichtet - das funktioniert soweit gut.
Gleichwohl möchte ich nun die Snapshots per Email versenden und bekomme im Logfile folgenden Eintrag:
2015.10.29 10:45:07 1: PERL WARNING: Can't exec "sendemail": No such file or directory at ./FHEM/99_myUtils.pm line 37
Leider hilft mir das nicht den Fehler zu erkennen.
Hier mal der Inhalt der 99_myUtils:
package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
#######################################
sub
sendSnapshot(@)
{
my ($cam,$snapshots) = @_;
my $storage = AttrVal($cam,"storage","");
my $rcpt = '*******************';
my $from = '******************';
my $usr = '********************';
my $pw = "********************" ;
my $smtp = "*********** :***";
my $subj = "FHEM: Kamera $cam hat ein Bild aufgezeichnet";
my $last = ReadingsTimestamp($cam,"last","");
my $mess = "Kamera $cam hat ein Bild am $last aufgezeichnet:";
if(!-d $storage) {
Log 1, "IPCAM $cam storagepath does not exists: $storage";
return "storagepath for $cam does not exists: $storage";
}
if(!$last) {
Log 1, "IPCAM $cam no snapshots available";
return "no snapshots available for $cam";
}
my $cmd = "sendemail -f $from -t $rcpt -s $smtp -xu $usr -xp $pw -u $subj -m $mess ";
$cmd .= "-o message-content-type=text -o message-charset=utf-8 -a";
for (my $s=1;$s<$snapshots+1;$s++) {
$cmd .= " $storage/".ReadingsVal($cam,"snapshot$s","");
}
my $ret = `$cmd`;
$ret =~ s/[\r\n]//g;
Log 4, "IPCAM sendSnapshot: $ret";
return undef;
}
1;
(Die ************* oben sind natürlich nur Platzhalter)
Was habe ich evtl. falsch gemacht ?? :-[
DANKE ! :D
Beste Grüße
macshrek
$cmd .= " $storage/".ReadingsVal($cam,"snapshot$s","");
..das sieht mir etwas merkwürdig aus.. snapshot$s
Meinst Du wirklich "sendemail" oder doch "sendmail" ?!
Grüße Jörg
ok sieht nach einem Tippfehler aus, gleichwohl habe ich das gerade auf sendmail geändert, dass Ergebnis bleibt jedoch das gleiche?
Hast Du denn sendmail auf Deinem System installiert ?
Ich sehe in Deiner Funktion auch keine Angabe zum Aufruf, so in der Richtung...
my $sendmail = '/usr/sbin/sendmail';
@hollo: danke für den Hinweis SENDMAIL auf dem Raspi fehlte noch; dafür gibt es dann jetzt folgende Meldung:
2015.10.29 13:20:49 1: PERL WARNING: Can't exec "sendmail": Permission denied at ./FHEM/99_myUtils.pm line 38.
2015.10.29 13:20:49 1: PERL WARNING: Use of uninitialized value $ret in substitution (s///) at ./FHEM/99_myUtils.pm line 39.
2015.10.29 13:20:49 1: PERL WARNING: Use of uninitialized value $ret in concatenation (.) or string at ./FHEM/99_myUtils.pm line 40.
:o
Das Tool, was ihr sucht, heißt tatsächlich sendEmail und nicht sendmail (siehe Wiki Artikel zu DebianMail). Ich würde aber immer zu exim4 greifen.
;D ;D STRIKE ! Es funktioniert !! ;D ;D
hier mein Lösungsweg:
1. habe ich noch mal die Beschreibung im FHEMWIKI für sendEmail durchgesehen und alles für den Raspi gecheckt
insbesondere habe ich noch mal per Konsole am Raspi die smtp-Einstellung getestet (smtp-adresse, port, etc.) bis ich nur noch den Hinweis auf
authentication failed bekam.
2. daraufhin die Einstellungen beim Email-Provider geprüft und siehe da, dort musste ich noch die Sicherheitsstufe für den Zugriff auf das Emailkonto geändert werden, da lt. aktuellen Einstellungen nur "sicherheitsqualifizierte Apps" zugelassen werden... :o
3. in der 99_utils noch die SMTP Einstellungen angepasst, Port 587, TLS=yes
4. und sendmail auf sendEmail geändert
fertig, funzt.
Danke eure Hilfe :)