Zum Inhalt springen

Mail versenden [PHP]


Empfohlene Beiträge

Hallo!

Ich weis bereits wie man mit PHP eine eMail versenden kann.

// Empfänger
$to = $row_get_email['email'];

// Betreff
$subject = "Wichtige Nachricht vom Coasterbook!";

// Nachricht
$message = ("<html><head><title>Wichtige Nachricht vom Coasterbook</title></head><body><body background=\"http:\/\/www.coasterindex.com/layout/back.jpg\" leftmargin=\"0\" topmargin=\"0\"><p> </p><table width=\"620\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\"><tr><td background=\"http:\/\/www.coasterindex.com/images/lay_mail1.gif\" valign=\"top\" height=\"115\"> </td></tr><tr><td background=\"http:\/\/www.coasterindex.com/images/lay_mail2.gif\" valign=\"top\"><br><table width=\"580\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\"><tr><td>".nl2br($_POST['msg'])."</td></tr></table><p> </p></td></tr><tr><td background=\"http:\/\/www.coasterindex.com/images/lay_mail3.gif\" valign=\"top\" height=\"52\"> </td></tr></table></body></html>");

$headers = "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/related\nContent-Transfer-Encoding: 8bit\n";

// zusätzliche Header
$headers .= "From: CoasterIndex.com - Mailsystem <support@coasterindex.com>\n";

// Verschicken der Mail
if(mail($to, $subject, $message, $headers)) {
echo('Mail versendet!');
} else {
echo("Beim Versenden der eMail an <b>".$row_get_email['nickname']."</b> ist ein Fehler aufgetreten!");
}[/PHP]

Jedoch sendet er mir im oben genannten script die bilder nicht mit.

Frage hierbei: wie kann ich per PHP die bilder mitsenden lassen?

Vielen Dank

Morfois

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wundert mich, dass deine Mail überhaupt als HTML ankommt, oder tut sie das nur, bei einem bestimmten Mail-Client?

Du hast im Header Content-Type: multipart/related angegeben, aber es fehlt der Typ und ausserdem enthält deine Mail ja nur einen Part (also nix Multi).

Hatte es glaub ich schonmal hier im forum geschrieben (bin mir jetzt aber selbst nich sicher und daher nochmal):

multipart/related ist der richtige Typ, allerdings musst du in deiner Mail dann auch mehrere Parts mitgeben. Der erste (Typ text/html) ist dein HTML Inhalt, die nachfolgenden Parts sind dann deine Bilder.



//*** Content-ID:
$CID = md5(uniqid (rand(), 1));
// Die Content-ID brauchst du später für das Bild (jedes Bild eine eigene ID)

// Diese Variable enthält einen Trenner,
//der die einzelnen Inhalte im Body abgrenzt
$mime_boundary = "" . md5(uniqid(mt_rand(), 1));

$Header.= "From:$MailFrom<$MailFromAdr>$EOL";
$Header.= "X-Mailer: PHP/" . phpversion(). "$EOL";
$Header.= "MIME-Version: 1.0\r\n";
$Header.= "Content-Type: multipart/related; ".
"boundary=\"".$mime_boundary."\"; type=\"text/html\"$EOL";
//$EOL enthält den Zeilenumbruch, der kann je nach System des Servers
// unterschiedlich sein (\r\n, \r, \n)

[/php]

Das ist der Header der Mail

Im Body gibst du dann die einzelnen Teile an (also nicht nur den Inhalt (Text), sondern alles)

[php]
// Mail-Body
$MailBody = "--".$mime_boundary."$EOL";

$MailBody.= "Content-Type: Text/HTML; charset=iso-8859-1$EOL";
$MailBody.= "Content-Transfer-Encoding: quoted-printable$EOL$EOL";
$MailBody.= // hier den Inhalt (HTML-Code) einfügen
$MailBody.= "$EOL$EOL";
$MailBody.= "--".$mime_boundary."$EOL";

