quoted_printable_encode()
Tom
- php
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
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ürquoted_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";
}
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
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
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
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
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