Hi Leute!
Kurze Frage: Ich lese mit imap_body usw. den Inhalt einer HTML Mail aus. Bei Base 64 geht alles vorrausgesetzt ich dekodiere logischerweise mit Base_64. Nun das Prob: In der HTML Mail erscheinen komische Zeichen die da nicht hingehören wie z.B. so:
Anstatt
Gruß,
kommt:
Gru=DF,
und bei Leerzeilen kommt ein = und sonst öfters mal ein großes D, obwohl es da nicht hingehört.
Frage: Welche Dekodier Funktion muss ich nutzen um dieses zu umgehen / ausszuschließen? Oder muss ich etwa mit der normalen Replace Funktion arbeiten? Das geht aber nicht, da man ja nicht einfach das D aus der Datenbank streichen kann :D
cYa DuRoX
Mach dich mal in der PHP-Manual über die Funktion imap_utf7_decode schlau.
http://de3.php.net/manual/de/function.imap-utf7-decode.php
$a = imap_utf7_decode (imap_body($mbox, $i));
Habe ich jetzt.
Fehler:
Warning: imap_utf7_decode: Invalid modified base64 character: `=' in XXXXXX on line 38
Was nun? UTF7 geht nicht....
Weiß denn keiner Rat wie ich diese vielen =3D usw. mit einer Funktion wegbekomme? Ich hab schon soviel versucht, bin am verzweifeln :(
Die Email Software's wie Horde können das ja auch entsprechend richtig konvertieren, deswegen muss es doch irgendwie eine Lösung geben.
cYa DuRoX
Poste mal bitte Originaltext und der von deinem Programm / bisherigen Source ausgegebenen "Inhalt mit Fehlern".
Versuch mal das hier:
$subject = "=?ISO-8859-1?Q?B=F8lla?=, med =?ISO-8859-1?Q?=F8l?= i baggen";
$subject = imap_utf8($subject);
$subject = utf8_decode($subject);
Danke für eure Antworten!
@ Wotan: Danke für deine HIlfe, aber ich möchte nur den Body also den Inhalt der Nachricht dekodieren und nicht den Betreff(zeile).
@a4u:
Das ist das was er ausgibt:
This is a multi-part message in MIME format. ------=_NextPart_000_0005_01C32A0E.B12C11F0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi Leute! Kurze Frage: Ich lese mit imap_body usw. den Inhalt einer HTML Mail aus. Bei Base 64 geht alles vorrausgesetzt ich dekodiere logischerweise mit Base_64. Nun das Prob: In der HTML Mail erscheinen komische Zeichen die da nicht hingeh=F6ren wie z.B. so:=20 Anstatt Gru=DF,=20 kommt: Gru=3DDF,=20 und bei Leerzeilen kommt ein =3D und sonst =F6fters mal ein gro=DFes D, = obwohl es da nicht hingeh=F6rt. Frage: Welche Dekodier Funktion muss ich nutzen um dieses zu umgehen / ausszuschlie=DFen? Oder muss ich etwa mit der normalen Replace Funktion arbeiten? Das geht aber nicht, da man ja nicht einfach das D aus der Datenbank streichen kann =20 Gru=DF, =20 DuRoX =20 ------=_NextPart_000_0005_01C32A0E.B12C11F0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hi Leute!
Kurze Frage: Ich lese mit imap_body usw. den = Inhalt einer HTML Mail aus. Bei Base 64 geht alles vorrausgesetzt ich dekodiere logischerweise mit Base_64. Nun das Prob: In der HTML Mail erscheinen komische Zeichen die da nicht hingeh=F6ren wie z.B. so:
Anstatt
Gru=DF,
kommt:
Gru=3DDF,
und bei Leerzeilen kommt ein =3D und sonst =F6fters mal ein gro=DFes D, = obwohl es da nicht hingeh=F6rt.
Frage: Welche Dekodier Funktion muss ich nutzen um dieses zu umgehen / = ausszuschlie=DFen? Oder muss ich etwa mit der = normalen Replace Funktion arbeiten? Das geht aber nicht, da = man ja nicht einfach das D aus der Datenbank streichen kann
Gru=DF,
DuRoX
------=_NextPart_000_0005_01C32A0E.B12C11F0--
Und das, was ich schrieb:
Hi Leute!
Kurze Frage: Ich lese mit imap_body usw. den Inhalt einer HTML Mail aus. Bei Base 64 geht alles vorrausgesetzt ich dekodiere logischerweise mit Base_64. Nun das Prob: In der HTML Mail erscheinen komische Zeichen die da nicht hingehören wie z.B. so:
Anstatt
Gruß,
kommt:
Gru=DF,
und bei Leerzeilen kommt ein = und sonst öfters mal ein großes D, obwohl es da nicht hingehört.
Frage: Welche Dekodier Funktion muss ich nutzen um dieses zu umgehen / ausszuschließen? Oder muss ich etwa mit der normalen Replace Funktion arbeiten? Das geht aber nicht, da man ja nicht einfach das D aus der Datenbank streichen kann
Gruß,
DuRoX
Soll jetzt nur als Beispiel dienen, bei Links und Sonderzeichen (was ich brauche, wird nur noch Mist ausgegeben.)
cYa DuRoX
Das läst sich auch so auf den Body anwenden. Must nur entsprechend umbauen.
$container = imap_body($mbox, $i);
$container = "=?ISO-8859-1?Q?B=F8lla?=, med =?ISO-8859-1?Q?=F8l?= i baggen";
$container = imap_utf8($container);
$container = utf8_decode($container);
echo $container;
Das ist dein Code -> Umgebaut.
Ausgabe:
Bølla, med øl i baggen
*g* Da fragt man sich, was das jetzt soll ;)
cYa DuRoX
Habe das auch nur von der PHP.Net Seite
imap-utf8 (http://de3.php.net/manual/en/function.imap-utf8.php)
*grml* die haben doch glatt innerhalb von 3 Stunden die Seite geändert. *grml* (http://de3.php.net/manual/en/ref.imap.php)
Ähm... Sorry jetzt verstehe ich gar nichts mehr. Soll das heißen, dass es nicht möglich ist eine Email mit einer Dekodierfunktion in PHP zu dekodieren? Horde usw. machen das ja auch; Dort habe ich mir auch schonmal den Code angesehen nur leider werde ich aus diesem äußerst komplexen Konstrukt nicht schlau :confused:
cYa DuRoX
$container = imap_body($mbox, $i);
$container = imap_utf8(container);
$container = utf8_decode($container);
echo $container;
Was passiert wenn du es so machst?