Fehler: "Bad message number..."

mC pAiN

Erfahrenes Mitglied
Hallo,

bei einem Script, dass meinen Email-Posteingang ausliest, bekomme ich immer wenn mehr als eine Mail vorhanden ist, folgende Fehlermeldungen:

Warning: Bad message number in /xxx/xxx/check_mail.php on line 41

Warning: Bad message number in /xxx/xxx/check_mail.php on line 140

In den betreffenden Zeilen steht folgendes:

41 =>
PHP:
$header   = imap_headerinfo($mbox, $curMsg, 80, 80);
140 =>
PHP:
$structure = imap_fetchstructure($mbox,$curMsg);


Also hat es irgendwas mit den imap-Funktionen zu tun. Ich weiß aber leider nicht was. $curMsg beinhaltet die "aktuelle" Mailnummer (beginnend bei 1), die in einer for-Schleife hochgezählt wird wenn eine Mail ausgelesen wurde... Wenn nur eine Mail im Eingang ist, klappt das Script fehlerfrei.

Woran könnte es liegen?
 
Also wenn ich in der php.net Funktionsreferenz zu dieser Funktion nachschaue ist der zweite Parameter die "Message Number".
Und die scheint dann wohl ungültig zu sein, sprich das er zu einer Nachricht mit dieser Nummer eben keine Informationen auslesen kann, weil was mit der Nr. nicht i.o. ist.
Wie durchlaäufst du denn dei einzelnen Headerinformationen? Also bis wohin iterierst du denn den Zähler der for-Schleife? -> imap_num_msg?
 
Die for-Schleife (und der Rest) sieht folgendermaßen aus:

PHP:
$mbox    = imap_open($MAILSERVER, $PHP_AUTH_USER, $PHP_AUTH_PW);
$check   = imap_check ($mbox);                       
              
####################################

if($check->Nmsgs >= 1) {
          $curMsg  = 1;  // aktuelle Mailnummer (Startwert für for-Schleife)
          for($curMsg; $curMsg <= ($check->Nmsgs); $curMsg++) {

               $header   = imap_headerinfo($mbox, $curMsg, 80, 80); 
               $from        = $header->from;                                                     
               $to             = $header->to;
               $subject   = $header->fetchsubject;
               $fromaddr = sprintf("%s@%s", $from[0]->mailbox, $from[0]->ost); 
               $udate = $header->udate;                                    
               $datum    = Date("Y-m-d", $udate);                              
               $uhrzeit  = Date("H:i", $udate);                               
               $vk_ename = $to[0]->mailbox;

               ...
               ...

               } // ENDE for
 
Zurück