Hej
Jeg roder lidt med læsning af imap-foldere med php. Men det driller
umanerlig meget og jeg ved ikke helt om jeg gør noget forkert eller om
det er fordi imap-understøttelsen i php er gået i ged her hos mig.
Det er i nedenstående der sker mærkelige ting, kommentarer indsat som
forklarer hvad.
<?php
$mbox = imap_open("{localhost:143/notls}INBOX", "username", "password");
echo "<p><h1>Mailboxes</h1>\n";
$folders = imap_list($mbox, "{localhost}", "*");
if ($folders == false) {
echo "Call failed<br>\n";
} else {
while (list ($key, $val) = each ($folders)) {
echo $val."<br>\n";
}
}
// Listen over foldere skrives ud og er som forventet.
echo "<pre>";
print_r(imap_check($mbox));
echo "</pre>";
// Er også korrekt, skriver antallet af beskeder i INBOX.
echo "<p><h1>Headers in INBOX</h1>\n";
$headers = imap_headers($mbox);
if ($headers === false) {
echo "Call failed<br>\n";
} else {
if (count($headers) == 0) {
echo "mailbox er tom<br>";
} else {
while (list ($key,$val) = each ($headers)) {
echo $val."<br>\n";
}
}
}
/*
Det går galt - der bliver ikke hentet nogle headers, selv om
imap_check() ovenfor viste at der var beskeder i folderen.
Hvad kan det skyldes?
*/
$status = imap_status($mbox,"{localhost}INBOX.test",SA_ALL);
echo "<pre>";
print_r($status);
echo "</pre>";
// Status viser også at der er beskeder i folderen.
echo "Num: " . imap_num_msg($mbox);
// Giver 0 - altså heller ingen beskeder.
$errors = imap_errors();
echo "<pre>";
print_r($errors);
echo "</pre>";
// Viser ingen fejl.
imap_close($mbox);
?>
Hvad kan det skyldes? Jeg kan fint se status og at der er beskeder, men
den vil bare ikke hente beskederne (eller listne over dem).
Det er på en apache 1.3.27 med php 4.3.4. Imap på maskinen er en
Courier-imap 2.2.1 og den virker som den skal (så vidt jeg da kan se).
Hvis jeg bruger mozillas mailklient er der adgang til alle mailfoldere
og den kan fint hente nye mails osv.
--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk
Kig også ind på
http://hjoerringnyplanteskole.dk/