Autor |
Nachricht |
beeviZ
Threadersteller
Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mo 20.06.2005 22:07
Titel [php] Müll mit mail() wenn Charset=utf-8 |
|
|
ey ich versuch gerade ne simple mail per php zu verschicken. das sieht so aus:
Code: |
$header = "From: Absender <info@absender.de>\r\n";
$header .= "Content-Type: text/plain; Charset=utf-8\r\n";
mail($empfaenger,"Betreff","Dum di dum $bla usw ...",$header);
|
funktionieren tut das. Die mail kommt als UTF-8 an, der empfänger ist auch richtig angegeben. Allerdings schreibt der an den Anfang jeder verdammten mail sonen scheiß wie:
Zitat: | Message-Id: <20050620210442.C7ACD3D9FE@dd5120.kasserver.com>
Date: Mon, 20 Jun 2005 23:04:42 +0200 (CEST)
X-UIDL: ><J!!a;R!!0mo"!!]*#! |
Wenn ich den Content Type und den Charset, nein ich glaub eigentlich nur den Charset, weglasse, dann funktionierts. Sobald UTF-8 dann steht der müll von oben in der mail. Woran liegt das, wie kann ich das ändern, und überhaupt was soll der scheiß?
|
|
|
|
|
Honk
Dabei seit: 20.08.2003
Ort: Bremer Outback
Alter: 45
Geschlecht:
|
Verfasst Mo 20.06.2005 23:40
Titel
|
|
|
das sind doch nur header, oder?
und die siehst du in der mail, also da wo eigentlich der mailbody sein sollte, ja?
wie sieht denn der "quellcode" der mail aus, im vorher/nachher-vergleich?
|
|
|
|
|
Anzeige
|
|
|
beeviZ
Threadersteller
Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 21.06.2005 01:24
Titel
|
|
|
klar. da wo $header steht is header. das is logisch )
und das was da im mailbody steht sollte wohl auch eigentlich in den header denke ich. isses nur nich. nur warum?
wie komm ichn bei ner text/plain email an den "quelltext"? oder wat meinste?
der header is komischerweise bei beiden so ziemlich gleich, ausser das wenn ich den charset weglasse iso-8859-1 is, und nich utf-8 logischerweise *g*
hatte ursprünglich nen code von php.net. der funktionierte aber genauso wenig. scheint also mein php müll zu sein.
Code: | /* Um eine HTML-Mail zu senden, können Sie den den "Content-type"-Header.
setzen */
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
/* zusätzliche Header */
$headers .= "To: Mary <mary@example.com>, Kelly <kelly@example.com>\r\n";
$headers .= "From: Geburtstags-Erinnerung <geburtstag@example.com>\r\n";
$headers .= "Cc: geburtstagsarchiv@example.com\r\n";
$headers .= "Bcc: geburtstagscheck@example.com\r\n"; |
hab noch altes 4.3.1 laufen. könnt das daran liegen?
|
|
|
|
|
chrikle
Dabei seit: 02.05.2002
Ort: NRW
Alter: 47
Geschlecht:
|
Verfasst Di 21.06.2005 10:14
Titel
|
|
|
Soweit ich weiß brauchste bei ner "normalen" mail keinen Content-Type setzten.
Also sollte dein Script so funktioneiren:
Code: | mail($Empfaenger, $Betreff, $Nachricht, "From: Absender <info@absender.de>") |
Anders sieht das bei HTML-Mails aus. Da musst du entsprechende Headers mitliefern.
Schau mal hier nach:
Webmaster-Ressource | HTML-eMails verschicken
Gruß
Chris
|
|
|
|
|
beeviZ
Threadersteller
Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 21.06.2005 10:30
Titel
|
|
|
hmm. wie sende ich denn utf-8 wenn ich text/plain verschicke? ich mein, wenn ich statt "Content-Type: text/plain; charset=UTF-8" einfach nur "charset=UTF-8" schreibe, dann schickter die mail auch als iso-8859-1, und schreibt "charset: utf-8" in den messagebody. auch nich das wahre. und gesendet werden muss das leider als utf8, weil die ganze seite in utf8 is, und das formular aus dem gesendet wird auch. und die ganze seite jetzt noch auf iso-8859-1 umzustellen is wesentlich komplizierter als die mail als utf-8 zu schicken. denk ich. weiß nich.
|
|
|
|
|
chrikle
Dabei seit: 02.05.2002
Ort: NRW
Alter: 47
Geschlecht:
|
Verfasst Di 21.06.2005 10:36
Titel
|
|
|
Jo, dann mach es doch so, wie im LINK beschrieben:
Code: | 1 <?php
2
3 $Empfaenger = "eine@mailadresse.de";
4 $Betreff = "Meine erste HTML-Mail";
5
6 $Nachricht = "
7 <html>
8 <head>
9 <title>Meine erste HTML-Mail</title>
10 </head>
11 <body bgcolor=\"blue\" text=\"white\">
12 <font face=\"arial\" size=\"4\">Dies ist meine erste HTML-Nachricht mit PHP</font>
13 </body>
14 </html>
15 ";
16
17 $Header = "MIME-Version: 1.0\n";
18 $Header .= "Content-type: text/html; charset=utf-8\n";
19 $Header .= "From: Mein Name <meine@mailadresse.de>\n";
20
21 mail($Empfaenger, $Betreff, $Nachricht, $Header);
22
23 ?>
|
Wobei du natürlich bei den Zeilen 7-14 auch ganz normalen Text schreiben kannst. Sprich ohne Tabellen-Krams
Gruß
Chris
|
|
|
|
|
beeviZ
Threadersteller
Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 21.06.2005 10:46
Titel
|
|
|
ok danke. ich werd heute abend mal schauen. wobei ich eigentlich drauf verzichten wollte html mails zu verschicken => seuche
|
|
|
|
|
chrikle
Dabei seit: 02.05.2002
Ort: NRW
Alter: 47
Geschlecht:
|
Verfasst Di 21.06.2005 10:50
Titel
|
|
|
Sonnst versuch es nochmal mit dieser Schreibweise:
Variante 1:
Code: | mail($Empfaenger, $title, $message, 'From: Absender <info@absender.de>'."\r\n".'Content-Type: text/plain; charset="UTF-8"'); |
Variante 2 (UTF nicht in Anfürhungszeichen ?):
Code: | mail($Empfaenger, $title, $message, 'From: Absender <info@absender.de>'."\r\n".'Content-Type: text/plain; charset=UTF-8'); |
Wichtig dabei sind die Notationen. Genau drauf achten
Gruß
Chris
Zuletzt bearbeitet von chrikle am Di 21.06.2005 10:56, insgesamt 1-mal bearbeitet
|
|
|
|
|
|
|
|
Ähnliche Themen |
charset -> ich blicks nicht
[javascript] mootools ajaxrequest charset
Charset 8859-1 - Probleme mit Umlauten
Charset vorhanden dennoch keine Umlaute
[Hilfe] IE macht müll
Browser zeigt richtigen Titel, Google & Co. indizieren Müll
|
|