Akzente wie "Ä,Ö,Ü" werden in PHP Mail nicht angezeigt

  • Hallo.

    Mein Problem ist folgendes...
    Ich habe ein Kontaktformular angefertigt, und so soll man es auch nutzen.
    Wenn man allerdings aus <select> z.B. eine Option auswählt, die einen Akzent
    enthält, wird dieser in einem komischen "ä" angezeigt, wenn es ein Ä wäre.
    Das gleiche für alle anderen Akzente, weswegen ich vorübergehend alle Akzente
    durch "ae, ue, oe" ersetzt habe.

    So sieht's bei mir aus


    Ich weiß übrigens nicht warum, aber wenn ich die letzten "?><?php ?><?php" entfernen will, also die letzten die zu finden sind,
    dann bekomme ich in Zeile 35 einen Syntax Error, und garnichts will mehr. Deswegen sieht's da so aus. Vielleicht kann mir dabei auch wer helfen.

    Und so in dem Formular

    Hoffentlich kann mir da wer weiter helfen.
    Danke schonmal im Voraus.

    2 Mal editiert, zuletzt von XFgn (15. Juli 2017 um 13:18) aus folgendem Grund: Alles an Eigenlinks(Eigenwerbung) entfernt :D

  • Es fehlen die UTF-8 Angaben im HTML- und im PHP-Teil. Ohne diesen werden die Umlaute nicht richtig dargestellt.
    Ich empfehle, wie übrigens sehr viele, den PHP-Mailer.
    Du kannst die <?php nicht entfernen, deine ELSE-Bedingung muss geschlossen werden. Deshalb bekommst du dann auch die Fehlermeldung.

    Nachtrag:
    Im HTML-Code gehört das rein: <meta charset="utf-8">
    Im PHP-Mailer gehört das rein: $oMailer->CharSet = 'UTF-8';
    Im Formular gehört das mit rein: <form ..... accept-charset="utf-8">

    Gegen Mods kommt man nicht an, die haben immer Recht. Sind scheinbar nicht kritikfähig.

    Einmal editiert, zuletzt von Gastl (15. Juli 2017 um 14:22)


  • Nachtrag:
    Im HTML-Code gehört das rein: <meta charset="utf-8">
    Im PHP-Mailer gehört das rein: $oMailer->CharSet = 'UTF-8';
    Im Formular gehört das mit rein: <form ..... accept-charset="utf-8">

    Anscheinend weder, noch. Ich habe alles einfach mal an die richtigen Stellen eingetragen, Datei-Kodierung ist bereits auch schon UTF-8 ohne BOM, aber das hat mit den Angaben nicht geholfen.

    Das mit der Else-Bedingung habe ich nun auch verstanden.

    2 Mal editiert, zuletzt von XFgn (15. Juli 2017 um 14:59)

  • Es steht dir natürlich frei darüber zu denken wie du willst. Ich hatte einst das exakt gleiche Problem. https://www.forum-hilfe.de/threads/58136-…ghlight=Umlaute
    Damals habe ich hier genau diese Hilfe bekommen und seitdem sind die Umlaute in den versendeten Mails richtig.
    Die Dateikodierung hat erstmal nichts mit den Umlauten in deinem Formular zu tun.

    Gegen Mods kommt man nicht an, die haben immer Recht. Sind scheinbar nicht kritikfähig.

  • Es steht dir natürlich frei darüber zu denken wie du willst. Ich hatte einst das exakt gleiche Problem. https://www.forum-hilfe.de/threads/58136-…ghlight=Umlaute
    Damals habe ich hier genau diese Hilfe bekommen und seitdem sind die Umlaute in den versendeten Mails richtig.
    Die Dateikodierung hat erstmal nichts mit den Umlauten in deinem Formular zu tun.

    So meine ich das nicht.
    Ich meinte, dass ich die Angaben, die Du gerade geschrieben hast, eingefügt habe, es dann erneut getestet habe, aber die Umlaute/Akzente trotzdem nicht funktionieren.

    Im Browser kommt alles richtig an, allerdings nicht in der Mail die dann erhalten wird.

    3 Mal editiert, zuletzt von XFgn (15. Juli 2017 um 15:25)

  • Erzeuge eine HTML-Mail und verwende zum Senden eine Mailer-Klasse w.z.B. den phpMailer, dann klappt es auch mit den Umlauten.

  • Erzeuge eine HTML-Mail und verwende zum Senden eine Mailer-Klasse w.z.B. den phpMailer, dann klappt es auch mit den Umlauten.

    Den bekomme ich wie? Bei den ganzen Google Ergebnissen habe ich keine Ahnung.

  • Github

    - - - Aktualisiert - - -

    Github

    - - - Aktualisiert - - -

    Github...

    - - - Aktualisiert - - -

    Bei mir kommt es auf Platz 1.

    - - - Aktualisiert - - -

    Forenpanne: sorry

    Gegen Mods kommt man nicht an, die haben immer Recht. Sind scheinbar nicht kritikfähig.

  • Lade ich die Dateien einfach runter und packe die in einen Ordner auf dem Server? Scheint mir so.

    - - - Aktualisiert - - -

    Ich habe das Problem mehr oder weniger lösen können. Alle Akzente werden jetzt normal gezeigt.
    Allerdings, werden Akzente im Betreff der Mail nicht richtig kodiert, weiß wer wieso da nicht, aber in dem Rest der Mail schon?

    Und die Zeilenbrüche die ich gesetzt habe/die gesetzt werden sollten, werden nicht mehr in der Mail angezeigt.

    6 Mal editiert, zuletzt von XFgn (15. Juli 2017 um 20:00) aus folgendem Grund: Peinlicher Tippfehler

  • Was hast du nur immer mit deinen Akzenten? Ein Akzent ist etwas völlig anderes als ein Umlaut.

    Und was hast du nun gemacht?

    Hast du das aus meinem Post #3 umgesetzt? Dann sollten die Umlaute auch im Betreff richtig rüberkommen.

    Gegen Mods kommt man nicht an, die haben immer Recht. Sind scheinbar nicht kritikfähig.

    • Offizieller Beitrag

    Hallo,

    Wie bereits von den Helfern erwähnt, sind die Encoding-Angaben ausschlaggebend für die korrekte Darstellung der Zeichen.
    Warum UTF8 bspw. nicht bereits standardisiert durchgezogen wird, ist mir bisher ein Rätsel, aber wenn man sich an allen Stellen strikt auf Unicode festlegt, sollte nichts schief gehen.
    Die wichtigsten Encoding-Stellen für Web-Anwendungen, sind hier kurz erklärt: http://www.php-rocks.de/thema/98-die-utf8-verschw-rung.html

    Zum Thema Mail wurde bereits der PHPMailer genannt, hier ein einfaches Tutorial dazu: http://www.php-rocks.de/thema/51-html-…-phpmailer.html
    Alternativ und als meine persönliche Empfehlung sei noch der SwiftMailer genannt, auch dazu ein kleines Tutorial: http://www.php-rocks.de/thema/91-html-…wiftmailer.html

    Mit den Mailer-Klassen ist man definitiv auf der sichereren Seite, was RFC konforme Mails angeht. Ob man SMTP verwendet oder mail()-Fallback ist dabei erstmal egal.
    Die Mailer-Klassen bereiten die Mail-Daten mit Sicherheit deutlich konformer auf, als man selbst ( außer man ist RFC-Experte ) es könnte und eignen sich selbst ohne SMTP hervorragend für den "sicheren" Mail-Versand.

    Zitat

    Und die Zeilenbrüche die ich gesetzt habe/die gesetzt werden sollten, werden nicht mehr in der Mail angezeigt.

    Vermutlich versendest Du HTML-Mails? Da werden Steuerzeichen nicht berücksichtigt bzw. tlw. in ein Leerzeichen umgewandelt.

  • Was hast du nur immer mit deinen Akzenten? Ein Akzent ist etwas völlig anderes als ein Umlaut.

    Und was hast du nun gemacht?

    Hast du das aus meinem Post #3 umgesetzt? Dann sollten die Umlaute auch im Betreff richtig rüberkommen.

    Ist so ein Gewohnheitsding, wegen damaliger falscher Belerehrung in Sachen Sprachen und deren Aussprache, wenn man das so sagen kann. Nicht alle Lehrer sind gute :-D. Aber dass das Umlaute sind, ist mir bewusst.

    Jedenfalls indirekt. Ich habe anfangs das aus deinem Post umgesetzt. Das hat allerdings nicht geholfen. Deswegen habe ich mir den Link von einem vorherigen Post angeschaut, das dann umgesetzt, was aus i-einem Grund auch nicht funktioniert hat. Das Problem war letzten Endes ein nicht gesetztes Leerzeichen, und ein vergessener Punkt.

    Das heißt, dieses oMailer Ding hat bei mir nicht funktionert, $headers .= "Content-Type: text/html; charset=UTF-8\n"; aus deinem vorherigen Post aber schon.

    Deswegen Danke :)

    Die Umlaute kommen aber im Betreff trotzdem nicht richtig an.

    Einmal editiert, zuletzt von XFgn (17. Juli 2017 um 12:45)

    • Offizieller Beitrag
    Zitat

    $headers .= "Content-Type: text/html; charset=UTF-8\n";

    ...und schon mit einer einzigen Zeile gegen RFC 5321 verstoßen! Aber ich bin nicht Don Quichotte, macht was ihr meint, aber wundert euch nicht, wenn ihr irgendwann mal als Spam eingestuft werdet.

  • ...und schon mit einer einzigen Zeile gegen RFC 5321 verstoßen! Aber ich bin nicht Don Quichotte, macht was ihr meint, aber wundert euch nicht, wenn ihr irgendwann mal als Spam eingestuft werdet.

    Dann ist das halt so. Jedoch hat aus deinem Artikel-Hilfe-Ding aus PHP Rocks header (...); auch nicht funktioniert. Das habe ich zwischendurch auch ausprobiert. Wenn deine Hilfe nicht funktioniert hat, dann ist das halt so. Wenn man deswegen als Spam eingestuft wird, ist dann halt einfach so. Tatsache ist aber dass dein PHP-rocks Artikel nicht geholfen hat.

    Ist mir jetzt auch wurscht. Tatsache ist dass header nicht hilft, das andere aber schon. Dann bin ich halt Spam, und Punkt.

    2 Mal editiert, zuletzt von XFgn (17. Juli 2017 um 12:59)

    • Offizieller Beitrag

    Mag sein, aber dann bist Du nicht in der Lage den PHPMailer oder SwiftMailer korrekt zu verwenden!
    Die Tutorials sind fehlerfrei, es haben schon viele andere damit sinnvoll die beiden Mailer integriert.

    Und sorry, wer nicht in der Lage ist, eine der beiden Klassen in Verbindung mit einer einfachen Doku zu implementieren, sollte die Finger komplett von mail() lassen, wie man an Deiner Header-Zeile erkennen kann.
    Ich wette, Du weißt noch nicht mal, was daran verkehrt ist. Das muss man auch nicht unbedingt wissen, wenn man sich damit nicht beschäftigt, aber wer meil() roh verwendet, sollte sowas wissen bzw. sich damit beschäftigen.

    Ich finde es auch sehr vorbildlich, wenn jemand auf den Hinweis, dass man irgendwann als Spam eingestuft wird völlig resistent antwortet:

    Zitat von XFgn

    Dann ist das halt so.


    Es scheint nicht mal der Wille da zu sein, es richtig zu machen, Hauptsache es funktioniert erstmal...

    Viel Erfolg, ich hoffe Du versendest nicht zu viel Mails auf die Weise.
    Je mehr, desto schneller läufst Du Gefahr, als Spam eingestuft zu werden.
    Aber was rede ich, es "ist dann halt so"...


    EDIT: Auch geil:

    Zitat von XFgn

    Dann bin ich halt Spam, und Punkt.


    [MOD: geschlossen]