Wenn ich SMTP_SendMailMediaEx richtig verstehe kommt als letzter Parameter doch die ObjektId eines Media Elements hin. Ich möchte eine Email mit einem Bild, was in dem Media Element enthalten ist, verschicken.
Die Email kommt auch an, aber leider ohne Bild bzw. Anhang. Mache ich da irgendwas falsch bzw. ist da noch etwas zu beachten?
Nun letzteres ist genau mein Problem das Bild existiert gar nicht auf der Festplatte sondern nur im Arbeitsspeicher ich kann es also nur per
SMTP_SendMailMedia
bzw.
IPS_GetMediaContent
holen. Ich dachte eigentlich das die obere Funktion genau das macht ohne das man noch etwas zwischenspeichern muss oder sehe ich das falsch?
Magst du mir mal ein var_dump(IPS_GetMedia($id)) auf deine Medien Datei machen? Die Funktion sollte eigentlich korrekt laufen- benötigt aber, dass ein MediaFile gesetzt ist mit dem korrekten Dateinamen. (Es geht quasi um die Dateierweiterung die wir fur den mime type brauchen)
IPS_SetMediaContent($MediaID, base64_encode($Content)); //Bild Base64 codieren und ablegen
beschrieben.
Nun letzteres ist wohl genau das Problem es gibt keine physikalische Mediendatei, da die Grafik im Arbeitsspeicher ist und dazu müsste der IP Dienst ja beendet werden damit diese gespeichert wird. Also wie löst man das dann am besten?
Du musst aber eine Datei angeben. Damit IPS beim Shutdown auch sichern kann.
Ich habe in vielen meiner Module SetCover oder SetImage Funktionen. Da kannst du sehen wie es funktioniert.
Michael
Wenn ich das richtig verstehe muss ich also das erste mal wenn es das Medien Objekt noch nicht gibt eine Datei physikalisch abspeichern und diese dann über IPS_SetMediaFile zuweisen. Wenn sich nun das Bild erneuert weise ich dann dem bestehenden Medienobjekt IPS_SetMediaContent den neuen Bildinhalt zu. Das File auf dem physikalischen Speicher wird dabei nur das aller erste mal beim neu anlegen geschrieben und dann jedes mal wenn der IP Symcon Dienst sich beendet. Ist das so richtig? Wäre vielleicht gut wenn man das noch irgendwie verständlich in der Dokumention ergänzen könnte.