[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Images Inline versenden mit Newslettermodul
Seite 1 von 1

Images Inline versenden mit Newslettermodul

Verfasst: 19. Mär 2007, 10:12
von wolfgang
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