mit --$mime_boundary werden die einzelnen Teile abgegrenzt. Die korrekte Anzahl an Zeilenumbrüchen ist wichtig!! (denn danach ist die Mail formatiert)

Jetzt noch das Bild (in meinem Fall war es 1 Bild):


// Bild anhängen
// Bild erst laden und vorbereiten
$fp = fopen ($LogoLocation, "rb");
$str = fread ($fp, filesize ($LogoLocation));
$data = chunk_split(base64_encode($str));
// dann den "Header" für das Bild
$content.= "Content-Type: image/gif$EOL";
$content.= "Content-ID: <$CID.$ImgName>$EOL";
$content.= "Content-Transfer-Encoding: base64$EOL";
$content.= "Content-Disposition: inline; filename=\"$ImgName\"$EOL$EOL";
// Bild anhängen
$content.= $data;
$MailBody.= $content;
// Trenner nicht vergessen!
$MailBody.= "--".$mime_boundary."--$EOL";

# echo $Header.$MailBody;

mail($MailTo, $MailToSubject, $MailBody, $Header);
[/php]

als Source im HTML Code muss für das Bild: [b]cid:$CID.$ImgName[/b] angegeben werden (bzw. das, was bei deinen "Bild-Header" als Content-ID steht). Dann sucht der Client das Bild in den Mails.

In den [b]Mails[/b] ist schon korrekt, weil die Content-ID für jedes Bild absolut, weltweit eindeutig sein sollte. Es ist damit möglich (und auch so vorgesehen), in einer Mail auf den Anhang einer anderen zuzugreifen (wenn sich die Mail im Zugriff befindet). Also denkbar wäre z.B. ein Newsletter, der das Logo nur in der ersten Mail mitsendet und in den anderen nur die Content-ID angibt.

(spart Platz, ist aber wohl nur in der Theorie anwendbar)

EDIT:

Wichtig ist der letzte Trenner. Der Enthält nämlich noch ein "--" am Ende:

[php]
"--".$mime_boundary."--$EOL";

Damit wird der Mutlipart wieder geschlossen.

EDIT2:

Genauers zum Mail-Format findest du in der entsprechenden RFC (könnten auch noch andere (wegen den Anhängen) nötig sein, weiß ich nicht mehr)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also... gar ned so einfach (wie ich finde).

Ich hab das jetzt mal so gemacht:

// Empfänger
$to = $row_get_email['email'];

// Betreff
$subject = "Wichtige Nachricht vom Coasterbook!";

//*** Content-ID:
$CID = md5(uniqid (rand(), 1));
$CID2 = md5(uniqid (rand(), 1));
$CID3 = md5(uniqid (rand(), 1));
$CID4 = md5(uniqid (rand(), 1));
// Die Content-ID brauchst du später für das Bild (jedes Bild eine eigene ID)

// Diese Variable enthält einen Trenner,
//der die einzelnen Inhalte im Body abgrenzt
$mime_boundary = "" . md5(uniqid(mt_rand(), 1));

$Header.= "From: CoasterIndex.com - Mailsystem <support@coasterindex.com>$EOL";
$Header.= "X-Mailer: PHP/" . phpversion(). "$EOL";
$Header.= "MIME-Version: 1.0\r\n";
$Header.= "Content-Type: multipart/related; ".
"boundary=\"".$mime_boundary."\"; type=\"text/html\"$EOL";
//$EOL enthält den Zeilenumbruch, der kann je nach System des Servers
// unterschiedlich sein (\r\n, \r, \n)

// Mail-Body
$MailBody = "--".$mime_boundary."$EOL";

