max
Erfahrenes Mitglied
Mein Problem ist folgendes:
Ich habe die phpMailer Klasse um eine Funktion erweitert sodass alle bilder die in der E-Mail sind automatisch eingebettet werden, das funktioniert auch soweit einwandfrei, nur sobald ein Bild öfters als einmal vorkommt, wird nur eines korrekt angezeigt bei den anderen hat es den Anschein dass sie nicht vorhanden sind.
Zur Funktion:
Ich durchsuche den Code der Mail nach Image Tags und bearbeite diese mit der Callbackfunktion embed_img_replace(). Diese Funktion ruft auch die Eigentliche Funktion zum Einbetten der Bilder auf, gleichzeitig bearbetet sie den Image Tag so das er mit einer CID ausgestattet wird.
Ich hab mir schon gedacht ich könnte einfach bei jedem Bild an die CID einen Zufallsstring anhängen damit bei 2 gleichen Bildern nicht die gleiche CID herauskommt, das hat aber leider auch nichts geholfen.
Danke
Ich habe die phpMailer Klasse um eine Funktion erweitert sodass alle bilder die in der E-Mail sind automatisch eingebettet werden, das funktioniert auch soweit einwandfrei, nur sobald ein Bild öfters als einmal vorkommt, wird nur eines korrekt angezeigt bei den anderen hat es den Anschein dass sie nicht vorhanden sind.
PHP:
function embed_img_replace($treffer) {
$cid = md5($treffer[2] );
$name = basename($treffer[2] );
$urlArray = parse_url($treffer[2]);
$absPfad = '/var/www/.../'.$urlArray['path'];
$returnTag = '<img'.$treffer[1].'src="cid:'.$cid.'"'.$treffer[3].'>';
$this->AddEmbeddedImage($absPfad, $cid, $name);
return $returnTag;
}
function embed_all_img($parseText) {
$parseText = stripcslashes($parseText);
$imgPattern = ',[<]?img([^>]*)src="([^"]+)"([^>]*)>,is';
$imgReplace = 'embed_img_replace';
$returnText = preg_replace_callback($imgPattern,array( &$this, 'embed_img_replace'),$parseText);
return $returnText;
}
Ich durchsuche den Code der Mail nach Image Tags und bearbeite diese mit der Callbackfunktion embed_img_replace(). Diese Funktion ruft auch die Eigentliche Funktion zum Einbetten der Bilder auf, gleichzeitig bearbetet sie den Image Tag so das er mit einer CID ausgestattet wird.
Ich hab mir schon gedacht ich könnte einfach bei jedem Bild an die CID einen Zufallsstring anhängen damit bei 2 gleichen Bildern nicht die gleiche CID herauskommt, das hat aber leider auch nichts geholfen.
Danke