Der Martin: preg_replace bei sehr großen Strings

Beitrag lesen

Hallo,

Leider sind die Data-Urls nicht nur extrem unhandlich (weil groß), sondern sie werden auch teilweise geblockt. Würden sie immer geblockt, würde ich nach einen Fehler suchen, aber sie werden in derselben Mail je nach Client geblockt. Outlook tut sich hier ganz besonders hervor.

dann tippe ich mal, dass die Länge tatsächlich das Problem ist. Es gibt keine allgemeine Festlegung, wie lang URLs sein dürfen, darum gibt es in den meisten Programmen willkürliche Beschränkungen. Kann also gut sein, dass deine data-URLs je nach Client ab einer bestimmten Länge Ärger machen.

Doch, natürlich: Pack das Bild in die Mailnachricht rein. Technisch gesehen ist das Bild dann ein Dateianhang, hat aber in seinen Sub-Headern eine bestimmte Kennung, eine sogenannte Content ID, und wird aus dem Mailtext mit cid: gefolgt von dieser Content ID referenziert. Schau dir mal ein paar e-Mails mit Bildern, die du selbst bekommen hast, im Quelltext an.

Da sitz ich gerade schon dran.
Weil es mir gelungen ist, ein solches embedded Image auch im POutlook sichtbar zu machen.
Ist etwas komplizierter in den Emailbody einzupflegen, aber dafür muss ich deutlich weniger Daten speichern. Das Image ist ja dann nur noch ein Verweis auf das Image und nicht das Image (als base64-Daten selber).

An der Datenmenge ändert sich nichts, denn anstatt im Mail-Text hast du die Daten dann halt im Attachment als base64-Block. Aber das ist dann ein seit über 20 Jahren etabliertes Konzept.

Weil ansonsten hätte ich mir den ganzen URL-Data-Kram wirklich sparen können/sollen (?).

Hättest du auch, meiner Ansicht nach. 😉

Ist wahr?
Kannst Du mir nochmal genau sagen, warum?

Nicht so richtig fundiert, es ist mehr so ein Bauchgefühl. Und das Bauchgefühl sagt, dass data-URLs nur ein Notbehelf für Fälle sind, wo's anders nicht mehr geht.

Bei mir wars nur empirisch begründet, aber Du sagtest ja, die Data-Urls sollten ansich keine Probleme machen. Warum hätte ichs mir dann Deiner Meinung nach (auch) sparen könnnen?

Weil mir gerade kein Kontext einfällt, bei dem man die Bilder nicht auch separat speichern und einfach referenzieren kann. Das muss aber nichts heißen.

Live long and pros healthy,
 Martin

--
Wer respektiert werden will, sollte zunächst damit anfangen, andere zu respektieren.