$MailBody.= "Content-Type: Text/HTML; charset=iso-8859-1$EOL";
$MailBody.= "Content-Transfer-Encoding: quoted-printable$EOL$EOL";
$MailBody.= "<html><head><title>Wichtige Nachricht vom Coasterbook</title></head><body><body background=\"".$CID.$ImgName."\" leftmargin=\"0\" topmargin=\"0\"><p> </p><table width=\"620\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\"><tr><td background=\"".$CID2.$ImgName."\" valign=\"top\" height=\"115\"> </td></tr><tr><td background=\"".$CID3.$ImgName."\" valign=\"top\"><br><table width=\"580\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\"><tr><td>".nl2br($_POST['msg'])."</td></tr></table><p> </p></td></tr><tr><td background=\"".$CID4.$ImgName."\" valign=\"top\" height=\"52\"> </td></tr></table></body></html>";
$MailBody.= "$EOL$EOL";
$MailBody.= "--".$mime_boundary."$EOL";

// Bilder anhängen
// Bild erst laden und vorbereiten
$fp = fopen ('./images/back.jpg', "rb");
$str = fread ($fp, filesize ('./images/back.jpg'));
$data = chunk_split(base64_encode($str));
// dann den "Header" für das Bild
$content.= "Content-Type: image/gif$EOL";
$content.= "Content-ID: <$CID.$ImgName>$EOL";
$content.= "Content-Transfer-Encoding: base64$EOL";
$content.= "Content-Disposition: inline; filename=\"$ImgName\"$EOL$EOL";
// Bild anhängen
$content.= $data;
$MailBody.= $content;
// Trenner nicht vergessen!
$MailBody.= "--".$mime_boundary."$EOL";

// Bild erst laden und vorbereiten
$fp = fopen ('./images/lay_mail1.gif', "rb");
$str = fread ($fp, filesize ('./images/lay_mail1.gif'));
$data = chunk_split(base64_encode($str));
// dann den "Header" für das Bild
$content.= "Content-Type: image/gif$EOL";
$content.= "Content-ID: <$CID2.$ImgName>$EOL";
$content.= "Content-Transfer-Encoding: base64$EOL";
$content.= "Content-Disposition: inline; filename=\"$ImgName\"$EOL$EOL";
// Bild anhängen
$content.= $data;
$MailBody.= $content;
// Trenner nicht vergessen!
$MailBody.= "--".$mime_boundary."$EOL";

// Bild erst laden und vorbereiten
$fp = fopen ('./images/lay_mail2.gif', "rb");
$str = fread ($fp, filesize ('./images/lay_mail2.gif'));
$data = chunk_split(base64_encode($str));
// dann den "Header" für das Bild
$content.= "Content-Type: image/gif$EOL";
$content.= "Content-ID: <$CID3.$ImgName>$EOL";
$content.= "Content-Transfer-Encoding: base64$EOL";
$content.= "Content-Disposition: inline; filename=\"$ImgName\"$EOL$EOL";
// Bild anhängen
$content.= $data;
$MailBody.= $content;
// Trenner nicht vergessen!
$MailBody.= "--".$mime_boundary."$EOL";

// Bild erst laden und vorbereiten
$fp = fopen ('./images/lay_mail3.gif', "rb");
$str = fread ($fp, filesize ('./images/lay_mail3.gif'));
$data = chunk_split(base64_encode($str));
// dann den "Header" für das Bild
$content.= "Content-Type: image/gif$EOL";
$content.= "Content-ID: <$CID4.$ImgName>$EOL";
$content.= "Content-Transfer-Encoding: base64$EOL";
$content.= "Content-Disposition: inline; filename=\"$ImgName\"$EOL$EOL";
// Bild anhängen
$content.= $data;
$MailBody.= $content;
// Trenner nicht vergessen!
$MailBody.= "--".$mime_boundary."--$EOL";

# echo $Header.$MailBody;


// Verschicken der Mail
if(mail($to, $subject, $MailBody, $Header)) {[/PHP]

Geht das so?

Link zu diesem Kommentar
Auf anderen Seiten teilen

schade das man die beiträge nur innerhalb von 5 minuten editieren kann...

ich habs jedenfalls jetzt n bissl anders:


//*** Content-ID:
$CID = md5(uniqid (rand(), 1));
$CID2 = md5(uniqid (rand(), 1));
$CID3 = md5(uniqid (rand(), 1));
$CID4 = md5(uniqid (rand(), 1));
// Die Content-ID brauchst du später für das Bild (jedes Bild eine eigene ID)

// Diese Variable enthält einen Trenner,
//der die einzelnen Inhalte im Body abgrenzt
$mime_boundary = "" . md5(uniqid(mt_rand(), 1));

$Header.= "From: CoasterIndex.com - Mailsystem <support@coasterindex.com>$EOL";
$Header.= "X-Mailer: PHP/" . phpversion(). "$EOL";
$Header.= "MIME-Version: 1.0\r\n";
$Header.= "Content-Type: multipart/related; ".
"boundary=\"".$mime_boundary."\"; type=\"text/html\"$EOL";
//$EOL enthält den Zeilenumbruch, der kann je nach System des Servers
// unterschiedlich sein (\r\n, \r, \n)

// Mail-Body
$MailBody = "--".$mime_boundary."$EOL";

$MailBody.= "Content-Type: Text/HTML; charset=iso-8859-1$EOL";
$MailBody.= "Content-Transfer-Encoding: quoted-printable$EOL$EOL";
$MailBody.= "<html><head><title>Wichtige Nachricht vom Coasterbook</title></head><body><body background=\"".$CID.back."\" leftmargin=\"0\" topmargin=\"0\"><p> </p><table width=\"620\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\"><tr><td background=\"".$CID2.lay_mail1."\" valign=\"top\" height=\"115\"> </td></tr><tr><td background=\"".$CID3.lay_mail2."\" valign=\"top\"><br><table width=\"580\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\"><tr><td>".nl2br($_POST['msg'])."</td></tr></table><p> </p></td></tr><tr><td background=\"".$CID4.lay_mail3."\" valign=\"top\" height=\"52\"> </td></tr></table></body></html>";
$MailBody.= "$EOL$EOL";
$MailBody.= "--".$mime_boundary."$EOL";

// Bilder anhängen
// Bild erst laden und vorbereiten
$fp = fopen ('./images/back.jpg', "rb");
$str = fread ($fp, filesize ('./images/back.jpg'));
$data = chunk_split(base64_encode($str));
// dann den "Header" für das Bild
$content = "Content-Type: image/gif$EOL";
$content.= "Content-ID: <$CID.back>$EOL";
$content.= "Content-Transfer-Encoding: base64$EOL";
$content.= "Content-Disposition: inline; filename=\"back\"$EOL$EOL";
// Bild anhängen
$content.= $data;
$MailBody.= $content;
// Trenner nicht vergessen!
$MailBody.= "--".$mime_boundary."$EOL";

// Bild erst laden und vorbereiten
$fp = fopen ('./images/lay_mail1.gif', "rb");
$str = fread ($fp, filesize ('./images/lay_mail1.gif'));
$data = chunk_split(base64_encode($str));
// dann den "Header" für das Bild
$content = "Content-Type: image/gif$EOL";
$content.= "Content-ID: <$CID2.lay_mail1>$EOL";
$content.= "Content-Transfer-Encoding: base64$EOL";
$content.= "Content-Disposition: inline; filename=\"lay_mail1\"$EOL$EOL";
// Bild anhängen
$content.= $data;
$MailBody.= $content;
// Trenner nicht vergessen!
$MailBody.= "--".$mime_boundary."$EOL";

// Bild erst laden und vorbereiten
$fp = fopen ('./images/lay_mail2.gif', "rb");
$str = fread ($fp, filesize ('./images/lay_mail2.gif'));
$data = chunk_split(base64_encode($str));
// dann den "Header" für das Bild
$content = "Content-Type: image/gif$EOL";
$content.= "Content-ID: <$CID3.lay_mail2>$EOL";
$content.= "Content-Transfer-Encoding: base64$EOL";
$content.= "Content-Disposition: inline; filename=\"lay_mail2\"$EOL$EOL";
// Bild anhängen
$content.= $data;
$MailBody.= $content;
// Trenner nicht vergessen!
$MailBody.= "--".$mime_boundary."$EOL";

// Bild erst laden und vorbereiten
$fp = fopen ('./images/lay_mail3.gif', "rb");
$str = fread ($fp, filesize ('./images/lay_mail3.gif'));
$data = chunk_split(base64_encode($str));
// dann den "Header" für das Bild
$content = "Content-Type: image/gif$EOL";
$content.= "Content-ID: <$CID4.lay_mail3>$EOL";
$content.= "Content-Transfer-Encoding: base64$EOL";
$content.= "Content-Disposition: inline; filename=\"lay_mail3\"$EOL$EOL";
// Bild anhängen
$content.= $data;
$MailBody.= $content;
// Trenner nicht vergessen!
$MailBody.= "--".$mime_boundary."--$EOL";[/PHP]

nun bekomme ich aber keine eMail!

also muss (denke ich mal) was fehlerhaft sein! oder??? :-)

