DebianMail mehrere Anhaenge gleichzeitig versenden

Begonnen von RpiEinOzean, 27 August 2016, 22:04:49

Vorheriges Thema - Nächstes Thema

RpiEinOzean

Hallo zusammen,

ich habe folgendes Problem:

Ich möchte mehrere Bilder als Anhang an eine Mail versenden.
In ganz einfach funktioniert es ja schon.
Zum Beispiel:
define Sonstiges at *12:00:00 { DebianMail('e-mailAdresse@gmx.de','BetreffText','Text','/opt/fhem/www/snapshots/cam1/IPCam_snapshot.jpg');;}

Was ich noch nicht herausgefunden habe:
Ich möchte nicht nur IPCam_snapshot,jpg sonder auch IPCam_snapshot01.jpg und IPCam_snapshot02.jpg an diese Mail anhaengen.

Jemand einen Tipp fuer mich?

Gruß an alle. :D

DeeSPe

Vielleicht ein  Array oder eine Liste übergeben?
Ist jetzt wirklich nur geraten!!!

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Hollo

Zitat von: RpiEinOzean am 27 August 2016, 22:04:49
...Jemand einen Tipp fuer mich?
Pack die Bilder auf Deinem System zusammen (tar.gz oder zip oder ?) und häng dann das Paket an.  ;)
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"

Wernieman

Dann kann man die Bilder aber nicht sofort im EMail-Proggi sehen ...

DebianMail vewendet intern eigentlich sendEmail, welches mit "-a" einen oder mehrere Anhänge mitsenden kann.
Bis jetzt implementiert: "-a FILE", Du müsstest laut Doku also für Dich implementieren. "-a File1 File2 File3".

Alle Angaben ungetestet aus der Doku genommen.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

JoWiemann

Hallo,

das Problem liegt zunächst in der DebianEmail im Wiki:

Die Zeile:


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


muss in:

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


abgeändert werden. (Die '' beim $attach führen dazu, dass mehrere Dateien in einem String zusammengefasst werden und als ein Pfad/Datei interpretiert werden.)

Danach funktioniert dann auch folgender Aufruf:


{DebianMail('email@provider.de',"Anhaenge","Anhaenge","/opt/fhem/FrameRPi.jpg /opt/fhem/FrameRPi.png")}


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

Wernieman

Wichtig:
Danach darf aber KEIN Leerzeichen im Dateinamen/Dateipfad enthalten sein!
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

JoWiemann

Mist! Nicht drüber nachgedacht. Also doch etwas mehr Aufwand es umzusetzen :-(

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

JoWiemann

Geht doch. Mit folgendem Aufruf:


{DebianMail('email@provider.de',"Anhaenge","Anhaenge","'/opt/fhem/Frame RPi.jpg' '/opt/fhem/Frame RPi.png'")}


Wichtig ist es den Parameter mit " " zu übergeben und die Anhänge mit ' ' zu klammern.

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

Wernieman

Oder alternativ auf einem Unix-System im Dateinamen keine Leerzeichen (oder Sonderzeichen) verwenden.

Ist für die automatische Verarbeitung (meistens) optimaler, unabhängig von FHEM
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

RpiEinOzean

Vielen Dank,

hat sehr gut funktioniert.

In der 99_myUtils.pm Aenderung:
$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);

und:

*12:00:00 { DebianMail('mail-adresse@gmx.de','Bilder','4Kamerabilder',"  '/opt/fhem/www/snapshots/cam1/IPCam_snapshot.jpg' '/opt/fhem/www/snapshots/cam1/IPCam_snapshot_1.jpg' '/opt/fhem/www/snapshots/cam1/IPCam_snapshot_2.jpg' '/opt/fhem/www/snapshots/cam1/IPCam_snapshot_3.jpg' ") }

schickt mir jetzt als Mailanhang 4 Bilder.

Vielen, vielen Dank.  :D

Thoffi1978

Hallo,

ich habe mich so gut eingearbeitet. Doch leider bekomme ich keine Anhänge geschickt.
Der Pfad müßte stimmen, den Befehl habe ich von hier übernommen.
ich bekomme eine Email aber ohne Anhang zu geschickt.

