Sendmail funktioniert nicht!?

Begonnen von Macshrek, 29 Oktober 2015, 11:14:22

Vorheriges Thema - Nächstes Thema

Macshrek

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

kumue

$cmd .= " $storage/".ReadingsVal($cam,"snapshot$s","");

..das sieht mir etwas merkwürdig aus.. snapshot$s

JoWiemann

Meinst Du wirklich "sendemail" oder doch "sendmail" ?!

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Macshrek

ok sieht nach einem Tippfehler aus, gleichwohl habe ich das gerade auf sendmail geändert, dass Ergebnis bleibt jedoch das gleiche?

Hollo

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';
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Macshrek

@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

marvin78

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.

Macshrek

;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  :)