Zum Inhalt springen

HTML-Mailversand mit mehrern Inline Grafiken


Empfohlene Beiträge

Hallo beisammen,

ich drehe langsam durch.

Ich versuche ein Skript zu schreiben, das eine HTML-Mail mit mehreren Inlinegrafiken versendet.

Mit einer Grafik ist das kein Problem, diese wird richtig angezeigt.

Brenzlig wird's ab Bild 2 und folgenden.

Die werden in ASCII-Code als Attachment mitgeschickt, aber eben nicht als JPEG und nicht im HTML-Teil angezeigt.

Ja, ich habe dieses und diverse andere Foren durchsucht, komme aber nicht dahinter, wo bei mir der Fehler liegen könnte.

Jede Hilfe ist herzlichst willkommen.

Danke im Voraus,

Groucho

... und hier mein bisheries "Werk":


<?php


$Empfaenger = "ich@host.de";

$betreff = "HTML-Mail mit Inlinegrafiken";


$Dateiname1 = "bild1.jpg";

$DateinameMail_1 = "bild1.jpg";

$Dateiname2 = "bild2.jpg";

$DateinameMail_2 = "bild2.jpg";

$Dateiname3 = "aidabella.jpg";

$DateinameMail_3 = "aidabella.jpg";


$Header = "From: Groucho <meine@mailadresse.de>";


$Trenner = md5(uniqid(time()));

$Header .= "\n";

$Header .= "MIME-Version: 1.0";

$Header .= "\n";

$Header .= "Content-Type: multipart/mixed; boundary=$Trenner";

$Header .= "\n\n";

$Header .= "This is a multi-part message in MIME format";

$Header .= "\n";

$Header .= "--$Trenner";

$Header .= "\n";

$Header .= "Content-Type: text/html";

$Header .= "\n";

$Header .= "Content-Transfer-Encoding: 8bit";

$Header .= "\n\n";

$Header .= "



<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=iso-8859-1\">

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">

<P> <HTML><HEAD><TITLE>HTML-Mail</TITLE> <META http-equiv=Content-Type =  content=text/html;charset=iso-8859-1>

</HEAD> <BODY>

<TABLE border=0 cellPadding=0 cellSpacing=0 width=\"100%\"> <TR> <TD align=middle>  <TABLE border=0 cellPadding=0 cellSpacing=0 width=600>  <TR> <TD> <TABLE border=0 cellPadding=0 cellSpacing=0 width=600> <TR><TD><DIV ALIGN=\"left\"> <IMG alt=\"\" src=\"bild1.jpg\"> </DIV></TD></TR> </TABLE> </TD> </TR>  <TR> <TD> <TABLE border=0 cellPadding=0 cellSpacing=0 width=600> <TR> <TD class=Textgross vAlign=top>

Hier steht der <b>HTML-Text</b>

<br clear="all">

<IMG alt=\"\" border=0  src=\"bild2.jpg\">

<br clear="all">

<IMG alt=\"\" border=0  src=\"bild3.jpg\">

<br clear="all">

und hier endet er schon wieder.<p>

</body>

</html>

";

$Header .= "\r\n";

$Header .= "--$Trenner";

$Header .= "\n";

$Header .= "Content-Type: image/jpeg; name=$DateinameMail_1";

$Header .= "\n";

$Header .= "Content-Transfer-Encoding: base64";

$Header .= "\n";

$Header .= "Content-Disposition: inline; filename=$DateinameMail_1"; 

$Header .= "\n\n";

$Dateiinhalt1 = fread(fopen($Dateiname1, "r"), filesize($Dateiname1));

$Header .= chunk_split(base64_encode($Dateiinhalt1));

$Header .= "\r\n\r\n";

$Header .= "--$Trenner";

$Header .= "\r\n\r\n";  										

$Header .= "Content-Type: image/jpeg; name=$DateinameMail_2";

$Header .= "\n";

$Header .= "Content-Transfer-Encoding: base64";

$Header .= "\n";

$Header .= "Content-Disposition: inline; filename=$DateinameMail_2"; // war attachment

$Header .= "\n\n";

$Dateiinhalt2 = fread(fopen($Dateiname2, "r"), filesize($Dateiname2));

$Header .= chunk_split(base64_encode($Dateiinhalt2));

$Header .= "\r\n\r\n";

$Header .= "--$Trenner";

$Header .= "\r\n\r\n";

$Header .= "Content-Type: image/jpeg; name=$DateinameMail_3";

$Header .= "\n";

$Header .= "Content-Transfer-Encoding: base64";

$Header .= "\n";

$Header .= "Content-Disposition: inline; filename=$DateinameMail_3"; // war attachment

$Header .= "\n\n";

$Dateiinhalt3 = fread(fopen($Dateiname3, "r"), filesize($Dateiname3));

$Header .= chunk_split(base64_encode($Dateiinhalt3));

$Header .= "\r\n\r\n";

$Header .= "--$Trenner--";

$Header .= "\r\n\r\n";


mail($Empfaenger, $betreff, "", $Header); 



?>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dir fehlt der Identifier (ContentID) für die Grafiken. Woher soll er wissen, dass er die aus dem Anhang nehmen soll? Ich bin mir sehr sehr sicher, dass ich das hier auch schonmal geschrieben hab, such einfach mal danach ;)

Das war ne ganz ausführliche Anleitung mit Beispielen für ne HTML Mail mit Bildern etc.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe fast das ganze Wochenende daran gesessen - geflucht, gehofft und wieder geflucht.

Deine Anleitung hatte ich auch schon viel früher gefunden - daher bin ich auf dieses Forum gekommen. Leider hat sie mir nicht so richtig weiter geholfen.

Aber just im Moment habe ich das Problem - für mich - gelöst.

Für jede einzelne Grafik muss ein solcher Abschnitt in den Header (jeweils mit einer neuen Laufnummer - ich hoffe, dass hilft anderen, die das gleiche Problem haben):

$Header .= "\n";

$Header .= "--$Trenner";

$Header .= "\n";

$Header .= "Content-Type: image/jpeg; name=$DateinameMail1";

$Header .= "\n";

$Header .= "Content-Transfer-Encoding: base64";

$Header .= "\n";

$Header .= "Content-Disposition: inline; filename=$DateinameMail1"; // war attachment

$Header .= "\n\n";

$Dateiinhalt1 = fread(fopen($Dateiname1, "r"), filesize($Dateiname1));

$Header .= chunk_split(base64_encode($Dateiinhalt1));

$Header .= "\r\n";

Aber trotzdem: Danke für die Hilfe @ JesterDay

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Jahr später...

Hallo!

Und zwei Jahre später drehe ich damit durch...:(

Ja, gesucht habe ich auch. Auch hier. Suchbegriffe: content-id, grafik in email einbinden, inline grafik, image in email, html email mit Grafik. Nichts zu finden von dieser Anleitung.

Ich bekomme es einfach nicht hin. Ja, gegoogelt habe ich auch. Nachdem ich dann die ersten hundert "Helden der Foren" mit Ihren bereichernden Beiträgen ( Benutz mal die Suchfunktion oder Google ) herausgefiltert habe, blieben ein paar akzeptable Lösungen über, die aber auch nicht bei mir funktionieren.

Ich nutze Joomla mit dem Shop Virtuemart. Dort wird eine Bestätigungsmail generiert, die auch eine Grafik im "body" enthält, die über Virtuemart eingebunden wird. Ich musste eine Graik hinterlegen, dieser wurde dann "irgendein" Code angehängt und das ganze mit cid:link aufgerufen. Es sollen aber zwei Grafiken eingebunden werden und die Einbindung einer 2ten Grafik dieselbe Art und Weise klappt nicht.

Mit cid/ content-id klappte es also nicht, mit data:base64 klappte es nicht und als direkter link zur Grafik auf dem Webserver auch nicht. Entweder war die Grafik garnicht da, oder sie war im Anhang oder sie wurde erst durch "Bild herunterladen" aktiivert.

Leider versteh ich die hier gezeigte Lösung auch nicht ganz.

Könnte mir jemand bitte in verständlichen Worten erklären, wie ich eine Grafik, die als jpg auf dem Webserver liegt, in eine html-Mail einbinden kann?!

Es grüßt und dankt

Carsten

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...