Brombeermilchtrinker: Mail Codierung - Problem noch immer nicht gelöst

Beitrag lesen

Hi dedlfix,

Soweit richtig, wobei aber 3. und 7. doppelt ist. Solange du nicht davon ausgehen musst, dass der Hoster die AddType-Direktive sperrt, kannst du die nehmen und auf header() verzichten.

Na dann bleib ich vorsichtshalber lieber dabei.

4.) _Alle_ meine css-Ressourcen beginnen mit einer "@charset "utf-8";" Angabe.
Auch richtig, aber vielleicht überflüssig. Notwendig ist das nur, wenn du UTF-8-relevante Zeichen verwendest. Die kommen beispielsweise dann ins Spiel, wenn du http://de.selfhtml.org/css/eigenschaften/pseudoformate.htm#before_after@title=:before/:after und dort mittels "content:" Texte mit Nicht-ASCII-Zeichen einfügst. Die anderen Eigenschaften verwenden nur ASCII und dafür braucht es keine charset-Angabe. Kommentare sind zwar davon betroffen, doch die spielen keine Rolle.

Na dann bleib ich vorsichtshalber auch hier lieber dabei.

5.) Wenn ich Daten (mit $kommando=$db->prepare($sql), $kommando->bind_param und $kommando->execute)an meine mysql datenbank schicke, dann kommt davor _immer_ eine "$db->set_charset("utf8");" Angabe.

Einmalig nach dem Verbindungsaufbau reicht.

Dann könnte ich das eigentlich in meine ausgelagerte db_verbindung.php, in der Hostadresse, Namen und Paßwort stehen, dazugeben, nachdem die Verbindung da ist.

Ich gehe davon aus, das ist alles, was ich tun kann sowie soll/muß, damit wirklich _überall_ die Verwendung von utf-8 gewährleistet wird. Ist das richtig so?

Ja. Vergessen in der Aufzählung hast du die Kodierung der Datenfelder in deinen Datenbanktabellen.

Jetzt verwirrst Du mich. _Du selbst_ hast doch in unzähligen Postings immer wieder betont, daß nicht die Kollation der Datenbankfelder wichtig ist, sondern die Information, die der Server mittels dem $db->set_charset() bzw. mittels ~~~php mysql_set_character_set()

  

> Ein \r alleinstehend ist sicherlich ungünstig, da diese Form des Zeilenumbruchs hauptsächlich in nicht mehr aktuellen Systemen verwendet wurde. Üblicher sind \n und \r\n.  
  
Ich habe jetzt alle \r durch \n ersetzt.  
  

> > Bei yahoo.de ein \_sehr\_ seltsames Verhalten. Alle Sonderzeichen werden richtig dargestellt, allerdings gibt es in der Mail selbst \_keine\_ Zeilenumbrüche.  
>   
> Das wird an den komischen Zeilenumbruchszeichen liegen, beziehungsweise daran, dass Yahoo diese anscheinend als Zeilenumbruch nicht erkennt.  
  
Richtig. Seit ich die \r durch \n ersetzt habe, macht auch die Ausgabe der yahoo-Webmail Seite die zeilenumbrüche so wie erwünscht.  
  

> > Liegen die genannten Darstellungsfehler an mir?  
>   
> Zusammenfassend: Bis auf den Zeilenumbruch bist du unschuldig. Workarounds, außer auf ISO-8859-1 umzustellen, scheinen mir auch nicht erfolgversprechend.  
  
Sehr gut, dann habe ich somit mal einen guten PHP-Code. Den würd ich jetzt gerne noch Zeile für Zeile durchgehen:  
  
`mb_internal_encoding('UTF-8');`{:.language-php}  
  
Also wofür \_das\_ gut ist, ist mir trotz PHP-Manual ein Rätsel. Die Informaton, daß alle Zeichen, die zur Datenbank gesendet werden, utf-8 codiert kommen werden, liefert mir ja schon mein `$db->set_charset("utf8")`{:.language-php}. Also wozu ich das jetzt nochmals angeben muß, verstehe ich nicht.  
  
Dann kommt die Festlegung der Variablen mit den Inhalten wie Name, Mail, etc - das ist natürlich klar.  
  
`$empfaenger_name=mb_encode_mimeheader($empfaenger_name, "UTF-8", "Q");`{:.language-php}  
  
