Tom: quoted_printable_encode()

Hello,

ich beziehe mich auf den Thread
http://forum.de.selfhtml.org/archiv/2008/3/t168235/#m1098005
und suche nun schon eine ganze Weile nach einer Funktion für

quoted_printable_encode()

Außerdem ist mir nicht klar, was da wohl im Fall 1, den Chrissi damals zitiert hatte, vorgefallen ist? Mag der Verfasser da im Subject einen Zeilenumbruch versucht haben, der aber durch die Codierungsfunktion "Quoted Printable" beseitigt wurde?
Ich weiß leider nicht, woher sie die Beispiele hatte.

=? ist wohl immer das Zeichen für Zeilenanfang
?= das für Zeilenende

Aber es wird durch die quoted_printable_decode()-Funktion von PHP
http://www.php.net/manual/de/function.quoted-printable-decode.php
nicht dekodiert.

Wie muss ich damit umgehen?

Mir geht es im Wesentlichen um das richtige Codieren der Strings für den Einsatz in Mailheadern.

Ich müsste mir dann vermutlich auch noch ein spezielles chunk_split() dafür fertig machen, gelle?

Liebe Grüße aus Syburg bei Dortmund

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de
  1. Hello,

    ich beziehe mich auf den Thread
    http://forum.de.selfhtml.org/archiv/2008/3/t168235/#m1098005
    und suche nun schon eine ganze Weile nach einer Funktion für

    quoted_printable_encode()

    Ich habe noch was gefunden, bin mir aber noch nicht sicher, was ich daraus verwerten kann:
    http://www.mail-archive.com/php-general@lists.php.net/msg150175.html

    ==========================================================

    function _headerencode($headervalue, $headername=false, $charset='ISO-8859-1', $length=76)
    {
        if($headername) $headername.=': ';
        $headervalue=str_replace('%', '=', rawurlencode($headervalue));

    if(strpos($headervalue, '=') === false)
        {
            return wordwrap($headername . $headervalue, $length - 1, "\r\n" );
        }

    $length = $length - 1 - 7 - strlen($charset);

    for ($i = 0; $i < strlen($headervalue); $i = $i + $len)
        {
            if($return)
            {
                $return .= "\t";
                $len = $length-1;
            }
            else
            {
                $len = $length - strlen($headername) + 1;
            }

    if($headervalue[$i + $len - 2] == '=')
            {
                $len = $len - 2;
            }
            elseif($headervalue[$i + $len - 1] == '=')
            {
                $len = $len - 1;
            }

    $return .= '=?' . $charset . '?Q?' . substr($headervalue, $i, $len) . '?=' . "\r\n";
        }

    return $headername . $return;
    }

    Ich habe extra noch nichts daran geändert.
    Es besteht für mich noch Diskussionsbedarf

    Zeilenendezeichen müsste parametrisierbar sein
    Was ist beim Wrap? OE z.B. fügt ein

    ?=RET =?iso-8859-1?Q?

    ein, also

    ?=  Return  Leerzeichen  Zeilenanfang  Message-Codierung   ?  Transfer-Codierung  ?

    Und außerdem werden alle Leerzeichen durch einen Unterstrich ersetzt und nicht durch =20

    Was ist denn das nun schon wieder?

    Liebe Grüße aus Syburg bei Dortmund

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  2. Hallöchen,

    [...]
    Mir geht es im Wesentlichen um das richtige Codieren der Strings für den Einsatz in Mailheadern.

    Vielleicht hilft dir dieser Thread weiter, für meinen Fall war es die Lösung...
    MfG
    vaudi

    1. Hello Vaudi,

      Mir geht es im Wesentlichen um das richtige Codieren der Strings für den Einsatz in Mailheadern.

      Vielleicht hilft dir dieser Thread weiter, für meinen Fall war es die Lösung...

      Scheint so, dass es mir auch viele Arbeit erspart.
      Ich habe mal wieder versäumt, in den Multibytefunktionen nachzuschauen

      http://de.php.net/manual/de/function.mb-encode-mimeheader.php

      Apropos Multibytefunktionen:
      fehlt da nicht ein

      mb_word_wrap()

      , Zielsetzung HTML-Ausgababen umbrechen, wenn jemand mal wieder auf der Wiederholfunktion gestanden hat.

      Wäre Dankbar für Eure Meinung.

      Liebe Grüße aus Syburg bei Dortmund

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Hello,

        Hello Vaudi,

        Mir geht es im Wesentlichen um das richtige Codieren der Strings für den Einsatz in Mailheadern.

        http://de.php.net/manual/de/function.mb-encode-mimeheader.php
        und
            http://de.php.net/manual/de/function.mb-decode-mimeheader.php

        sind schon sehr hilfreich, haben aber noch eine Macke mit den Unterstreichen.

        Das kommt z.B. bei IE an an der anderen Seite:

        Subject: =?iso-8859-1?Q?Mit_3_Unterstrichen:_Dieser=5FH=E4der=5Fmu=DF=5Fviele_d=FC?=
         =?iso-8859-1?Q?sselige_Z=E4ichen_enthalten_und_dann_auch_noch_ganz_sch=F6?=
         =?iso-8859-1?Q?n_lang_werden_=3D_Ich_will_sehen=2C_was_das_Progr=E4mmchen?=
         =?iso-8859-1?Q?_daraus_macht=3F_Stimmt!?=

        Das mag jetzt an IMAP und MBOX-Format usw liegen.

        Aber Unterstriche werden vom Client ordnungsgemäß zu Leerzeichen zurückgewandelt und wenn wirklich Unterstriche im Header enthalten sind, werden die auch codiert. Somit hat die Funktionsgruppe von PHP da noch eine Macke.

        Liebe Grüße aus Syburg bei Dortmund

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Hallöchen,

          Das kommt z.B. bei IE an an der anderen Seite:

          Subject: =?iso-8859-1?Q?Mit_3_Unterstrichen:_Dieser=5FH=E4der=5Fmu=DF=5Fviele_d=FC?=
          =?iso-8859-1?Q?sselige_Z=E4ichen_enthalten_und_dann_auch_noch_ganz_sch=F6?=
          =?iso-8859-1?Q?n_lang_werden_=3D_Ich_will_sehen=2C_was_das_Progr=E4mmchen?=
          =?iso-8859-1?Q?_daraus_macht=3F_Stimmt!?=

          Das mag jetzt an IMAP und MBOX-Format usw liegen.

          Aber Unterstriche werden vom Client ordnungsgemäß zu Leerzeichen zurückgewandelt und wenn wirklich Unterstriche im Header enthalten sind, werden die auch codiert. Somit hat die Funktionsgruppe von PHP da noch eine Macke.

          Kann ich leider nichts dazu sagen. Ich hab die Funktion genutzt, um Sonderzeichen bei Namen in einem sonst automatisch generierten eMail-Betreff richtig anzeigen zu lassen. Im Thunderbird klappts, andere Informationen hab ich nicht...

          Ich werd aber den Thread weiter verfolgen, vielleicht lern ich daraus noch was ;)

          MfG
          vaudi