Umlaute in eMails?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angabe
beitrag
benutzer
best
encoding
erfolgen
formular
funktion
kontrolle
manual
mimen
nachtrag
normalerweise
plain
skript
stehen
thw
umlaut
versendende client
versuchen
-
Hallo,
ich bastel zur Zeit an so einem Online-Buchungsformular. Ist auch schon alles ganz fein, und da wollte ich dem Benutzer gern noch eine Best?tigung per Mail schicken (mit der mail()-Funktion). Hab' da halt einen sch?nen Text geschrieben und auch gleich die Formulardaten zur Kontrolle nochmal angeh?ngt. Leider bekomme ich es einfahc nicht hin, dass die Umlaute vern?nftig darstellbar werden. Hab' mit verschiedenen Angabe im Mailheader herumexperimentiert (quoted-printable, UTF-8, ISO-8859-1 usw.). Die Umlaute werden immer entwede runter Windows oder unter Linux verschmissen. Manchmal gehen nru die Umlaute verloren, die der Benutzer ins Formular eingegeben hat, manchmal nur die, die im Skript sozusagen "hardcoded" sind. Manchmal auch alle
Wie muss man dass denn anstellen, dass die Mial unter allen Systemen halbwegs leserlich wird?
Ein Beispiel f?r einen Header, den ich gemacht habe, sieht so aus:
Mime-Version: 1.0\nContent-type: text/plain; charset=ISO-8859-1\nContent-transfer-encoding: quoted-printable
Ich hab auch mla mit der Funktion quoted_printable_decode() herumgespielt, hat aber auch nicht wirklich zum Erfolg gef?hrt :-/
MfG,
thw -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi,
versuche es doch mit htmlentities (http://www.php.net/manual/de/function.htmlentities.php).
Mit dieser funktion werden alle Umlaute und HTML-Zeichen umgewandelt (z.B. ü ist ?).
mfg,
hr -
heavyraptor schrieb:
versuche es doch mit htmlentities
Das bringt aber nur was, wenn man eine HTML-E-Mail versendet. Bei einer normalen Text-E-Mail hast du dann die HTML-Codes im Text stehen. -
Wie 0-checka schon gesagt hat, muss es dazu 'ne HTML-Mail sein. Ich w?rde lieber 'ne Textmail senden, HTML w?re sozusagen die "Notl?sung".
Au?erdem funktioniert htmlentities auch nicht richtig. Der ersetzt zwar brav alle Zeichen, aber die Umlaute werden dadurch nur noch komischer :-/
Hab' mir deshalb schon vor l?ngerer Zeit mal eine eigene htmlentities-Funktion geschrieben -
Ich kann mir das eigentlich nur so erkl?ren (der von dir benutzte Header scheint ok zu sein):
- Der versendende Client (sendmail) unterst?tzt kein MIME
- Der SMTP-Server f?r die Empf?ngerdomain unterst?tzt kein MIME
- Der empfangende Client (Mail-Programm) unterst?tzt kein MIME
Musst du mal ?berpr?fen. Falls du dein Skript auf deinem eigenen Rechner ausprobierst, k?nnte ich mir vorstellen, dass sendmail falsch konfiguriert ist.
Probier es mal hier auf lima. Ansonsten mal z.B. bei GMX einen Testaccount einrichten und dorthin was schicken. -
Oh, die Mailfunktion geht hier auf llima? Sch?n, wieder was gelernt :-)
Nee, auf meinem Rechner geht das net weil ich keine PHP-Mail-Funktion unterst?tze. Ich hab's im Uni-Rechenzentrum probiert, da sollte das sendmail eigentlich richtig konfiguriert sein... denke ich :-/
Naja, ich werd's nachher mal auf lima probieren. Danke auf jeden Fall erstmal! -
Hi thw,
ich hab das so gemacht, dass ich meine mysql datenbank in utf-8 angelegt habe und in der
ausgabe(also auch mail) den kodierten utf8-text dekodiert habe mit utf8-decode()
(http://www.php.net/manual/de/function.utf8-decode.php).
Mit dieser Funktion werden alle utf8zeichen in ISO-8859-1 Zeichen umgewandelt (z.B. ? ist ý).
-
Ich sehe irgendwie nicht, was das mit Datenbanken zu tun haben soll. Am Ende hast du in deinem PHP-Skript wieder ein simples "?" stehen, genau wie am Anfang.
Nachtrag:
Mir ist gerade was am Header aufgefallen. Normalerweise m?sstest du statt "\n" "\r\n" benutzen. Ist bei SMTP genauso wie bei HTTP. Die passenden RFCS dazu m?ssten sein: 821 und 2045.
Beitrag ge?ndert am 29.01.2006 15:14 von 0-checka -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage