[gelöst] Probleme mit RasPi, SendEmail und Attachments

Begonnen von KNUT345, 11 August 2022, 13:33:00

Vorheriges Thema - Nächstes Thema

KNUT345

Hallo Zusammen,
habe vor geraumer Zeit mein System von Stretch auf Buster aktualisiert
was mir jetzt auffällt ist, dass meine Alarm-Email mit angehängten Bildern nicht mehr versendet wird.
ZitatERROR => The attachment [Bild1.jpg Bild2.jpg] doesn't exist!
Mittlerweile ist mir aufgefallen, dass es die zwei Bilder und die Verknüpfung über das Leerzeichen ist.
Mit nur einem Bild funktioniert der Versand wie gehabt.
Die Verwendung von Komma oder Semikolon brachte keinen Erfolg.

Was mache ich falsch?
Hat jemand einen Tipp?

Grüße
Knut

MadMax-FHEM

Zitat von: KNUT345 am 11 August 2022, 13:33:00
Was mache ich falsch?

Zu wenig Informationen!

lists von beteiligten Devices (z.B. notify/DOIF/... welches das Senden auslöst), die Sub mit der du sendest, wo kommen die Bilder her, ...

Siehe: https://forum.fhem.de/index.php/topic,71806.0.html

Zitat von: KNUT345 am 11 August 2022, 13:33:00
Hat jemand einen Tipp?

Nein, siehe oben ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

KNUT345

OK, hab mir schon gedacht dass es zu dieser Antwort kommt.
Aber wie gesagt meine Routine funktioniert ja mit einem Foto im Anhang,
es geht doch nur um das Attachment mit zwei (oder mehr) Bilder,
das vor dem Update ja zuverlässig funktionierte.

Ich wollte mir schlichtweg das Xen sparen.
Bild1.jpg und Bild2.jpg sind Pfad+Name (hier vereinfacht)
Also nun mit mehr Info.

funktioniert nicht (und hat meines Wissens vor Update funktioniert)

({RPiMail('xxxx@web.de','Xxx meldet Eindringling in xxx','Hallo XX, wir haben in xxxx einen Eindringling an BewegungsmelderX detektiert.',"'Bild1.jpg' 'Bild2.jpg'")})\

Zitat
2022.08.11 13:09:34 1: sendEmail Attachment: 'Bild1.jpg' 'Bild2.jpg'
2022.08.11 12:57:39 1: sendEmail returned: Aug 11 12:57:39 raspi3 sendEmail[27024]: ERROR => The attachment [Bild1.jpg Bild2.jpg] doesn't exist!

funktioniert

({RPiMail('xxxx@web.de','Xxx meldet Eindringling in xxx','Hallo XX, wir haben in xxxx einen Eindringling an BewegungsmelderX detektiert.',"'Bild1.jpg'")})\

Zitat
2022.08.11 13:34:26 1: sendEmail Attachment: 'Bild1.jpg'
2022.08.11 13:34:27 1: sendEmail returned: Aug 11 13:34:27 raspi3 sendEmail[32166]: Email was sent successfully!


sub
RPiMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $attach = shift;
my $ret = "";
my $sender = "xxxx@web.de";
my $konto = "xxxx@web.de";
my $passwrd = "xxxx";
my $provider = "smtp.web.de:587";
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
Log 1, "sendEmail Attachment: $attach";

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

MadMax-FHEM

Hast du es mal auf der Linux-Console getestet?

Sind beide Bilder auch tatsächlich da ZU DEM ZEITPUNKT wo du die Mail senden willst?

Darum ja auch die Fragen nach lists: wie/wodurch wird ausgelöst und wo kommen die Bilder her...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

KNUT345

Die Bilder sind da, kann sie ja wie beschrieben einzeln verschicken.

Nein habe es nicht auf der Konsole probiert,
da ich außer den mir bekannten Befehl zu verwenden (und der funktioniert ja mit einem Bild)
mich mit Linux nicht auskenne und www brachte nichts Verwertbares.

Danke und Grüße
Knut

RalfRog

Ich denke auch, dass du dass mal auf der Linux Konsole testen musst.
Es ist halt das Kommando aus deiner Funktion zu verwenden. Der Teil hinter qx

sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -a '$attach' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=auto -o message-charset=utf-8)

Könnte mir gut vorstellen, dass bei 2 Parametern das Problem durch richtiges Setzen der einfachen in doppelten Anführungszeichen gelöst werden muss (damit steh ich auch immer auf Kriegsfuß).
So dass die Parameterübergabe von Perl in die Shell korrekt ist.
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

Otto123

#6
Da hast Du völlig Recht. Da habe ich seinerzeit wahrscheinlich einen Fehler in der Routine im Wiki eingebaut.
Mehrere Attachments müssen entweder -a Anhang1 Anhang2 oder -a 'Pfad mit Leerzeichen 1' 'Pfad mit Leerzeichen 2' übergeben werden.
In der Routine in der 99_myUtils muss aus -a '$attach' auf alle Fälle -a $attach werden. Dann kann man sich darum beim Aufruf kümmern, dass entweder keine Leerzeichen im Dateinamen sind oder man das Ganze in Hochkommas verpackt.
Beispiel
{DebianMail('xxx@xxx.de'," Subject Test 3","Text",'/opt/fhem/fhem.cfg /opt/fhem/MAINTAINER.txt')}
{DebianMail('xxx@xxx.de'," Subject Test 3","Text",'"/opt/fhem/fhem.cfg" "/opt/fhem/MAINTAINER.txt"')}
{DebianMail('xxx@xxx.de'," Subject Test 3","Text","'/opt/fhem/fhem.cfg' '/opt/fhem/MAINTAINER.txt'")}

Das kann eigentlich noch nie wirklich funktioniert haben :) ich habe das im Wiki geändert

Gruß Otto

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

KNUT345

Beide Dateinamen zwischen die Hochkommata hat schon funktioniert,
habe die Änderung an 99_myUtils dann nicht mehr gemacht.


({RPiMail('xxxx@web.de','Xxx meldet Eindringling in xxx','Hallo XX, wir haben in xxxx einen Eindringling an BewegungsmelderX detektiert.',"/opt/../Bild1.jpg /opt/../Bild2.jpg'")})\

Zitat
2022.08.12 19:34:05 1: sendEmail Attachment: '/opt/../Bild1.jpg /opt/../Bild2.jpg'
2022.08.12 19:34:08 1: sendEmail returned: Aug 12 19:34:08 raspi3 sendEmail[23607]: Email was sent successfully!

Danke für eure Unterstützung
Grüße
Knut

Otto123

Zitat"/opt/../Bild1.jpg /opt/../Bild2.jpg'"
Das sieht nach Fake aus. Aber mach wie Du denkst...
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

KNUT345

#9
Sorry, ja ist nicht der Orginalcode, aber so funktioniert es.
(habe das 1te ' vergessen)
Zitat
"'/opt/../Bild1.jpg /opt/../Bild2.jpg'"

Danke.