Kalle_B: Umlaute in Mails

Hallöle,

auf einer Seite können Surfer E-Cards mit eigenem Text versenden.

Aus Gewohnheit habe ich die Umlaute HTML- mäßig codiert, also ä wird ä. War nun ganz erstaunt, dass im Thunderbird die Codierung angezeigt wird statt der Umlaute.

Wie händelt man denn Umlaute in Mails?

Wahrscheinlich mit dem richtigen Header? Meine Aufbereitung sieht so aus:

  
    require 'Mail.php';  
    require 'Mail/mime.php';  
    $mail_instance = new Mail();  
    $arr_recipients = $mail_instance->parseRecipients($arr['empfaenger']);  
...  
    //-------------  
    // MAIL SENDEN  
    //-------------  
    $arr_headers = array(  
     'Subject'      => 'Postkarte aus Birkenau von '.$arr['name']  
    ,'From'         => 'ecard@gewerbe-birkenau.de'  
    );  
    $mime_message = new Mail_mime();  
    $mime_message->setTXTBody( $txt );  
    $mime_message->addAttachment( $dir_karten.$arr_dateiname[$arr['motiv']], 'image/jpeg' );  
//  $mime_message->addAttachment( $dir_karten.$arr_motive[$arr['motiv']][1], 'image/jpeg' );  
    $mime_body = $mime_message->get();  
    $mime_hdr  = $mime_message->headers( $arr_headers );  
    $final_massage =& Mail::factory('mail');  
    if ( $final_massage->send( $arr_recipients, $mime_hdr, $mime_body) == TRUE  )  
    {  
      $h01 = 1; // erfolgreich  
    }  
    else  
    {  
      $f07 = 1; // unbekannter fehler  
    }  

Lieben Gruß, Kalle

  1. Du sendest deine Nachricht ja als PlainText, also
    gibt es keinen Grund, der Thunderbird dazu veranlassen
    würde, die Umlaut-Strings umzuwandeln.
    Entweder musst du wohl HTML-Mails versenden oder deine
    Umlaute vor dem Einfügen in die Nachricht wieder rück-
    codieren.

    LG

    t0bi

    1. Du sendest deine Nachricht ja als PlainText

      In der Mail ist enthalten:
      Content-Type: text/plain; charset="ISO-8859-1"
      Content-Transfer-Encoding: 7bit

      Aber woher kommt das? Habe den PHP- Code als "Black Box" abgetippt und kenne nicht die Tiefen.

      Langt charset="ISO-8859-1", damit ein Chinese die Umlaute sehen kann?

      Entweder musst du wohl HTML-Mails versenden ...

      Geile Idee, habe ich versucht. Aber dann wurden die HTML- Tags angezeigt.

      Hast du eine Ahnung, an welcher Schraube ich drehen muss?

      Kalle

      1. Content-Type: text/plain; charset="ISO-8859-1"

        Oh, da ist ja die charset-Angabe, vergiss also mein Posting.

        Aber woher kommt das? Habe den PHP- Code als "Black Box" abgetippt und kenne nicht die Tiefen.

        Das wird höchstvermutlich von der Mail-Klasse, die du einsetzt, so vorgegeben. Näheres solltest du also der Doku dazu entnehmen können.

        Langt charset="ISO-8859-1", damit ein Chinese die Umlaute sehen kann?

        Nein.

        Geile Idee, habe ich versucht. Aber dann wurden die HTML- Tags angezeigt.
        Hast du eine Ahnung, an welcher Schraube ich drehen muss?

        Informiere dich über MIME-Mails. Wie das mit den Bordmitteln von PHP geht, steht selbstverständlich im Handbuch.

        Siechfred

        --
        Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
        1. echo $begrüßung;

          Langt charset="ISO-8859-1", damit ein Chinese die Umlaute sehen kann?
          Nein.

          Etwas ausführlicher: Sender und Empfänger einer Nachricht müssen sich über deren Kodierung im Klaren sein. Als Sender gebe man an, dass man Kodierung X verwende und kodiere seine Daten gemäß Kodierung X. Das ist schon mal die halbe Miete, und viel mehr kann man als Sender nicht tun. Denn es kommt auf den Empfänger an, dass dieser die Kodierung X dekodieren kann und auch weiß, wie die Zeichen darzustellen sind. In aller Regel läuft das darauf hinaus, dass ein Font auf dem System zur Verfügung stehen muss, der die Zeichen enthält.

          echo "$verabschiedung $name";

  2. Aus Gewohnheit habe ich die Umlaute HTML- mäßig codiert, also ä wird ä. War nun ganz erstaunt, dass im Thunderbird die Codierung angezeigt wird statt der Umlaute.

    Den Grund hat dir "t0bi" bereits genannt, bleibt mir nur der Hinweis, dass du dem Content-type-Header unbedingt eine Zeichensatzinformation beifügen solltest.

    Siechfred

    --
    Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.