Dekodowanie treści e-maila w utf8 - (imap)

0

Witam, mam taki fragment kodu który służy do łączenia się ze skrzynką pocztową.

if ($emails) {
   
    /* begin output var */
    $output = '';
   
    /* put the newest emails on top */
    rsort($emails);
   $tresc='';
    /* for every email... */
    foreach ($emails as $email_number) {
       
        /* get information specific to this email */
        
        $overview = imap_fetch_overview($inbox, $email_number, 0);
        
        $message = imap_fetchbody($inbox, $email_number, 1);
        
        
        /* output the email header information */
        $output .= '<div class="subject">' . imap_utf8($overview[0]->subject) . '</div> ';
        $output .= '<div class="from">' . imap_utf8($overview[0]->from) . '</div>';
        $output .= '<div class="date">on ' . $overview[0]->date . '</div>';
       
        /* output the email body */
        $tresc=$message;
        $output .= '<div class="body">'.$tresc.'</div>';
    }
   echo $tresc);
//   imap_utf8($tresc);
} 

Mail zostaje pobrany dobrze - ale $message nie jest w formacie UTF8. Próbowałem używać funkcji base64_decode,imap_utf8 iconv - niestety przykładowa "Treść testowa" maila jest wyświetlana jako "Tre=C5=9B=C4=87=20testowa" jak mogę przerobić taki string aby był wyświetlany jako UTF8?

0

zmień znaki równości na procenty, a potem potraktuj urldecode

0

Hmm... porada w sumie dobra - ale co robić jak ktoś w mailu wpisze znak = lub bezpośredni znak z utf8 np Tre=C5=9B=C4=87=20testowa wtedy dodatkowo dodawany jest symbol =3D

0

no i w czym problem?
jeżeli ktoś sobie napisze a=☃ ("a" "równa się" "unikodowy bałwan") - w mailu to to będzie wyglądać: a=3D=E2=98=83, co zmienisz na a%3D%E2%98%83, co urldecode zmieni na a=☃ - podobnie będzie z =C5 - jeżeli ktoś z palca tak wpisał - to znaczy, że to chce wysłać, a nie ś

1 użytkowników online, w tym zalogowanych: 0, gości: 1