OK, da steht im Manual: "transfer\_encoding  specifies the scheme of MIME encoding. It should be either "B" (Base64) or "Q" (Quoted-Printable). Falls back to "B" if not given." Heißt das jetzt: Wandle $empfaenger\_name von utf-8 nach Quoted-Printable um? Was heißt Quoted-Printable? Was ist der Unterscheid zu Base64? Und vor allem: Wieso muß ich jetzt \_schon wieder\_ mitteilen, daß die Ausgangssituation utf-8 ist?  
  
Dann wird der Header mittels Verkettungsoperator zusammengebaut.  
  
`$header.="MIME-Version: 1.0\n";`{:.language-php}  
  
Kann man in \_einfachen Worten\_ verständlich erklären, was diese (manchmal als optional, aber besser gegebene) Angabe heißt/bewirkt?  
  
`$header.="Content-type: text/plain; charset=utf-8\n";`{:.language-php}  
  
Hier wird dem empgangenden Swerver mitgeteilt, daß alle zeichen innerhalb der Mail, also der Mailinhalt, utf-8 codiert sind und es sich um eine reine Textmail handelt.  
  
`$header.="Content-Transfer-Encoding: 8bit\n";`{:.language-php}  
  
Und wozu dann noch das? Was bewirkt diese Zeile?  
  
`mail ($empfaenger,$betreff,$mailinhalt,$header, "-fjoerg.mustermann-spaer@example.com");`{:.language-php}  
  
Hier habe ich festgestellt, daß keine Mail verschickt wird, wenn ich \_keine\_ -f Angabe mache. Wieso? Und was ist der Unterschied zwischen der -f Mailadresse und der Adresse hinter dem From: ? Beide sagen doch dem empfangenden Server, von wem die Mail kommt bzw. an wen zu antworten ist, oder?  
  
Mit freundlichen Grüßen  
  
Der Brombeermilchtrinker
0 57

Sonderzeichen bei Mail mit Inhalt aus Formular

Brombeermilchtrinker
  • php
  1. 0

    Ursprungsproblem gelöst / nun anderes Codierungsproblem

    Brombeermilchtrinker
    1. 0
      Markus**
      1. 0
        Brombeermilchtrinker
    2. 0
      Sven Rautenberg
      1. 0
        Brombeermilchtrinker
        1. 1
          Sven Rautenberg
          1. 0
            Brombeermilchtrinker
        2. 0
          Jens Holzkämper
    3. 0
      dedlfix
      1. 0
        Brombeermilchtrinker
        1. 0
          dedlfix
          1. 0
            Brombeermilchtrinker
            1. 0
              dedlfix
              1. 0
                Sven Rautenberg
              2. 0
                Brombeermilchtrinker
                1. 0
                  dedlfix
                  1. 0
                    Brombeermilchtrinker
                    1. 0
                      Jens Holzkämper
                    2. 0
                      Vinzenz Mai
                      1. 0
                        Brombeermilchtrinker
                        1. 0
                          Vinzenz Mai
                          1. 0
                            Brombeermilchtrinker
                            1. 0
                              Brombeermilchtrinker
                              1. 0
                                Harlequin
                                1. 0
                                  Sven Rautenberg
                                2. 0
                                  Brombeermilchtrinker
                                  1. 0
                                    Jens Holzkämper
                                    1. 0
                                      Brombeermilchtrinker
                                      1. 0
                                        Jens Holzkämper
  2. 0
    Markus**
  3. 0

    Mail Codierung - Problem noch immer nicht gelöst

    Brombeermilchtrinker
    1. 0
      dedlfix
      1. 0
        Brombeermilchtrinker
        1. 0
          dedlfix
          1. 0
            Brombeermilchtrinker
            1. 0
              dedlfix
              1. 0
                at
              2. 0
                Brombeermilchtrinker
                1. 0
                  Harlequin
                  1. 0
                    Brombeermilchtrinker
                2. 0
                  dedlfix
                  1. 0
                    Brombeermilchtrinker
                    1. 0
                      dedlfix
                      1. 0

                        utf-Codierung / Verwendung von mysqli

                        Brombeermilchtrinker
                        1. 0
                          flowh
                        2. 0
                          dedlfix
                          1. 0
                            Brombeermilchtrinker
                            1. 0
                              Harlequin
                              1. 0
                                Brombeermilchtrinker
                              2. 0
                                dedlfix
                                1. 0
                                  Harlequin
                                  1. 0
                                    Brombeermilchtrinker
                            2. 0
                              flowh
                              1. 0
                                Brombeermilchtrinker
                            3. 0
                              dedlfix
                              1. 0
                                Brombeermilchtrinker