PHP mail() trotz UTF-8 keine Umlaute
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzahl
bit
browser
code
dank
datei
email
faktor
header
http
korrekte darstellung
nachricht
niemand
problem
standard
tun
umlaut
url
verschicken
western
-
Liebe lc-community!
Ich habe folgendes .php script, das eine mail() Funktion ausführt. Aus früheren threads und google habe ich erfahren, das UTF-8 eingefügt werden muss, damit Umlaute korrekt dargestellt werden.
$to = "se@email.com"; // this is your Email address $from = "se@email.com"; // this is the sender's Email address $last_name = $_POST['name']; $subject2 = "Ihre Reservierung ist eingegangen"; $message2 = "Sehr geehrte/r Frau/Herr " . $last_name . "!\n\nHerzlichen Dank für Ihre Reservierung! Es wurden für Sie unter Ihrem Namen ".$_POST['seats']." Plätze für den 21. reserviert.\nDie Kartenpreise lauten wie folgt: Erwachsene € 12,- & Kinder/Jugendliche € 6,-.\nWir freuen uns, dass Sie eine unserer Aufführungen besuchen werden.\n\nMit freundlichen Grüßen,\nDas Team der Bühnenspiele\n"; $headers = "Mime-Version: 1.0\r\n"; $headers .= "Content-Type: text/plain; charset=utf-8\r\n"; $headers .= "Content-Transfer-Encoding: quoted-printable\r\n"; $headers .= "From: app@czern.in\r\n"; mail($_POST['email'],$subject2,$message2,$headers);
Leider werden Umlaute dennoch als ? dargestellt... Trotz UTF-8
Bitte um Eure Hilfe,
lg Max
Beitrag zuletzt geändert: 15.5.2014 22:19:46 von mczernin -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
das könnte eventuell helfen: http://www.lima-city.de/thread/problem-mit-umlaute-aus-mysql/page:0/perpage:100#1117962
-
das könnte eventuell helfen: http://www.lima-city.de/thread/problem-mit-umlaute-aus-mysql/page:0/perpage:100#1117962
Puhh, da stehen ja viele Informationen... Bitte korrigiere mich wenn ich falsch liege (.php Anfänger), aber da ist doch nur eine Info, die für mich relevant ist (nämlich im header charset=utf-8) und die habe ich doch in meinem code...), oder?
Beitrag zuletzt geändert: 15.5.2014 22:55:03 von mczernin -
dein prog funktioniert einwandfrei. mal nachgesehen, ob du im browser die richtige einstellung hast?
-
Nein, es spielen beim Charset viele Faktoren eine Rolle.
Bei dir wäre auch relevant, dass du deine PHP Datei auch in UTF-8 abgespeichert hast.
Die .php Datei ist in utf-8 abgespeichert.... Und an welche Faktoren hättest du da noch gedacht? Ich habe vorher irgendwas mit ISO-XXXX gesehen...
dein prog funktioniert einwandfrei. mal nachgesehen, ob du im browser die richtige einstellung hast?
Nachdem leider jeder Besucher, der das Formular abgesendet hat, ein Mail voll mit Fragezeichen erhält, glaube ich nicht, dass es an meinem Browser liegt :(
Das komische ist ja, dass wenn man sich die Mail über die Lima-Mail Oberfläche anzeigen lässt, alle umlaute zu sehen sind...
Beitrag zuletzt geändert: 15.5.2014 23:19:07 von mczernin -
das habe ich an mich geschickt: czibere.lima-city.de/img/utf8mail.png
wie all-in1 auch schon bemerkte, du solltest alles durarbeiten, was dort im langen beitrag steht! -
Ok, danke! Ich würde Euch gerne eine positive Bewehrung geben, aber das kann ich irgendwie noch nicht... Also auf diese Art: Danke!
Eine letzte Frage: gibt es einen unterschied zwischen meinem code und diesen hier? :
$header .= "Content-type: text/plain; charset=iso-8859-1"
-
ja, dass es eben nicht utf-8 sondern western charset ist.
-
ja, dass es eben nicht utf-8 sondern western charset ist.
ich hab das jetzt einmal ausprobiert und uff-8 mit charset=iso-8859-1 ersetzt. Es hat funktioniert!! Bei allen mails werden die umlaute korrekt angezeigt!!!
Danke trotzdem für Eure Hilfe! -
Das hört sch dumm an. Aber ich habs schonmal gabracht die Codierung als UTF-8 zu definieren, dafür aber dann das Dokument in ASCII abzuspeichern. Leichter Fehler, wird dann aber falsch encodiert -> falsche Umlaute ;)
-
Leichter Fehler, wird dann aber falsch encodiert -> falsche Umlaute ;)
Ja aber mit werden die Umlaute nun richtig dargestellt! Ich habe ein wenig recherchiert und gelesen, dass viele verschieden Zeichensätze in dieser ISO integriert sind, wobei in UTF-8 mehr Sonderzeichen dabei sind... Egal, auf jeden Fall bin ich jetzt zufrieden, da es funktioniert... Aber warum es jetzt geht weiß ich noch immer nicht... Irgendwer eine Ahnung? -
mczernin schrieb:
ich hab das jetzt einmal ausprobiert und uff-8 mit charset=iso-8859-1 ersetzt. Es hat funktioniert!! Bei allen mails werden die umlaute korrekt angezeigt!!!
Eine sehr egozentrische Sicht. Es hat bei allen Mails funktioniert,die DU dir anschaust. Heißt das, daß da Problem wirklich gelöst ist? Nein!
ISO-Charsets sind ein, nur regional beschränkt gültiger Zeichenbereich. Deinen Usern tust Du damit keinen Gefallen. UTF-8 ist der richtige Weg! Wenn es da Probleme gibt, sollte man diese beseitigen und nicht auf "kleine", vermeintliche Lösungen ausweichen. Da wäre es besser und einfacher, grundsätzlich auf Umlaute&Co zu verzichten. ^^
-
Es hat bei allen Mails funktioniert,die DU dir anschaust.
Heisst das wenn ich es jetzt über ein anderes Geräte versuche, wieder Fragezeichen sind? Moment ich versuche es gleich und sag dann Bescheid.
EDIT Es werden tatsächlich auch auf 2 fremden Geräten Umlaute richtig dargestellt...
Beitrag zuletzt geändert: 17.5.2014 11:37:25 von mczernin -
ich beantworte das mal...
Um Utf8 tatsächlich in mails hinzubekommen, musst du 3 Dinge tun!
1. Im Header anweisen
2. Datei als Utf8 abspeichern und beides hast du getan.
Der dritte Punkt ist aber die Anweisung mit meta tag deiner Nachricht. Ich hatte das Problem damals gehabt und es ist auf mit dem meta tag zu 100% gelöst gewesen.
Sprich
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> </html>
Damit wird es immer funktionieren.
Beitrag zuletzt geändert: 17.5.2014 19:14:49 von master4860 -
master4860 schrieb:
du wiederholst aus vorigen beiträgen (gilt für fast alle und auch in anderen threads) und am ende verräts ihm nicht, woher dein <html> ... herkomt (in keinem beitrag bisher steht irgendwo ;)
ich beantworte das mal...
ich kann es nur vermuten, dass du ihm gerade vorschlägst html-emails zu verschicken!? dann solltest es ihm auch erklären, wie das exakt geht und warum er das tun soll. (wenn html-email nicht unbedingt nötig ist, stosst vielen nach so einem mail sauer auf - mir auf alle fälle ;)
und zum schluss: bevor du nochmals hierauf reagierst, lies alle beiträge (mitsamt links). -
Sorry aber wo is das jetzt nicht zu verstehen? Mein Beitrag war nicht böse gemeint, aber du sendest doch immer eine html Mail.
Wer sendet denn heute nur reinen Text... . Er hat den Header Teil etc., stimmt doch auch! Habe ich ihm ja auch gesagt nur um die Utf8-Formatierung hinzubekommen, muss er es auch noch im Html-Bereich machen. Bei reinem Text der Umlaute enthält wird es immer zu Zeichencodierungsfehlern kommen können. Wenn man es verhindern möchte muss man eben es eben per Code anweisen... . So wie ich es gesagt habe! Per html... . Naja wo kommt der Html-Bereich rein?
Natürlich in den Nachrichten Teil... .
$msg = "<html>...</html>"
Wenn der Threadersteller eine explizite Frage hat soll er diese stellen! Ich kann diese ihm auch erklären, aber dein Problem versteh ich echt nicht... . Zudem ich nichts wiederhole... . Wer hat denn bisher erwähnt gehabt das es 3 Dinge gibt die man für die korrekte Zeichendarstellung tun muss? Das kann ich hier nirgendswo lesen außer in meinem letzten Beitrag! -
master4860 schrieb:
schau mal vorbei bei solchen seiten wie z.b. ccc.de (mailing lists). niemand würde sich dort trauen, html-mails von sich zu rülpsen.
... Wer sendet denn heute nur reinen Text...... Wer hat denn bisher erwähnt gehabt das es 3 Dinge gibt die man für die korrekte Zeichendarstellung tun muss? Das kann ich hier nirgendswo lesen außer in meinem letzten Beitrag!
wie ich schon sagte 'lies alle beiträge (mitsamt links)'. damit war der zweite beitrag gemeint in diesem thread und vor allem ein link dort. wenn du dorthin findest, kannst leicht erkennen, dass 3 dinge für eine korrekte darstellung unter umständen nicht ausreichen ;)
lerne lesen! -
master4860 schrieb:
Wer sendet denn heute nur reinen Text... .
Einfache, klare Antwort: Jeder, der eine möglichst große Zahl von Empfängern problemlos erreichen und seine Leser nicht mit überflüssigem Rotz belästigen will.
Beitrag zuletzt geändert: 26.5.2014 1:27:11 von fatfreddy -
Okay also die Links habe ich nicht angesehen, muss ich zugeben. Ohne die Links wurde es noch nicht erwähnt mit dem von dir gesendeten Link zu einem deiner Beiträge in Beitrag 2, von diesem Thread, allerdings schon.
Dein Beitrag über utf8 ist sehr ausführlich und beinhaltet alle 3 Punkte und noch mehr. Das was du dort aber sonst noch so erwähnst betrifft nur indirekt die korrekte Darstellung. Sprich Datenbanken, etc. . Wie gesagt ich entschuldige mich dafür das ich den Link nicht gecheckt habe, aber für eine korrekte Darstellung sollten dennoch alle 3 von mir genannten Punkte ausreichen. Hatte selbst zumindest auf diesem Wege noch nie Zeichensatz Probleme. Wie gesagt beim nächsten mal prüfe ich bevor ich einen Beitrag verfasse auch noch die bereits geposteten Links und den damit verbundenen Inhalt!
Fatfreddy inwiefern sollten HTML Mails denn die Anzahl der Empfänger einschränken... ?
Facebook, eBay, amazon, etc.
Verschicken HTML Mails und haben wohl auch nicht gerade wenig Empfänger^^.
Ich weiß das du von problemlos erreichen auch gesprochen hast aber auch da sehe ich keine Probleme...
Beitrag zuletzt geändert: 26.5.2014 2:19:27 von master4860 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage