• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

PHPMailer und umlaute

AlphaGen

New member
Folgendes Problem... Egal ob mit der Funktion mail(); oder mit dem Script "phpmailer"... Ich schreibe eine Testmail die wie folgt lautet:

"Test ü ä ö"

Dann rufe ich das ganze per Outlook von dem gewünschten Konto ab und was kommt dabei raus? Das hier:

"Test ü ä ö"

Ich habs mit UTF8 und mit ISO-8859-1 versucht. Ich weiß nicht mehr ein noch aus und bitte hier um Hilfe. Ich muss wissen wie ich das ändern kann. Es muss doch irgendwie möglich sein Umlaute einzugeben bzw zu verschicken über PHP!!!

Bitte um Hilfe.

PHP:
require('phpmailer/class.phpmailer.php');
$mail = new PHPMailer();

    if(empty($_GET['name']) || empty($_GET['email']) || empty($_GET['nachricht']) || empty($_GET['betreff']))
    {
        echo 'Die Felder "Name", "E-Mail", "Nachricht" und "Betreff" müssen ausgefüllt sein.';
    } else {


  $mail->CharSet  =  "ISO-8859-1";

 //Absenderadresse der Email setzen
  $mail->From = $_GET['email'];

  //Name des Abenders setzen
  $mail->FromName = $_GET['name'];

  //Empfängeradresse setzen
  $mail->AddAddress ("xxx@xxx.de");

  //Betreff der Email setzen
  $mail->Subject = $_GET['betreff'];

  //Text der EMail setzen
  $mail->Body = $_GET['nachricht'];

    $mail->IsHTML(true); //Versand im HTML-Format festlegen
 
  //Text der EMail setzen
  $email_text = $_GET['nachricht'];
 
  //Body enthält die HTML-Nachricht
  //Zeilenumbrüche werden in <br> umgewandelt
  $mail->Body    = nl2br($email_text);
 
  //Altbody enthält die alternative Textform
  //mit strip_tags() werden die HTML-Tags entfernt 
  $mail->AltBody = strip_tags($email_text);

  //EMail senden und überprüfen ob sie versandt wurde
  if(!$mail->Send())
  {
     //$mail->Send() liefert FALSE zurück: Es ist ein Fehler aufgetreten
     echo "Die Email konnte nicht gesendet werden";
     echo "Fehler: " . $mail->ErrorInfo;
  }
  else
  {
     //$mail->Send() liefert TRUE zurück: Die Email ist unterwegs
     echo "Die Email wurde versandt.";
  }
    }

Bitte bitte helft mir!
 
Also, mal abgesehen davon, dass viele Mail-Clients (wie z.B. Outlook) über eine Funktion verfügen, mit der empfangene Mails mittels verschiedener Schemas (z.B. Base64) dekodiert werden können, meine ich mich auch erinnern zu können, dass das separate Vorgeben des Charsets für die Mail weniger dafür zuständig ist. Wichtig ist eine Charset-Definition für das HTML-Dokument, damit der Inhalt der Formularfelder korrekt übermittelt wird. Ansonsten funktioniert bei uns zusätzlich folgende MailHeader-Anweisung:
Code:
Content-type: text/html\nContent-Transfer-Encoding: 8bit\n
Damit werden alle Umlaute sowie Sonderzeichen sowohl in der Betreffzeile (subject) als auch im Mailtext (body) richtig übermittelt. Vllt. hilft's dir ja...
[edit] Guck auch mal hier!

Übrigens hast du zweimal '$mail->Body =...' in deinem Code verwendet - soll das so?
 
Zuletzt bearbeitet:
Zurück
Oben