Avatar billede besoft Nybegynder
14. februar 2010 - 23:32 Der er 1 løsning

imap_uid vs imap_msgno

Hejsa

Hvem kan forklare hvordan jeg skal bruge IMAP_UID?

Som jeg læser det, skal man bruge et msgId for at kunne finde UID og omvendt. Det er jo umuligt.

Jeg har brug for at finde et unikt ID for en  besked. Det ser ud som om jeg skal bruge imap_uid ( resource $imap_stream , int $msg_number )

Men hvordan finder jeg $msg_number??


Min kode er indtil nu helt simpel:

$headers = imap_headers($mbox);
if ($headers == false) {
        echo "Call failed<br />\n";
} else {
        foreach ($headers as $var => $val) {
                echo " - ". $val . "<br />\n";
        }
}


Jeg har connected til postkassen, og kan se headerene på de beskeder som ligger i INBOX (hvilket er helt fint).

Hvad skal jeg skrive hvor, for at få et handle til den enkelte besked?
Avatar billede besoft Nybegynder
15. februar 2010 - 00:04 #1
Nevermind... fandt ud af det, endelig.

Her er koden, hvis andre skulle være interesseret.


$mbox = imap_open("{imap.host.com:143/imap}INBOX", "user", "pass") or die("can't connect: " . imap_last_error());

$msgCount = imap_num_msg($mbox);

imap_headers($mbox);
for ($i = 1; $i <= $msgCount; ++$i) {
        $header = imap_header($mbox, $i);
        $UID = imap_uid($mbox, $i);

        $objMsg = imap_headerinfo($mbox, $i);
        $subject = $objMsg->Subject;
        $fromname = $objMsg->from[0]->personal;
        $fromemail = $objMsg->from[0]->mailbox."@".$objMsg->from[0]->host;

        echo "UID ".$UID."<br>";
        echo "From: ".$fromname.", ".$fromemail."<br>";
        echo "Subject: ".$subject."<br>";
        echo "<br>";
}


Koden giver en liste over alle beskeder i INBOX.
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