Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: http://redaxo.org/slack/
wolfgang
Beiträge: 126
Registriert: 20. Okt 2005, 20:52
Wohnort: 23966 Tressow
Kontaktdaten: Website

Images Inline versenden mit Newslettermodul

19. Mär 2007, 10:12

Hier einmal eine Antwort auf keine Frage. Ich habe es gestern hier gesucht, aber nicht gefunden und dann selbst gebastelt.

Also das Problem. Es sollen Bilder mit dem Newslettermodul verschickt werden. Standardmäßig werden die Links mit verschickt. Viele Benutzer haben das Nachladen von Bilder sinnvollerweise ausgeschaltet. Daher kann es notwendig sein, die Bilder inline mitzusenden. Auch wenn es Patchwork ist, so funktioniert es bei meiner Installation doch tadellos und daher hier eine Lösung:

In der Datei addons/newsletter/pages/newsletter.inc.php kommt etwa bei Zeile 114 (hinter den Ersetzungen für html_body) der Funktionsaufruf für die Ersetzung:

Code: Alles auswählen

$html_body = preg_replace_callback("/img src=.\.\.(.*)\.jpg/", "bild_einfuegen", $html_body);
Also eine Suche nach "img src (irgendwas).jpg"

Ruft jeweils die Funktion bild_einfuegen() auf und übergibt den Suchstring.

Die Funktion bild_einfuegen kommt an den Anfang der Datei (bei mir steht sie an Zeile 8-18):

Code: Alles auswählen

$n_bild = 0;
/* Funktion wird aus preg_replace_callback aufgerufen
   Hier wird die Bilddatei in die Mail eingehängt.
*/
function bild_einfuegen($bildtreffer) {
	global $mail, $n_bild;
	$n_bild++;
	$mail->AddEmbeddedImage("../files/cache_resize___".preg_replace("/img src=.\.\.\/index\.php\?rex_resize=/","",$bildtreffer[0]), "bild$n_bild.jpg", "bild$n_bild.jpg", "base64","image/jpeg"); // wb
	return "img src=\"cid:bild$n_bild.jpg";
}

Damit die Einsetzung auch in der Testmail klappt, muss der Aufruf auch dort noch eingetragen werden (ist bei mir die neue Zeile 215).

Sicher kann man das alles noch ein bisschen edler machen ... für meine Zwecke tut es, wobei es sich hier ausschließlich um cache_resize ...jpg-Bilder handeln darf.

Gruß Wolfgang

Zurück zu „Allgemeines [R3]“