Link zu diesem Kommentar
Auf anderen Seiten teilen

nun bekomme ich aber keine eMail!

also muss (denke ich mal) was fehlerhaft sein! oder??? :-)

Ich hab mir das nicht alles durchgelesen -.-

Am Ende von meinem Beispiel hast du ein "echo $Mailbody..." gesehen (auskommentiert). Das war da nicht zum Spass drin ;)

Kokmmentier den mail-Befehl aus und lass dir die Mail mal anzeigen, dann siehst du, was da rauskommt und ob da vielleicht irgendwo ein Fehler in der Mail-Quelle ist.

Ansonsten steht da ja auch, dass der Zeilenumbruch wichtig (!) ist. Wenn es damit Probleme gibt, siehst du das nur beim Mail-Server (fehlerhafte Mail oder so). Wenn du darauf keinen Zugriff hast musst du probieren.

Auf welchem System läuft dein Server denn?

EDIT:

Ach ja, hab den Code jetzt mal überflogen... was für einen Wert hast du $EOL zugewiesen? Das ist keine vorbelegte Variable, sondern ich hab das später nur eingefügt, um den Zeilenumbruch leicht anpassen zu können.

Irgendwo muss also am Anfang mal:


$EOL = "\r";
[/php]

stehen (z.B.)

Link zu diesem Kommentar
Auf anderen Seiten teilen

so also auf welchem system der server läuft weis ich nicht, da das ein gemeinschaftsprojekt ist und ich nur programmiere^^

Auf grund dessen habe ich auch keinen zugriff auf den mail-server.

den $EOL hab ich nun weiter oben definiert.

hier die ausgabe vom "echo $Mailbody...":

From: CoasterIndex.com - Mailsystem X-Mailer: PHP/4.4.1 MIME-Version: 1.0 Content-Type: multipart/related; boundary="8cb9e6ce238bb90c487470cf81c77e93"; type="text/html" --8cb9e6ce238bb90c487470cf81c77e93 Content-Type: Text/HTML; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable




test



