Avatar billede krydset Nybegynder
29. juni 2004 - 14:23 Der er 6 kommentarer og
1 løsning

imap mail emner og afsender adresser underlige

Hejsa.
Er ved at lave en webmail i php, og bruger imap funktionerne til det formål.

Men har et problem med nogle af emnerne de ser underlige ud.
noget ala det her
=?iso-8859-1?B?RGl2ZXJzZSA6IEZyaSBkZWJhdCA6IE5vdGV

og nogen afafsender adresserne er lige så underlige
=?iso-8859-1?Q?Solutions2all=2Edk?=

Hvordan kan jeg lave om på det ?

her det kode jeg udskriver det med

<?php
//Tjekke om brugeren er logget ind
if(!$_SESSION['login'] == "OK") {
    #header("LOCATION:index.php");
} else {
    //Åbner for mail kontoen
    $mbox = imap_open("{".$_SESSION['server'].":143}", $_SESSION['username'], $_SESSION['password']);
    //FInder antal mails   
    $antal = imap_num_msg($mbox);
    ?>
    <table border="0" width="100%">
    <tr>
        <td bgcolor="<?PHP Echo $bgcolor_1; ?>">Emne</td>
        <td bgcolor="<?PHP Echo $bgcolor_1; ?>">Afsender</td>
        <td bgcolor="<?PHP Echo $bgcolor_1; ?>">Dato</td>
    </tr>
    <?php
    $a = 0;
    $c_0 = "#FFFFFF";
    $c_1 = "#CCFFCC";
    for($i = 1; $i < $antal; $i++) {
        $header = imap_headerinfo($mbox, $i, 80, 50);
       
        if($a == 0) { #linie 25
           
        ?>
            <tr>
                <td bgcolor="<?PHP Echo "$c_0"; ?>"><?PHP echo $header->fetchsubject; ?></td>
                <td bgcolor="<?PHP Echo "$c_0"; ?>"><?php echo $header->fromaddress; ?></td>
                <td bgcolor="<?PHP Echo "$c_0"; ?>"><?php echo date("D.j.F-G:i:s", $header->udate); ?></td>
            </tr>
            <?php
            $a++; #Linie 34
           
        } elseif($a == 1) {
           
            ?>
            <tr>
                <td bgcolor="<?PHP Echo "$c_1"; ?>"><?PHP echo $header->fetchsubject; ?></td>
                <td bgcolor="<?PHP Echo "$c_1"; ?>"><?php echo $header->fromaddress; ?></td>
                <td bgcolor="<?PHP Echo "$c_1"; ?>"><?php echo date("D.j.F-G:i:s", $header->udate); ?></td>
            </tr>
            <?php
            $a = 0;
        }
    }
}
?>
                   
</table>

Mvh Thomas l //Krydset
Avatar billede dennismp Nybegynder
29. juni 2004 - 14:29 #1
prøv at send den igennem; imap_qprint()
Avatar billede krydset Nybegynder
29. juni 2004 - 14:31 #2
stadig det samme :-(

Hvorfor bliver de sådan ?
Avatar billede dennismp Nybegynder
29. juni 2004 - 14:31 #3
fx
<?php echo imap_qprint($header->fetchsubject); ?>
Avatar billede krydset Nybegynder
29. juni 2004 - 14:31 #4
Næææ ikke det samme sorry
Når jeg kører dem gennem imap_qprint vises der slet ikke noget tekst ??
Avatar billede dennismp Nybegynder
29. juni 2004 - 14:35 #5
Det er fordi at emails ikke tog hånd om andre end engelske karakter (7-bitdelen af ascii-tabellen) .. Da det blev mere udbredt måtte man finde på en måde at lave de resterende karakter om til 7-bit. Een af dem er quoted printable.

Selvf. kan jeg jo godt tage fejl :-) Men det ligner sådan en string.

Ellers prøv at kigge i kommentaren (den første) på denne side:
http://dk.php.net/manual/en/function.imap-utf8.php
Avatar billede krydset Nybegynder
29. juni 2004 - 14:38 #6
Fandt ud af det sådan her

<?php
//Tjekke om brugeren er logget ind
if(!$_SESSION['login'] == "OK") {
    #header("LOCATION:index.php");
} else {
    //Åbner for mail kontoen
    $mbox = imap_open("{".$_SESSION['server'].":143}", $_SESSION['username'], $_SESSION['password']);
    //FInder antal mails   
    $antal = imap_num_msg($mbox);
    ?>
    <table border="0" width="100%">
    <tr>
        <td bgcolor="<?PHP Echo $bgcolor_1; ?>">Emne</td>
        <td bgcolor="<?PHP Echo $bgcolor_1; ?>">Afsender</td>
        <td bgcolor="<?PHP Echo $bgcolor_1; ?>">Dato</td>
    </tr>
    <?php
    $a = 0;
    $c_0 = "#FFFFFF";
    $c_1 = "#CCFFCC";
    for($i = 1; $i < $antal; $i++) {
        $header = imap_headerinfo($mbox, $i, 500, 500);
       
        if($a == 0) {
           
        ?>
            <tr>
                <td bgcolor="<?PHP Echo "$c_0"; ?>"><?PHP echo utf8_decode(imap_utf8($header->fetchsubject)); ?></td>
                <td bgcolor="<?PHP Echo "$c_0"; ?>"><?php echo utf8_decode(imap_utf8($header->fromaddress)); ?></td>
                <td bgcolor="<?PHP Echo "$c_0"; ?>"><?php echo date("D.j.F-G:i:s", $header->udate); ?></td>
            </tr>
            <?php
            $a++;
           
        } elseif($a == 1) {
           
            ?>
            <tr>
                <td bgcolor="<?PHP Echo "$c_1"; ?>"><?PHP echo utf8_decode(imap_utf8($header->fetchsubject)); ?></td>
                <td bgcolor="<?PHP Echo "$c_1"; ?>"><?php echo utf8_decode(imap_utf8($header->fromaddress)); ?></td>
                <td bgcolor="<?PHP Echo "$c_1"; ?>"><?php echo date("D.j.F-G:i:s", $header->udate); ?></td>
            </tr>
            <?php
            $a = 0;
        }
    }
}
?>
                   
</table>

LÆste her
http://dk.php.net/manual/en/function.imap-qprint.php
og det virkede fint :-P

Lukker her
Takker for foreslag, og for forklaringen
Avatar billede krydset Nybegynder
29. juni 2004 - 14:38 #7
'
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester