UTF-8 und HTML in PHP Email

  • Hallo,

    ich habe ein Stück PHP-Code, das per Mail versendet wird.

    Cool wäre es, wenn die Mail dann HTML und UTF-8 erkennen würde.

    Die PHP-Datei ist als UTF-8 abgespeichert und hat den Zusatz auch als meta.

    Das ist der Code:

    Code
     $webmaster = "Hier könnte eine Email stehen";
    
            
            //$header .= "Content-type: text/plain; charset=iso-8859-1";
            //$Header = "Content-type: text/html; charset=utf-8";  
            //$mailbody = "Content-type: text/html; charset=utf-8";  
            $mailbody .= "Name: $_POST[Anrede]" . "€äöü" . "$_POST[Name]\n";
            
                // E-Mails versenden:
                @mail($webmaster, "Aufgabe 3", $mailbody);

    die auskommentierten Zeilen habe ich bereits getestet, aber das hat nicht funktioniert.

    Kann mir da jemand weiterhelfen?

    Vielen Dank!

    Sun

  • Besorge dir eine mailerklasse wie den Phpmailer.

    Die Funktion mail() ist so Mist.

    Damit brauchst du dir keine Gedanken machen, ob die Mail Header alle richtig gesetzt sind.

    Wenn man nur mail() benutzt und es selber alles einstellen will, können viele E-Mails im Spam-Ordner landen oder gar nicht versendet werden.

    Hier ist ein Phpmailer

    https://github.com/PHPMailer/PHPMailer

  • Hallo Basti,

    danke für die schnelle Antwort!

    Gäbe es denn eine Lösung ohne PHPmailer? Es ist insgesamt für eine Übung und ich will das einfach nur noch mit so wenig Aufwand wie möglich zu Ende bringen... Wäre also super, wenn es irgendeinen Zusatz gäbe, der UTF-8 und HTML ohne PHPmailer aktivieren würde. Ob das dann am Ende in der Praxis wirklich zu 100% funktioniert in Bezug auf Spam, etc. ist erstmal zweitrangig.

    Danke!

  • Setze in die erste Zeile für PHP:

    PHP
    <?php header ('Content-Type: text/html; charset=utf-8'); ?>

    Für den HTML-Teil:

    Code
    <meta charset="UTF-8">

    Und falls du den PHP-Mailer nehmen solltest, was zu empfehlen ist:

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

    Für den Fall du hast ein Formular, hilft das weiter:

    Code
    <form accept-charset="utf-8">

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