Hallo,
ich bin zufällig au der Suche nach einer Lösung für mein Problem (Bild im Anhang einer Mail zu versenden und in der Mail zur Darstellung darauf zu zugreifen) auf diesen mittlerweile schon über 4 Jahren alten Thread gestoßen.
Ich bin genauso vorgegangen, wie es JesterDay gepostet hat.
Leider mag es bei mir überhaupt nicht klappen:rolleyes:.
Das Bild kommt als wilder Textsalat an, was meinen Provider dazu verführt, diese Mail gleich mal in den Spam Ordner zu verbannen.
Mein Skript sieht wie folgt aus:
<?php
$Empfaenger = "testmail@an_mich.de";
$Betreff = "Testmail!";
$mime_boundary = "" . md5(uniqid(mt_rand(), 1));
$Header = "From: Andi<testmail@an_mich.de>";
$Header.= "MIME-Version: 1.0\r\n";
$Header .= "\r\n";
$Header.= "Content-Type: multipart/related; boundary=\"".$mime_boundary."\"; type=\"text/plain\"\r\n";
$MailBody = "--".$mime_boundary."\r\n";
$MailBody.= "Content-Type: Text/plain\r\n";
$MailBody.= "Content-Transfer-Encoding: quoted-printable\r\n\r\n";
$MailBody.="Hier steht mein Text";
$MailBody.= "\r\n\r\n";
$MailBody.= "--".$mime_boundary."\r\n";
$CID = md5(uniqid(rand(),1));
$ImgName = "bild.jpg";
$ImageLocation = "bild.jpg";
$fp = fopen ($ImageLocation, "rb");
$str = fread ($fp, filesize ($ImageLocation));
$data = chunk_split(base64_encode($str));
$content.= "Content-Type: image/jpeg\r\n";
$content.= "Content-ID: <$CID.$ImgName>\r\n";
$content.= "Content-Transfer-Encoding: base64\r\n";
$content.= "Content-Disposition: inline; filename=\"$ImgName\"\r\n\r\n";
$content.= $data;
$MailBody.= $content;
$MailBody.= "--".$mime_boundary."--\r\n";
mail($Empfaenger, $Betreff, $MailBody, $Header);
?>[/PHP]
Die ankommende Mail sieht so aus:
[PHP]Content-Type: multipart/related; boundary="eea6c52cc7f29eb32dd00fb707c68c92"; type="text/plain"
--eea6c52cc7f29eb32dd00fb707c68c92
Content-Type: Text/plain
Content-Transfer-Encoding: quoted-printable
Hier steht mein Text
--eea6c52cc7f29eb32dd00fb707c68c92
Content-Type: image/jpeg
Content-ID: <3bd59b25e1c986f7b30741ccaf1fd6c3.bild.jpg>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="bild.jpg"
/9j/4AAQSkZJRgABAgEASABIAAD/4QzSRXhpZgAATU0AKgAAAAgACwEPAAIAAAAJAAAAkgEQAAIA
AAANAAAAmwESAAMAAAABAAEAAAEaAAUAAAABAAAAqAEbAAUAAAABAAAAsAEoAAMAAAABAAIAAAEx
AAIAAAAcAAAAuAEyAAIAAAAUAAAA1AITAAMAAAABAAIAAIKYAAIAAAAFAAAA6IdpAAQAAAABAAAA
8AAAA0xGVUpJRklMTQBGaW5lUGl4UzJQcm8AAAr8gAAAJxAACvyAAAAnEEFkb2JlIFBob3Rvc2hv
Bilddaten sind wie es ReichMio gemacht gat gekürzt...
Hoffe jemand (insbesondere JesterDay) kann mir bei dieser Sache unter die Arme greifen!
Viele Grüße
Andi