mail () funktion in php -> wie verschicke ich html mails?

DjDee

Erfahrenes Mitglied
HILFE! *g*

also ich habe folgendes script das eine bestellung verarbeitet und abschickt:

<?
$bestellung = nl2br($bestellung);
$header = "Bestellung von: \"$Name\"";
$nachricht = "$Name hat folgende Bestellung aufgegeben:\n\n $Telefonnummer\n\n Die Bestellung:\n\n $bestellung\n\n Uhrzeit der Abholung: $Uhrzeit";
mail("das-fruchtlaedchen@das-fruchtlaedchen.de", "Bestellung Abhol-Service", "$nachricht", "From: Bestellung von $Name <bestellung@das-fruchtlaedchen.de>");
?>

wie kann ich jetzt html mails verschicken das das ganze am ende so aussieht:

oh html is ja aus... egal

ich will jedenfalls das hinterher in der mail alles schön geordnet in tabellen erscheint! gibt es diese möglichkeit?

HILFE !
 
diese Möglichkeit gibt es.

Du musst im Quelltext irgendwie den MIME-Type mit angeben.
Hab das mal gemacht, um von der Webseite aus Dateianhänge verschicken zu können.

Allerdings is das schon einige Zeit her, und ich weiß net mehr genau wie das war.

Ich kann Dir aber folgenden Tip geben (so hatte ich das damals gemacht):

schau Dir mal von einer HTML-Mail den Quelltext an (z.B. in Outlook-Express), und versuche diesen "Nachzubauen" .... also in den Message-Bereich muss dann sowas wie "MIME-Type: HTML" oder so.

Gruß
Dunsti
 
nein, es war nicht im Formular.

Im Nachrichtentext ! (also im Inhalt) der Mail steht ungefähr sowas:

Code:
MIME-Version: 1.0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<HTML>
...
</HTML>

Gruß
Dunsti
 
ja sowas dachte ich mir, nur wie gebe ich das an den mail() befehl weiter? weil es ja nich im body steht der gesendet wird! das muss ja irgendwie in den ´header rein...

dunsti hilf :)
 
Hi!

ich denke so müsste es gehen:
mail("mail@mail.de", "Subject", $HTML_MESSAGE, "Content-Type: text/html;");

mfg,
ZZZottel
 
@Dunsti
Hab das mal gemacht, um von der Webseite aus Dateianhänge verschicken zu können.


Wieeeeeeeeeeeeeee hast du das gemacht ich rafs einfach nicht haste da vieleicht ein kleines Codeschnipsel zum spicken für mich :%

Tob
 
ok ok .... hier das Schnipsel:

PHP:
$recipient = stripslashes($recipient);
$sender = stripslashes($sender);
$frommail = stripslashes($frommail);
$subject = stripslashes($subject);
$nachricht = stripslashes($nachricht);  //die Felder aus dem Formular
$content = "Hallo \"$recipient\",\n\nJemand hat Dir über unsere Webseite eine Nachricht geschickt:\nAbsender: $sender\nE-Mail: $frommail\nBetreff: $subject\n-----------------------------------------------------\n$nachricht\n-----------------------------------------------------\n";
if ($file_name) {
   $path_to_file = "/is/htdocs/xxx/xxx/contact/email/upload/";
   $location = $path_to_file.$file_name;
   copy($file,$location);
   unlink($file);
   $fd = fopen($location, "r");
   $anhang = chunk_split(base64_encode(fread( $fd, filesize($location))));
   fclose($fd);
   $header = "MIME-Version: 1.0\nContent-Type: multipart/mixed; boundary=\"========123456789\"";
   $content = "--========123456789\nContent-Type: text/plain; charset=\"us-ascii\"\nContent-Transfer-Encoding: 7bit\n\n\n".$content."\n--========123456789\nContent-Type: $file_type; name=$file_name\nContent-Transfer-Encoding: base64\nContent-Disposition: attachment; filename=\"$file_name\"\n\n".$anhang;
}
	mail($recipient,$subject,$content,"From: $sender <$frommail>\n".$header);
if ($file_name) {
	unlink($location);
}
header("Location: thanks.html");

ich hoffe ihr könnt folgen ;)

Gruß
Dunsti
 
wenn Du's vom Prinzip verstanden hast (mehrere Sections, immer mit dem "=========123435..." getrennt) brauchst Du nur eine Section mit "Content-Type: Text/HTML" einzufügen.

Gruß
Dunsti
 
Zurück