--8cb9e6ce238bb90c487470cf81c77e93 Content-Type: image/gif Content-ID: Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=back /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQ...blabla...3+Pn6/9oADAMBAAIRAxEAPwDnAAz5 A3yepPmyg9Tu/wCQldLkqTkm1wTzsXNFEQEuntPJl5FxtDEmIZDHiAnyP4R/yz7UV/rWo819bWfK /VJbfL0108z/ABVcrKL6SSkvJNLfz36v17f/2Q== --8cb9e6ce238bb90c487470cf81c77e93 Content-Type: image/gif Content-ID: <161b5935d68b0aa2ad4aa890ad960b8b.lay_mail1> Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=lay_mail1 R0lGODlhbAJzANUAAO/v7+bv797m79bm787...blablabla...dddrXN3imDgAAAOw== --8cb9e6ce238bb90c487470cf81c77e93 Content-Type: image/gif Content-ID: <668c1e522063ea6e6aa1f9681985976c.lay_mail2> Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=lay_mail2 R0lGODlhbAIFAJEAAHy536GwurHAyu7u7iwAAAAAbAIFAAAIegABCBxIMMCAgwgTKlzIsKHDhxAj SpxIsaLFixgzatzIsaPHjyBDihxJsqTJkwgFEFzJcqVBlDBjypxJs6bNmzhz6tzJs6LKlkAL9hxK tKjRo0iTKl3KNOHPoEFfNp1KtarVq1izas34FGpLqVvDih1LtqzZsxS7sgwIADs= --8cb9e6ce238bb90c487470cf81c77e93--[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

hm schade das man seine vorherigen antworten auch nicht löschen kann ^^

also ich habs jetzt soweit geschafft, das die mail versendet wird und bei mir auch ankommt, und zwar mit bildern!

das ganze sieht nun so aus:

// Empfänger
$to = $row_get_email['email'];

// Betreff
$subject = "Wichtige Nachricht vom Coasterbook!";
$grenze="grenzlinie";

$headers ="MIME-Version: 1.0\r\n";
$headers.="From: CoasterIndex.com - Mailsystem <support@coasterindex.com>\n";
$headers.="Content-Type: multipart/related;\n\tboundary=$grenze\n";
$headers.="Content-Disposition:inline\n";
$botschaft="\n--$grenze\n";

$botschaft.="Content-Type: text/html;charset=iso-8859-1\n";
$botschaft.="Content-Transfer-Encoding: 8bit\n\n";
$botschaft.="<html><head><title>Wichtige Nachricht vom Coasterbook</title></head><body><body background=cid:bild_1 leftmargin=\"0\" topmargin=\"0\"><p> </p><table width=\"620\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\"><tr><td background=cid:bild_2 valign=\"top\" height=\"115\"> </td></tr><tr><td background=cid:bild_3 valign=\"top\"><br><table width=\"580\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\"><tr><td>".nl2br($_POST['msg'])."</td></tr></table><p> </p></td></tr><tr><td background=cid:bild_4 valign=\"top\" height=\"52\"> </td></tr></table></body></html> \n";
$botschaft.="\n--$grenze\n";

$botschaft.="Content-Type: application/octetstream;\n\tname=back.jpg\n";
$botschaft.="Content-Transfer-Encoding: base64\n";
$botschaft.="Content-ID: <bild_1>\n";
$botschaft.="Content-Disposition:inline;filename=back.jpg\n\n";
$zeiger_auf_datei=fopen('./images/back.jpg',"rb");
$inhalt_der_datei=fread($zeiger_auf_datei,filesize('./images/back.jpg'));
fclose($zeiger_auf_datei);
$inhalt_der_datei=chunk_split(base64_encode($inhalt_der_datei));
$botschaft.=$inhalt_der_datei;
$botschaft.="--$grenze\n";

$botschaft.="Content-Type: application/octetstream;\n\tname=lay_mail1.gif\n";
$botschaft.="Content-Transfer-Encoding: base64\n";
$botschaft.="Content-ID: <bild_2>\n";
$botschaft.="Content-Disposition:inline;filename=lay_mail1.gif\n\n";
$zeiger_auf_datei=fopen('./images/lay_mail1.gif',"rb");
$inhalt_der_datei=fread($zeiger_auf_datei,filesize('./images/lay_mail1.gif'));
fclose($zeiger_auf_datei);
$inhalt_der_datei=chunk_split(base64_encode($inhalt_der_datei));
$botschaft.=$inhalt_der_datei;
$botschaft.="--$grenze\n";

$botschaft.="Content-Type: application/octetstream;\n\tname=lay_mail2.gif\n";
$botschaft.="Content-Transfer-Encoding: base64\n";
$botschaft.="Content-ID: <bild_3>\n";
$botschaft.="Content-Disposition:inline;filename=lay_mail2.gif\n\n";
$zeiger_auf_datei=fopen('./images/lay_mail2.gif',"rb");
$inhalt_der_datei=fread($zeiger_auf_datei,filesize('./images/lay_mail2.gif'));
fclose($zeiger_auf_datei);
$inhalt_der_datei=chunk_split(base64_encode($inhalt_der_datei));
$botschaft.=$inhalt_der_datei;
$botschaft.="--$grenze\n";

$botschaft.="Content-Type: application/octetstream;\n\tname=lay_mail3.gif\n";
$botschaft.="Content-Transfer-Encoding: base64\n";
$botschaft.="Content-ID: <bild_4>\n";
$botschaft.="Content-Disposition:inline;filename=lay_mail3.gif\n\n";
$zeiger_auf_datei=fopen('./images/lay_mail3.gif',"rb");
$inhalt_der_datei=fread($zeiger_auf_datei,filesize('./images/lay_mail3.gif'));
fclose($zeiger_auf_datei);
$inhalt_der_datei=chunk_split(base64_encode($inhalt_der_datei));
$botschaft.=$inhalt_der_datei;
$botschaft.="--$grenze--\n";

#echo $headers.$botschaft;

// Verschicken der Mail
mail($to, $subject, $botschaft, $headers)[/PHP]

Bleibt nur noch eine Sache: der background im body wird ned angezeigt. wie kann ich das machen lassen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

hm... ja also erstens wollt ich das schon, weil die komplette page marke eigenbau wird, udn zweitens funzt das bisher doch super. und nur weil eine kleine sache nicht funktioniert werde ich wahrscheinlich jetzt nicht mehr umsteigen auf ein bereits fertiges script.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bleibt nur noch eine Sache: der background im body wird ned angezeigt. wie kann ich das machen lassen?

Keine Ahnung, sollte genauso gehen... aber background ist das einzige Attribut, welchem du keine \"...\" gibst, das arme. War es denn so böse, dass es das nicht verdient? ;)

Ernsthaft, alle Attribute sollten Anführungszeichen haben, aber dein HTML Code ist eh so ne Sache... wie sagte das mal jemand hier im Forum... sieht aus wie "anno 1997".

Ansonsten, keine Ahnung. Bis auf die Anführungszeichen ist mir nix aufgefallen und ich wüßte auch nichts anderes.

EDIT:

Eine Frage: Willst du unbedingt ein Mail-Script selber schreiben? Wenn nicht, wäre die Verwendung einer bereits ausgereiften Mail-Klasse wie phpmailer wesentlich einfacher.

Einfacher wäre vieles, aber der Aufbau einer Mail ist ja nicht schwer zu verstehen... es ist IMHO doch viel besser, das mal zu kapieren, als immer gleich auf irgendwelchen Fremdcode zuzugreifen.

Gerade bei Mails schätze ich mal, das mind. 99% der Nutzer keine Ahnung haben, was eine Mail eigentlich ist und wie sie aufgebaut ist ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

es ist IMHO doch viel besser, das mal zu kapieren, als immer gleich auf irgendwelchen Fremdcode zuzugreifen.

Gerade bei Mails schätze ich mal, das mind. 99% der Nutzer keine Ahnung haben, was eine Mail eigentlich ist und wie sie aufgebaut ist ;)

so seh ich das auch, und nun kann ichs wenigstens.

Naja und die "gänselatschen" im body hab ich mal ebend so schlichthinweg vergessen ^^

es haben sich schon sehr viele leute über den style ausgelassen, wie ich programmiere, das die "<p>" die ich setzte so aussehen sollen: "<p \>" und so weiter, aber ich sag nur eins... das interessiert den user, der sich die page beguckt sowiso ned, folglich zählt auch für mich nur das ergebnis ^^

und solange wie alles funktioniert ist doch alles rosig oder? :-)

Vielen Dank an alle, die geholfen haben!

Grüße

Morfois

P.S.: Das Problem lag daran, das hotmail keinen hintergrund anzeigt (genauso wie thunderbird) ^^

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...