Hier meine Befehl:
{ DebianMail('mail@mail.de', 'Bilder', 'Bilder'," '/opt/fhem/FHEM/Bilder/IPCam_WohnZi_snapshot.jpg ' '/opt/fhem/FHEM/Bilder/IPCam_WohnZi_snapshot1.jpg' ") }
my99utils:
$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)
List IPCam:
Internals:
   AUTHORITY  192.168.2.211:8080
   DEF        192.168.2.211:8080
   NAME       IPCam_WohnZi
   NR         371
   SEQ        0
   STATE      Defined
   TYPE       IPCAM
   .attreour:
     snapshots
   READINGS:
     2018-06-27 10:32:23   last            IPCam_WohnZi_snapshot.jpg
     2018-06-27 10:32:14   snapshot1       IPCam_WohnZi_snapshot_1.jpg
     2018-06-27 10:32:17   snapshot2       IPCam_WohnZi_snapshot_2.jpg
     2018-06-27 10:32:20   snapshot3       IPCam_WohnZi_snapshot_3.jpg
     2018-06-27 10:32:23   snapshot4       IPCam_WohnZi_snapshot_4.jpg
     2018-06-27 10:32:23   snapshots       4
Attributes:
   delay      3
   event-on-update-reading snapshots
   path       shot.jpg
   room       Wohnzimmer
   snapshots  4
   storage    /opt/fhem/FHEM/Bilder


Gruß
Hoffi

Otto123

Hi,
Dein Aufruf funktioniert genau so - getestet bei mir gerade eben.

Zeig mal bitte deine komplette sub in der 99_myUtils.pm

Oder überprüfe die Sub mit hier und überprüfe die PfadeNamen und Berechtigungen (für fhem lesen) auf den Bildern.

Edit: IPCam_WohnZi_snapshot_1.jpg vs IPCam_WohnZi_snapshot1.jpg  ;D ::)

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

Thoffi1978

Hallo Otto,

vielen Dank.
Ich habe die SUB einmal überprüft.
Da hatte ich bei
my $attach = shift; noch "" stehen.

Wenn ich den Befehl
{ DebianMail('mail@mail.de', 'Bilder', 'Bilder'," '/opt/fhem/FHEM/Bilder/IPCam_WohnZi_snapshot.jpg ' '/opt/fhem/FHEM/Bilder/IPCam_WohnZi_snapshot_1.jpg' ") }
aufrufe
bekomme ich hjezt aber die Fehlermeldung:
2018.07.01 13:22:41 1: sendEmail RCP: mail@mail.de
2018.07.01 13:22:41 1: sendEmail Subject: Bilder
2018.07.01 13:22:41 1: sendEmail Text: Bilder
2018.07.01 13:22:41 1: sendEmail Anhang:  '/opt/fhem/FHEM/Bilder/IPCam_WohnZi_snapshot.jpg ' '/opt/fhem/FHEM/Bilder/IPCam_WohnZi_snapshot_1.jpg'
2018.07.01 13:22:42 1: sendEmail returned: Jul 01 13:22:42 raspberrypi sendEmail[13052]: ERROR => The attachment [/opt/fhem/FHEM/Bilder/IPCam_WohnZi_snapshot.jpg ] doesn't exist!

auf die Unterstriche habe ich jetzt geachtet ;-)
Die Bilder werden durch einen Aufruf in fhem gespeichert, daher sollte die Schreibberechtigung anderes herum doch auch da sein?
Berechtigung ist auf 777 gesetzt
Eigentümer FHEM Gruppe DIALOUT

Hoffi

Otto123

Ja da ist er sensibel  ;D Leerzeichen zuviel.
'/opt/fhem/FHEM/Bilder/IPCam_WohnZi_snapshot.jpg ' vs '/opt/fhem/FHEM/Bilder/IPCam_WohnZi_snapshot.jpg'
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

Thoffi1978

DANKE

kaum zu sehen und so eine große Wirkung.

Es klappt.

Danke