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

Beitrag lesen

Yerf!

mb_internal_encoding('UTF-8');

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"). Also wozu ich das jetzt nochmals angeben muß, verstehe ich nicht.

Soweit ich das verstanden hab: Damit wird die Ausgangskodierung für die mb_* Funktionen eingestellt. Dies hat *nichts* mit den Datenbankeinstellungen zu tun.

$empfaenger_name=mb_encode_mimeheader($empfaenger_name, "UTF-8", "Q");

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?

Quoted-Printable ist eine Darstellungsart von 8 Bit Chracters als 7 Bit Chars. Das Problem von E-Mails ist, dass es ursprünglich als reine 7 Bit ASCII-Übertragung definiert wurde, womit nicht einmal LATIN-1 oder ähnliches geht. Aus deinem Beispiel: "=?UTF-8?Q?J=C3=BCrgen=20Mustermann-Wei=C3=9F?=", das ist Quoted-Printable mit UTF-8-Charset (zu erkennen am Anfang des Textes). Jedes Zeichen, das nicht 7 Bit-ASCII ist wird als =XX Hexcode dargestellt, die Hexcodes selbst ergeben sich aus UTF-8.

Was ist der Unterscheid zu Base64?

Base 64 ist eine andere Variante um 8 Bit Chars mit 7 Bit Chars zu kodieren. Da sie aber jedes zeichen in einen 6 Bit Code wandelt (bestehend aus "lesbaren" Zeichen) erzeugt diese Codierung relativ lange Ergebnisse die ohne Dekodierung auch nicht entzifferbar sind (Quoted Printable ist ja mit etwas Fantasie noch lesbar).

Und vor allem: Wieso muß ich jetzt _schon wieder_ mitteilen, daß die Ausgangssituation utf-8 ist?

Das ist hier nicht die Ausgangssituation (diese wurde mit mb_internal_encoding('UTF-8') festgelegt) sondern die Zielvorgabe. Das Ergebnis ist ein "doppelt" kodierter String. Einmal UTF-8 und dann nochmals (QP) um 7 Bit ASCII zu erhalten.

$header.="Content-Transfer-Encoding: 8bit\n";

Und wozu dann noch das? Was bewirkt diese Zeile?

Hiermit wird mitgeteilt, dass der Mail-Body entgegen der ursprünglichen Spezifikation nicht 7 Bit-ASCII sondern eine 8 Bit-Kodierung ist. Ansonsten müsste man den Body ebenfalls als Quoted-Printable oder Base 64 verschicken.

Bei E-Mail trifft man leider nicht nur auf die ISO / UTF-Problematik sondern auch das uralte Relikt der 7 Bit-Codierung...

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?

Möglicherweise blockiert der sendende Server, wenn er keinen gültigen Absender mitgeteilt bekommt.

Gruß,

Harlequin

--
<!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
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