Kontaktformular erzeugt kryptische Zeichen

  • Ich habe ein Kontaktformular (PHP), das E-Mails mit der Methode POST an eine Mailadresse verschickt. Dabei werden die Umlaute wie ä,ö,ü usw in kryptischen Zeichen angezeigt.


    Beispiel

    Code
    Glückwunsch

    Gibt es eine Möglichkeit dies auszuschließen?

  • Hatte dieses Problem auch schon und musste dann feststellen, dass die Codierung in der Datei trotz gegenteiliger Angaben nicht gestimmt hatte. Konnte das Problem dann so lösen, in dem ich gesamten Datei-Inhalt kopiert, in eine neue Datei eingefügt und neu als z. B. Text unter UTF-8 gespeichert habe.

  • Dass eine Konstante definiert ist, bewirkt erst Mal gar nichts, Du musst UTF-8 auch einschalten.

    Der Vorschlag auf Stackoverflow sieht so aus:

    Code
    $mail->CharSet = "UTF-8";

    aber Du kannst natürlich auch die Konstante zuweisen.

  • Ich weiß nicht wo der Code rein soll.

    Hier ist mein HTML/ PHP Code. Soll das $mail->CharSet = "UTF-8"; in den PHP-Codebereich integriert werden?


  • Dein Fehler liegt hier:

    Code
    if(mail($toEmail, $userName, $mailHeaders))

    Du benutzt die Mail-Funktion von PHP, die aber nur eine Krücke ist und eigentlich nicht benutzt werden sollte. Statt dessen sollte man eine Mail-Klasse verwenden, w.z.B. den phpMailer.


    Warum du die mail-Funktion trotzdem benutzt, bleibt dein Geheimnis, besonders nach diesen Threads:



    Und das alles machst du für eine kommerzielle Seite mit kostenloser Hilfe aus dem Forum.

  • Ich komme jetzt nochmal mit diesem Thema.


    Eine Lösung habe ich jetzt ohne weitere Hilfe gefunden. Trotzdem danke für die Unterstützung hier. Was bei mir immer noch ein Fragezeichen auslöst ist die Aussage, dass die Mail-Funktion von PHP nur eine Krücke sei.


    Warum ist das so und warum ist die Einbindung des PHP-Mailers keine Krücke und somit die beste Lösung?


  • Warum ist das so und warum ist die Einbindung des PHP-Mailers keine Krücke und somit die beste Lösung?

    Ganz einfach. Die Mail-Funktion setzt keine Mail-Header automatisch, darum muss man sich selber kümmern. Dabei kann man sehr leicht Fehler machen und das Ergebnis ist dann, dass die Mail nicht ankommt oder im Spam-Ordner verschwindet. Außerdem ist eine Authentifizierung des Absender damit nicht möglich, allerdings verlangen viele Mail-Server genau diese Authentifizierung. Weiterhin kannst du mit der Mail-Funktion keine Mails per SSL versenden, auch das ist ein Ko-Kriterium für viele Mail-Server. Zu dem kommt noch, dass die Mail-Funktion keine Auskunft darüber gibt, ob die Mail auch tatsächlich gesendet wurde. Der boolsche Wert, den die Funktion zurück gibt, hilft kein Stück weiter. Aus der Doku zur mail-Funktion:


    Zitat

    Gibt true zurück, wenn die Mail erfolgreich zur Zustellung angenommen wurde, andernfalls false.


    Es ist wichtig zu beachten, dass nur weil die Mail zur Zustellung angenommen wurde, dies NICHT bedeutet, dass die Post auch tatsächlich das vorgesehene Ziel erreichen wird.

    Ich denke, das sind genug Gründe, um auf eine fertige Mail-Klasse w.z.B den phpMailer zurückzugreifen, mit dem man eher auf der sicheren Seite ist.

  • Danke .scatello, das sind viele gute Gründe den phpMailer zu verwenden. Eigentlich hätte ich die Information auch googlen können ;) , aber Deine Erklärung ist einfach verständlicher!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!