Clanintern Clanintern Clanintern

Forum

Öffentliche Foren
FORUM: Spiele & Computer THEMA: [PHP] HTML-Mail mit CID Methode (integr. Bild)
AUTOR BEITRAG
Whiteknight KKK

RANG Deckschrubber

#1 - 03.04 10:22

Hallo zusammen,

kann mir jemand erklären, wie man eine HTML-Mail erstellt, wo die Bilder direkt über CID (Content-ID) eingebunden sind?

In der HTML Mail steht dann bsp. beim Bild

<img src="cid:2af1e184a5b42e1f8a87264e086eca67" width="200" height="45" alt="mein Bild">
code


Das Bild wird dann direkt mit der EMail mitgeschickt und muss nicht von einer externen Quelle (Webseite) geladen werden.

Würde gerne mit PHP automatisch solche EMails (Reports) verschicken, wo man die Bilder direkt eingebunden sieht. Ich suche also eine PHP-Funktion oder aber eine Möglichkeit, einen solchen HTML-Code zu erzeugen um die Mail mit Bildern zu versenden.

Vielen Dank für Eure Tipps
‹• ⊂⌈α⊂κ¥ •›

RANG Deckschrubber

#2 - 03.04 10:50

weiß nich ob es dir hilft, habe es selbst aus nem forum:


<?php 

$ImageLocation 
="./images/hintergrund.jpg"
$ImgName "hintergrund.jpg";
$CID md5(uniqid(rand())); 
$boundary md5(uniqid(rand()));

// Create the Headers
$headers "From: xxxrn";
$headers .= "MIME-Version: 1.0rn";
$headers .= "Content-Type: multipart/mixed; boundary="$boundary";rn"

$EmailBody "--".$boundary."rn"// Mark the end of the header

// Write the Header for the HTML Part
$EmailBody.= "Content-type: text/html; charset=iso-8859-1rn";
// After the last Header insert 2 Line Breaks
$EmailBody.= "Content-Transfer-Encoding: quoted-printablernrn";

$EmailBody.= imap_8bit(
<html> 
<head> 
<title>xxx</title> 
</head> 
<body> 
<table border="
0" width="700" height="520"> 
<tr> 
<td background="
cid:$CID.$ImgName"> 
<table width="
700" height="520"  border="0"> 
<tr> 
<td colspan="
2" height="180"></td> 
</tr> 
<tr> 
<td width="
200" height="320"></td><td  valign="top"> 
<h5>Hallo</h5> 
<p>blah blah</p>         
</td> 
</tr> 
</table> 
</td> 
</tr> 
</table>                 
</body> 
</html> 
"
);

$EmailBody.= "--".$boundary."rnrn"// Mark the end of the html part

// Bild anhaengen
$EmailBody.= "Content-Type: image/jpegrn";
$EmailBody.= "Content-ID: <$CID.$ImgName>rn";
$EmailBody.= "Content-Transfer-Encoding: base64rn";
$EmailBody.= "Content-Disposition: inline; filename="$ImgName"rnrn";
$EmailBody.= chunk_split(base64_encode(file_get_contents($ImageLocation)));
$EmailBody.= "rn--".$boundary."--"// Mark the end of the Image Part 
 
?>


[edit]
noch nen tip: die CID kannst du bei html mails nicht in CSS benutzen (etwa background-image:url()
Whiteknight KKK

RANG Deckschrubber

#3 - 06.04 08:33

danke für die Info, ich werde es mal ausprobieren )

Edit: Diesen Thread hier meinst du, richtig?

http://www.tutorials.de/forum/php/311600-html-email-mit-image-generieren.html

Hab den unteren Teil getestet, leider klappts nicht. In der Mail steht dann nur

Hallo

blah blah

--1fb74fdb348b8fc1f754ef537148ecc0 Content-Type: image/jpeg Content-ID: <3a6a7a23b0a956bd7084a15a7c1eee43.logo.png> 
Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=ogo.png" 
iVBORw0KGgoAAAANSUhEUgAAARgAAABmEAYAAAE3RmJcAAAACXBIWXMAAFxGA
...usw usw usw (ewig langer Hashwert)
code