Hallo zusammen,
ich habe zur Abwechslung mal ein Problem -.-!
Ich möchte eine HTML- Mail mit mehreren Bildern generieren.
Die Bilder sollen nach folgenden Schema eingebunden werden
---Bild---
Text
---Bild---
Code sieht so aus:
Zusatz: die $SESSION['url'] wird auf der seite erzeugt, wo dieses script eingebunden ist.
Zum Problem:
Die Mail wird ohne Probleme versendet... aber es wird immer nur 1 Bild angezeigt. Beim anderen erscheint das Symbol für "defekte Grafik".
Ich hab schon mit der "cid:" Zuweisung rumgespielt, aber selbst wenn ich die direkt zuweise komme ich immer auf dasselbe Ergebnis.
Desweiteren ist es so, wenn ich den Block "Bild bottom" und "bild top" in der Reihenfolge austausche wird immer das jeweils im Quelltext unten stehende Bild angezeigt...
Ich hab schon google und den Rest der Welt befragt, leider ohne Erfolgt - vllt auch durch meine geistige Unfähigkeit xD!
Hier im Forum hab ich leider auch nix gefunden - genausowenig wie im Manual - oder ich hab die Lösung nicht verstanden...
Vllt kann mir hier jmd den richtigen Denkanstoß verpassen. Ist mein erster Versuch mit mail().
Besten Dank schonmal,
Greetz
Coop
ich habe zur Abwechslung mal ein Problem -.-!
Ich möchte eine HTML- Mail mit mehreren Bildern generieren.
Die Bilder sollen nach folgenden Schema eingebunden werden
---Bild---
Text
---Bild---
Code sieht so aus:
PHP-Code:
<?php
error_reporting(E_ALL);
### Konfiguration ###
// Empfänger
$empfang = $mail;
// Absender
$sender = 'Absender <xxx@xxx.de>';
// Betreff
$subject = "Textempfehlung ".$headerN." von ".$name;
//Vordefinierte Nachricht
$message = "Ich bin eine Vordefinierte Message";
//Usernachricht
$indi_text = $text;
// Textlink
$urlneu = $_SESSION['url'];
// Trennung der einzelnen Teile der Mail
$boundary = "" . md5(microtime());
// Bildvariablen definieren
$CID = md5(uniqid(mt_rand(),1));
$img_path_top = "img/texte/texte-top.png";
$img_name_top = "texte-top.png";
$img_path_bottom = "img/texte/texte-bottom.png";
$img_name_bottom = "texte-bottom.png";
// Kopfteil für die HTML-Mail
$header ="MIME-Version: 1.0\n";
$header .="Content-type: multipart/related; boundary=\"".$boundary."\"; type=\text/plain\"\n";
$header .="From: $sender";
// Bilder umwandeln
#Bild Top
$CID1 = md5(uniqid(mt_rand(),1));
$bild_datei_t = fopen($img_path_top,"rb");
$str_t = fread($bild_datei_t, filesize($img_path_top));
$bild_codiert_t = chunk_split(base64_encode($str_t));
$content ="Content-Type:image/png\n";
$content .="Content-ID: <$CID1.$img_name_top>\n";
$content .="Content-Transfer-Encoding: base64\n";
$content .="Content-Disposition: inline; filename=\"$img_name_top\"\n\n";
$content .= $bild_codiert_t;
fclose($bild_datei_t);
# Bild bottom
$CID2 = md5(md5(uniqid(mt_rand(),1)));
$bild_datei_b = fopen($img_path_bottom,"rb");
$str_b = fread($bild_datei_b, filesize($img_path_bottom));
$bild_codiert_b = chunk_split(base64_encode($str_b));
$content .="Content-Type:image/png\n";
$content .="Content-ID: <$CID2.$img_name_bottom>\n";
$content .="Content-Transfer-Encoding: base64\n";
$content .="Content-Disposition: inline; filename=\"$img_name_bottom\"\n\n";
$content .= $bild_codiert_b;
fclose($bild_datei_b);
// Textmail Inhalt
$MailBody = "--".$boundary."\n";
$MailBody .= "Content-Type: Text/HTML; charset=iso-8859-1\n";
$MailBody .= "Content-Transfer-Encoding: quoted-printable\n\n";
$MailBody .= "<img src=cid:$CID1.$img_name_top>"."<br>"."\n";
$MailBody .= "Hier der Usertext"."<br>";
$MailBody .= $indi_text."<br>"."\n";
$MailBody .= "Hier unser Text"."<br>";
$MailBody .= $message."<br>"."\n";
$MailBody .= "<a href=\"$urlneu\">".$headerN."</a><br>" ."\n\n";
$MailBody .= "<img src=cid:$CID2.$img_name_bottom>"."<br>"."\n";
$MailBody .= "--".$boundary."\n";
$MailBody .= $content;
$MailBody .= "--" . $boundary . "--"."\n";
### Ende Konfiguration ###
mail($empfang, $subject, $MailBody, $header);
Zum Problem:
Die Mail wird ohne Probleme versendet... aber es wird immer nur 1 Bild angezeigt. Beim anderen erscheint das Symbol für "defekte Grafik".
Ich hab schon mit der "cid:" Zuweisung rumgespielt, aber selbst wenn ich die direkt zuweise komme ich immer auf dasselbe Ergebnis.
Desweiteren ist es so, wenn ich den Block "Bild bottom" und "bild top" in der Reihenfolge austausche wird immer das jeweils im Quelltext unten stehende Bild angezeigt...
Ich hab schon google und den Rest der Welt befragt, leider ohne Erfolgt - vllt auch durch meine geistige Unfähigkeit xD!
Hier im Forum hab ich leider auch nix gefunden - genausowenig wie im Manual - oder ich hab die Lösung nicht verstanden...
Vllt kann mir hier jmd den richtigen Denkanstoß verpassen. Ist mein erster Versuch mit mail().
Besten Dank schonmal,
Greetz
Coop
Kommentar